ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/perl/searchable-scrollback
(Generate patch)

Comparing rxvt-unicode/src/perl/searchable-scrollback (file contents):
Revision 1.19 by root, Thu Jan 12 11:16:36 2006 UTC vs.
Revision 1.20 by root, Sun Jan 15 06:02:41 2006 UTC

79 79
80 my $search = $self->special_encode ($self->{search}); 80 my $search = $self->special_encode ($self->{search});
81 81
82 no re 'eval'; # just to be sure 82 no re 'eval'; # just to be sure
83 if (my $re = eval { qr/$search/ }) { 83 if (my $re = eval { qr/$search/ }) {
84 while ($self->nrow > $row && $row > -$self->nsaved) { 84 while ($self->nrow > $row && $row > $self->top_row) {
85 my $line = $self->line ($row) 85 my $line = $self->line ($row)
86 or last; 86 or last;
87 87
88 my $text = $line->t; 88 my $text = $line->t;
89 if ($text =~ /$re/g) { 89 if ($text =~ /$re/g) {
90 do { 90 do {
91 push @{ $self->{found} }, [$line->coord_of ($-[0]), $line->coord_of ($+[0])]; 91 push @{ $self->{found} }, [$line->coord_of ($-[0]), $line->coord_of ($+[0])];
92 } while $text =~ /$re/g; 92 } while $text =~ /$re/g;
93 93
94 $self->{row} = $row; 94 $self->{row} = $row;
95 $self->view_start (List::Util::max 0, -$row + ($self->nrow >> 1)); 95 $self->view_start (List::Util::min 0, $row - ($self->nrow >> 1));
96 $self->want_refresh; 96 $self->want_refresh;
97 last; 97 last;
98 } 98 }
99 99
100 $row = $dir < 0 ? $line->beg - 1 : $line->end + 1; 100 $row = $dir < 0 ? $line->beg - 1 : $line->end + 1;
136 $self->leave; 136 $self->leave;
137 } elsif ($keysym == 0xff57) { # end 137 } elsif ($keysym == 0xff57) { # end
138 $self->{row} = $self->nrow - 1; 138 $self->{row} = $self->nrow - 1;
139 $self->view_start (0); 139 $self->view_start (0);
140 } elsif ($keysym == 0xff52) { # up 140 } elsif ($keysym == 0xff52) { # up
141 $self->{row}-- if $self->{row} > -$self->nsaved; 141 $self->{row}-- if $self->{row} > $self->top_row;
142 $self->search (-1); 142 $self->search (-1);
143 } elsif ($keysym == 0xff54) { # down 143 } elsif ($keysym == 0xff54) { # down
144 $self->{row}++ if $self->{row} < $self->nrow; 144 $self->{row}++ if $self->{row} < $self->nrow;
145 $self->search (+1); 145 $self->search (+1);
146 } elsif ($keysym == 0xff08) { # backspace 146 } elsif ($keysym == 0xff08) { # backspace

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines