changeset 2031:f2dbfd43a1c5

(isearch-unread): Handle multiple args. For Emacs 19, use listify-key-sequence. If not Emacs 19, assume they are a meta sequence. (isearch-other-meta-char): Pass the whole key sequence. (isearch-other-control-char): Make this alias for ...-meta-char.
author Richard M. Stallman <rms@gnu.org>
date Sat, 06 Mar 1993 06:15:05 +0000
parents ffe1f05d5727
children 20cc6c34421c
files lisp/isearch.el
diffstat 1 files changed, 20 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/isearch.el	Sat Mar 06 06:13:50 1993 +0000
+++ b/lisp/isearch.el	Sat Mar 06 06:15:05 1993 +0000
@@ -4,7 +4,7 @@
 ;; LCD Archive Entry:
 ;; isearch-mode|Daniel LaLiberte|liberte@cs.uiuc.edu
 ;; |A minor mode replacement for isearch.el.
-;; |$Date: 1993/02/17 20:34:20 $|$Revision: 1.18 $|~/modes/isearch-mode.el
+;; |$Date: 1993/02/17 21:30:25 $|$Revision: 1.19 $|~/modes/isearch-mode.el
 
 ;; This file is not yet part of GNU Emacs, but it is based almost
 ;; entirely on isearch.el which is part of GNU Emacs.
@@ -88,8 +88,11 @@
 ;;;====================================================================
 ;;; Change History
 
-;;; $Header: /gd/gnu/emacs/19.0/lisp/RCS/isearch-mode.el,v 1.18 1993/02/17 20:34:20 rms Exp rms $
+;;; $Header: /gd/gnu/emacs/19.0/lisp/RCS/isearch-mode.el,v 1.19 1993/02/17 21:30:25 rms Exp rms $
 ;;; $Log: isearch-mode.el,v $
+; Revision 1.19  1993/02/17  21:30:25  rms
+; Fix minor bugs in previous change.
+;
 ; Revision 1.18  1993/02/17  20:34:20  rms
 ; (isearch-backward-regexp):
 ; New arg no-recursive-edit, always non-nil for interactive call.
@@ -1024,35 +1027,21 @@
   (isearch-process-search-char (isearch-last-command-char)))
 
 
-(defun isearch-other-control-char ()
-  "Any other control char => unread it and exit the search normally.
-But only if `search-exit-option' is non-nil, the default.
-If it is the symbol `edit', the search string is edited in the minibuffer
-and the control char is unread so that it applies to editing the string."
-  (interactive)
-  (cond ((eq search-exit-option 'edit)
-	 (isearch-unread (isearch-last-command-char))
-	 (isearch-edit-string))
-	(search-exit-option;; any other non-nil value
-	 (isearch-unread (isearch-last-command-char))
-	 (isearch-done))
-	(t;; search-exit-option is nil
-	 (isearch-process-search-char (isearch-last-command-char)))))
-
+(fset 'isearch-other-control-char 'isearch-other-meta-char)
 
 (defun isearch-other-meta-char ()
-  "Any other meta char => exit the search normally and reread the character.
+  "Exit the search normally and reread this key sequence.
 But only if `search-exit-option' is non-nil, the default.
 If it is the symbol `edit', the search string is edited in the minibuffer
 and the meta character is unread so that it applies to editing the string."
   (interactive)
   (cond ((eq search-exit-option 'edit)
 	 (let ((key (this-command-keys)))
-	   (isearch-unread (+ 128 (aref key (1- (length key))))))
+	   (apply 'isearch-unread (append key nil)))
 	 (isearch-edit-string))
 	(search-exit-option
 	 (let ((key (this-command-keys)))
-	   (isearch-unread (+ 128 (aref key (1- (length key))))))
+	   (apply 'isearch-unread (append key nil)))
 	 (isearch-done))
 	(t;; otherwise nil
 	 (isearch-process-search-string (this-command-keys)
@@ -1441,15 +1430,17 @@
 (defun isearch-text-char-description (c)
   (isearch-char-to-string c))
 
-(defun isearch-unread (char-or-event)
-  ;; General function to unread a character or event.
-  (cond
-   (isearch-event-data-type
-    (setq unread-command-event char-or-event))
-   (isearch-gnu-emacs-events
-    (setq unread-command-events (list char-or-event)))
-   (t
-    (setq unread-command-char char-or-event))))
+(defun isearch-unread (&rest char-or-events)
+  (setq foo char-or-events)
+  ;; General function to unread characters or events.
+  (if isearch-gnu-emacs-events
+      (setq unread-command-events (listify-key-sequence char-or-events))
+    (let ((char (if (cdr char-or-events)
+		    (+ 128 (car (last char-or-events)))
+		  (car char-or-events))))
+      (if isearch-event-data-type
+	  (setq unread-command-event char)
+	(setq unread-command-char char)))))
 
 (defun isearch-last-command-char ()
   ;; General function to return the last command character.