--- rxvt-unicode/src/perl/searchable-scrollback 2006/01/09 23:19:34 1.6 +++ rxvt-unicode/src/perl/searchable-scrollback 2006/01/09 23:30:01 1.7 @@ -40,6 +40,7 @@ $self->enable ( key_press => \&key_press, + tt_write => \&tt_write, refresh_begin => \&refresh, refresh_end => \&refresh, ); @@ -52,7 +53,7 @@ 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; @@ -73,8 +74,10 @@ 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) @@ -122,8 +125,7 @@ substr $self->{search}, -1, 1, ""; $self->search; } elsif ($string ne "") { - $self->{search} .= $string; - $self->search; + return; } } else { if ($keysym == 0xff0d || $keysym == 0xff8d) { @@ -153,5 +155,14 @@ 1 } + +sub tt_write { + my ($self, $data) = @_; + + $self->{search} .= $self->locale_decode ($data); + $self->search; + + 1 +}