void
rxvt_term::tt_write (const char *data, unsigned int len)
{
+ if (HOOK_INVOKE ((this, HOOK_TT_WRITE, DT_STR_LEN, data, len, DT_END)))
+ return;
+
if (pty.pty < 0)
return;
$self->enable (
key_press => \&key_press,
+ tt_write => \&tt_write,
refresh_begin => \&refresh,
refresh_end => \&refresh,
);
delete $self->{overlay};
- $self->disable ("key_press", "refresh_begin", "refresh_end");
+ $self->disable ("key_press", "tt_write", "refresh_begin", "refresh_end");
$self->pty_ev_events ($self->{pty_ev_events});
$self->want_refresh;
delete $self->{found};
+ my $search = $self->special_encode ($self->{search});
+
no re 'eval'; # just to be sure
- my $re = qr/$self->{search}/;
+ my $re = qr/$search/;
while ($row > -$self->nsaved) {
my $line = $self->line ($row)
substr $self->{search}, -1, 1, "";
$self->search;
} elsif ($string ne "") {
- $self->{search} .= $string;
- $self->search;
+ return;
}
} else {
if ($keysym == 0xff0d || $keysym == 0xff8d) {
1
}
+sub tt_write {
+ my ($self, $data) = @_;
+
+ $self->{search} .= $self->locale_decode ($data);
+ $self->search;
+
+ 1
+}
+
might be very slow, however, as your hook is called for B<all> text being
output.
+=item on_tt_write $term, $octets
+
+Called whenever some data is written to the tty/pty and can be used to
+suppress or filter tty input.
+
=item on_line_update $term, $row
Called whenever a line was updated or changed. Can be used to filter