]> code.delx.au - gnu-emacs/commitdiff
* lisp/menu-bar.el: Use folding in searches
authorArtur Malabarba <bruce.connor.am@gmail.com>
Sun, 29 Nov 2015 21:20:33 +0000 (21:20 +0000)
committerArtur Malabarba <bruce.connor.am@gmail.com>
Sun, 29 Nov 2015 21:20:33 +0000 (21:20 +0000)
(nonincremental-search-forward): Use `isearch-search-fun-default'
to determine the search function.
(nonincremental-search-backward)
(nonincremental-repeat-search-forward)
(nonincremental-repeat-search-backward): Use it.

lisp/menu-bar.el

index b2146bed3bd61bc19ceaec23af842eb1b386c348..defd8db6c0d44c99c203a8046c661cc04cc24c01 100644 (file)
   (cond
    ((and (eq menu-bar-last-search-type 'string)
         search-ring)
-    (search-forward (car search-ring)))
+    (nonincremental-search-forward))
    ((and (eq menu-bar-last-search-type 'regexp)
         regexp-search-ring)
     (re-search-forward (car regexp-search-ring)))
   (cond
    ((and (eq menu-bar-last-search-type 'string)
         search-ring)
-    (search-backward (car search-ring)))
+    (nonincremental-search-backward))
    ((and (eq menu-bar-last-search-type 'regexp)
         regexp-search-ring)
     (re-search-backward (car regexp-search-ring)))
    (t
     (error "No previous search"))))
 
-(defun nonincremental-search-forward (string)
+(defun nonincremental-search-forward (&optional string backward)
   "Read a string and search for it nonincrementally."
   (interactive "sSearch for string: ")
   (setq menu-bar-last-search-type 'string)
-  (if (equal string "")
-      (search-forward (car search-ring))
-    (isearch-update-ring string nil)
-    (search-forward string)))
-
-(defun nonincremental-search-backward (string)
+  ;; Ideally, this whole command would be equivalent to `C-s RET'.
+  (let ((isearch-forward (not backward))
+        (isearch-regexp-function search-default-regexp-mode)
+        (isearch-regexp nil))
+    (if (or (equal string "") (not string))
+        (funcall (isearch-search-fun-default) (car search-ring))
+      (isearch-update-ring string nil)
+      (funcall (isearch-search-fun-default) string))))
+
+(defun nonincremental-search-backward (&optional string)
   "Read a string and search backward for it nonincrementally."
-  (interactive "sSearch for string: ")
-  (setq menu-bar-last-search-type 'string)
-  (if (equal string "")
-      (search-backward (car search-ring))
-    (isearch-update-ring string nil)
-    (search-backward string)))
+  (interactive "sSearch backwards for string: ")
+  (nonincremental-search-forward string 'backward))
 
 (defun nonincremental-re-search-forward (string)
   "Read a regular expression and search for it nonincrementally."