]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/el-search/el-search.el
Make el-search-pattern accept an optional NO-ERROR arg
[gnu-emacs-elpa] / packages / el-search / el-search.el
index a15a2d4e1144896a1cfb0cbb67da05d4fb8a47d8..4afcd910782bfc8ca010c4e73c289b90cd1c4e60 100644 (file)
@@ -332,6 +332,9 @@ error."
     (read-from-minibuffer prompt initial-contents el-search-read-expression-map read
                           (or hist 'read-expression-history) default)))
 
+(defvar el-search-history '()
+  "List of input strings.")
+
 (defvar el-search--initial-mb-contents nil)
 
 (defun el-search--read-pattern (prompt &optional default read)
@@ -353,9 +356,10 @@ and return it."
     (while not-done
       (let ((stop-here nil)
             (looking-at-from-back (lambda (regexp n)
-                                    (save-excursion
-                                      (backward-char n)
-                                      (looking-at regexp)))))
+                                    (and (> (point) n)
+                                         (save-excursion
+                                           (backward-char n)
+                                           (looking-at regexp))))))
         (while (not stop-here)
           (cond
            ((eobp) (signal 'end-of-buffer nil))
@@ -584,6 +588,10 @@ MESSAGE are used to construct the error message."
                    type arg)))
         args))
 
+(defvar el-search-current-pattern nil)
+
+(defvar el-search-success nil)
+
 
 ;;;; Additional pattern type definitions
 
@@ -928,14 +936,8 @@ You need `diff-hl-mode' turned on, provided by the library
 
 ;;;; Core functions
 
-(defvar el-search-history '()
-  "List of input strings.")
-
-(defvar el-search-success nil)
-(defvar el-search-current-pattern nil)
-
 ;;;###autoload
-(defun el-search-pattern (pattern)
+(defun el-search-pattern (pattern &optional no-error)
   "Start new or resume last elisp search.
 
 Search current buffer for expressions that are matched by `pcase'
@@ -962,7 +964,7 @@ The following additional pattern types are currently defined:"
                            (error "Please don't forget the quote when searching for a symbol"))
                          (el-search--wrap-pattern pattern)))))
   (if (not (called-interactively-p 'any))
-      (el-search--search-pattern pattern)
+      (el-search--search-pattern pattern no-error)
     (setq this-command 'el-search-pattern) ;in case we come from isearch
     (setq el-search-current-pattern pattern)
     (let ((opoint (point)))
@@ -1111,7 +1113,8 @@ Hit any key to proceed."
 
 TO-EXPR is an Elisp expression that is evaluated repeatedly for
 each match with bindings created in FROM-PATTERN in effect to
-produce a replacement expression.
+produce a replacement expression.  Operate from point
+to (point-max).
 
 As each match is found, the user must type a character saying
 what to do with it.  For directions, type ? at that time."