diff --git a/bin/ed b/bin/ed index 91c7a01c..392b852b 100755 --- a/bin/ed +++ b/bin/ed @@ -1111,29 +1111,13 @@ sub edSearchForward { sub edSearchBackward { my($pattern) = @_; - my($line,$start); - # brute force search... - - $start = $CurrentLineNum > 1 ? $CurrentLineNum - 1 : maxline(); - - $line = $start; - - while ($line > 0) { + my @idx = ($CurrentLineNum .. maxline(), 1 .. ($CurrentLineNum - 1)); + foreach my $line (reverse @idx) { if ($lines[$line] =~ /$pattern/) { return $line; } - $line--; } - - $line = maxline(); - while ($line >= $CurrentLineNum) { - if ($lines[$line] =~ /$pattern/) { - return $line; - } - $line--; - } - return 0; }