*** empty log message ***
authorroot <root>
Thu, 12 Jan 2006 09:40:33 +0000 (09:40 +0000)
committerroot <root>
Thu, 12 Jan 2006 09:40:33 +0000 (09:40 +0000)
src/perl/searchable-scrollback

index e8e0296b6408d7830a76c1b69c1c1fd416cca9e4..49b3e6265e65b11f320d6e4086fda72df6e0b153 100644 (file)
@@ -80,25 +80,25 @@ sub search {
    my $search = $self->special_encode ($self->{search});
 
    no re 'eval'; # just to be sure
-   my $re = qr/$search/;
-
-   while ($self->nrow > $row && $row > -$self->nsaved) {
-      my $line = $self->line ($row)
-         or last;
-
-      my $text = $line->t;
-      if ($text =~ /$re/g) {
-         do {
-            push @{ $self->{found} }, [$line->coord_of ($-[0]), $line->coord_of ($+[0])];
-         } while $text =~ /$re/g;
-
-         $self->{row} = $row;
-         $self->view_start (-$row + ($self->nrow >> 1));
-         $self->want_refresh;
-         last;
+   if (my $re = eval { qr/$search/ }) {
+      while ($self->nrow > $row && $row > -$self->nsaved) {
+         my $line = $self->line ($row)
+            or last;
+
+         my $text = $line->t;
+         if ($text =~ /$re/g) {
+            do {
+               push @{ $self->{found} }, [$line->coord_of ($-[0]), $line->coord_of ($+[0])];
+            } while $text =~ /$re/g;
+
+            $self->{row} = $row;
+            $self->view_start (-$row + ($self->nrow >> 1));
+            $self->want_refresh;
+            last;
+         }
+
+         $row = $dir < 0 ? $line->beg - 1 : $line->end + 1;
       }
-
-      $row = $dir < 0 ? $line->beg - 1 : $line->end + 1;
    }
 
    $self->scr_bell unless $self->{found};