Revert ecomplete patch, which didn't work on XEmacs.
[gnus] / lisp / ecomplete.el
index 08b7323..6a47b11 100644 (file)
            (message "%s" matches)
            nil)
        (setq highlight (ecomplete-highlight-match-line matches line))
-       (let ((local-map (make-sparse-keymap))
-             selected)
-         (define-key local-map (kbd "RET")
-           (lambda () (setq selected (nth line (split-string matches "\n")))))
-         (define-key local-map (kbd "M-n")
-           (lambda () (setq line (min (1+ line) max-lines))))
-         (define-key local-map (kbd "M-p")
-           (lambda () (setq line (max (1- line) 0))))
-         (let ((overriding-local-map local-map))
-           (while (and (null selected)
-                       (setq command (read-key-sequence highlight))
-                       (lookup-key local-map command))
-             (apply (key-binding command) nil)
-             (setq highlight (ecomplete-highlight-match-line matches line))))
-         (if selected
-             (message selected)
-           (message "Abort"))
-         selected)))))
+       (while (not (memq (setq command (read-event highlight)) '(? return)))
+         (cond
+          ((eq command ?\M-n)
+           (setq line (min (1+ line) max-lines)))
+          ((eq command ?\M-p)
+           (setq line (max (1- line) 0))))
+         (setq highlight (ecomplete-highlight-match-line matches line)))
+       (when (eq command 'return)
+         (nth line (split-string matches "\n")))))))
 
 (defun ecomplete-highlight-match-line (matches line)
   (with-temp-buffer