-(define-key menu-bar-edit-menu [query-replace]
- '("Query Replace" . query-replace))
-(define-key menu-bar-edit-menu [re-search-back]
- '("Regexp Search Backwards" . re-search-backward))
-(define-key menu-bar-edit-menu [search-back]
- '("Search Backwards" . search-backward))
-(define-key menu-bar-edit-menu [re-search-fwd]
- '("Regexp Search" . re-search-forward))
-(define-key menu-bar-edit-menu [search-fwd]
- '("Search" . search-forward))
-
-(define-key menu-bar-edit-menu [separator-misc]
+(defun nonincremental-search-forward (string)
+ "Read a string and search for it nonincrementally."
+ (interactive "sSearch for string: ")
+ (if (equal string "")
+ (search-forward (car search-ring))
+ (isearch-update-ring string nil)
+ (search-forward string)))
+
+(defun nonincremental-search-backward (string)
+ "Read a string and search backward for it nonincrementally."
+ (interactive "sSearch for string: ")
+ (if (equal string "")
+ (search-backward (car search-ring))
+ (isearch-update-ring string nil)
+ (search-backward string)))
+
+(defun nonincremental-re-search-forward (string)
+ "Read a regular expression and search for it nonincrementally."
+ (interactive "sSearch for regexp: ")
+ (if (equal string "")
+ (re-search-forward (car regexp-search-ring))
+ (isearch-update-ring string t)
+ (re-search-forward string)))
+
+(defun nonincremental-re-search-backward (string)
+ "Read a regular expression and search backward for it nonincrementally."
+ (interactive "sSearch for regexp: ")
+ (if (equal string "")
+ (re-search-backward (car regexp-search-ring))
+ (isearch-update-ring string t)
+ (re-search-backward string)))
+
+(defun nonincremental-repeat-search-forward ()
+ "Search forward for the previous search string."
+ (interactive)
+ (search-forward (car search-ring)))
+
+(defun nonincremental-repeat-search-backward ()
+ "Search backward for the previous search string."
+ (interactive)
+ (search-backward (car search-ring)))
+
+(defun nonincremental-repeat-re-search-forward ()
+ "Search forward for the previous regular expression."
+ (interactive)
+ (re-search-forward (car regexp-search-ring)))
+
+(defun nonincremental-repeat-re-search-backward ()
+ "Search backward for the previous regular expression."
+ (interactive)
+ (re-search-backward (car regexp-search-ring)))
+
+(define-key menu-bar-search-menu [query-replace-regexp]
+ '("Query Replace Regexp..." . query-replace-regexp))
+(define-key menu-bar-search-menu [query-replace]
+ '("Query Replace..." . query-replace))
+(define-key menu-bar-search-menu [find-tag]
+ '("Find Tag..." . find-tag))
+(define-key menu-bar-search-menu [bookmark]
+ '("Bookmarks" . menu-bar-bookmark-map))
+
+(define-key menu-bar-search-menu [separator-search]
+ '("--"))
+
+(define-key menu-bar-search-menu [nonincremental-repeat-re-search-back]
+ '("Repeat Regexp Backwards" . nonincremental-repeat-re-search-backward))
+(define-key menu-bar-search-menu [nonincremental-repeat-search-back]
+ '("Repeat Backwards" . nonincremental-repeat-search-backward))
+(define-key menu-bar-search-menu [nonincremental-repeat-re-search-fwd]
+ '("Repeat Regexp" . nonincremental-repeat-re-search-forward))
+(define-key menu-bar-search-menu [nonincremental-repeat-search-fwd]
+ '("Repeat Search" . nonincremental-repeat-search-forward))
+
+(define-key menu-bar-search-menu [separator-repeat]