--- rxvt-unicode/src/perl/searchable-scrollback 2006/01/09 23:00:07 1.2 +++ rxvt-unicode/src/perl/searchable-scrollback 2006/01/09 23:18:49 1.5 @@ -7,8 +7,8 @@ my $hotkey = $self->{argv}[0] || "M-s"; - $self->parse_keysym ($hotkey, "perl:searchable-scrollback:enter") - or warn "unable to register '$hotkey' as scrollback search enter hotkey\n"; + $self->parse_keysym ($hotkey, "perl:searchable-scrollback:start") + or warn "unable to register '$hotkey' as scrollback search start hotkey\n"; () } @@ -16,7 +16,7 @@ sub on_keyboard_command { my ($self, $cmd) = @_; - if ($cmd eq "searchable-scrollback:enter") { + if ($cmd eq "searchable-scrollback:start") { $self->enter; } @@ -61,15 +61,15 @@ sub idle { my ($self) = @_; - $self->msg ("scrollback search, escape=exit, enter=accept, /=start search, n=next, p=previous"); + $self->msg ("scrollback search, escape=exit, enter=accept, /=start search, n=next, p=previous, G=bottom"); delete $self->{in_search}; } sub search { - my ($self) = @_; + my ($self, $offset) = @_; - my $row = -$self->view_start; + my $row = -$self->view_start + ($self->nrow >> 1) + $offset; delete $self->{found}; @@ -94,7 +94,7 @@ } $self->msg ("enter/type/backspace: /$self->{search}_" - . ($self->{found} ? " (not found)" : "")); + . ($self->{found} ? "" : " (not found)")); $self->scr_bell unless $self->{found}; } @@ -103,7 +103,7 @@ return unless $self->{found}; - $self->scr_xor_span (@$_) + $self->scr_xor_span (@$_, urxvt::SET_FGCOLOR (urxvt::RS_RVid, 15)) for @{ $self->{found} }; () @@ -120,11 +120,9 @@ $self->idle; } elsif ($keysym == 0xff08) { substr $self->{search}, -1, 1, ""; - $self->search; } elsif ($string ne "") { $self->{search} .= $string; - $self->search; } } else { @@ -141,9 +139,13 @@ } elsif ($string eq "/") { $self->{in_search} = $self->view_start; $self->search; + } elsif ($string eq "G") { + $self->view_start (0); } elsif ($string eq "n") { - $self->search; + $self->search (-1); + $self->idle; } elsif ($string eq "p") { + # TODO } elsif ($string ne "") { $self->scr_bell; }