# HG changeset patch # User Glenn Morris # Date 1190703966 0 # Node ID f8144f59d4b39d4140d70cd80b5e242eca2b4e4d # Parent b66a3b1df538b3a007362a1040c671de4941c155 (view-search-no-match-lines): Fix previous change (went wrong if regexp to not be matched matched last thing in the buffer). diff -r b66a3b1df538 -r f8144f59d4b3 lisp/view.el --- a/lisp/view.el Tue Sep 25 02:27:48 2007 +0000 +++ b/lisp/view.el Tue Sep 25 07:06:06 2007 +0000 @@ -998,22 +998,19 @@ "Search for the TIMESth occurrence of a line with no match for REGEXP. If such a line is found, return non-nil and set the match-data to that line. If TIMES is negative, search backwards." - (let ((step 1) - (noerror 'move)) - (when (< times 0) - (setq times (- times) - step -1 - noerror t)) + (let ((step (if (>= times 0) 1 + (setq times (- times)) + -1))) ;; Note that we do not check the current line. (while (and (> times 0) (zerop (forward-line step))) - ;; Move only to handle eob in the forward case: on last line, - ;; (forward-line 1) returns 0 before the end of line. - (or (re-search-forward regexp (line-end-position) noerror) - (setq times (1- times))))) - (when (zerop times) - (forward-line 0) - (looking-at ".*"))) + ;; (forward-line 1) returns 0 on moving within the last line. + (if (eobp) + (setq times -1) + (or (re-search-forward regexp (line-end-position) t) + (setq times (1- times)))))) + (and (zerop times) + (looking-at ".*"))) (provide 'view)