]> git.eshelyaron.com Git - emacs.git/commitdiff
(Info-read-node-name-1): New function.
authorRichard M. Stallman <rms@gnu.org>
Sat, 5 Aug 1995 20:56:23 +0000 (20:56 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 5 Aug 1995 20:56:23 +0000 (20:56 +0000)
(Info-read-node-name): Use Info-read-node-name-1
to avoid getting confused by spaces when text starts with (FILENAME).

lisp/info.el

index fd08a00e25e8fe011a803f25034214317c4e31be..6c079f9fc998fc826c982f024ecfd4d075e6da5c 100644 (file)
@@ -605,9 +605,28 @@ In standalone mode, \\<Info-mode-map>\\[Info-exit] exits Emacs itself."
     (Info-find-node (if (equal filename "") nil filename)
                    (if (equal nodename "") "Top" nodename))))
 
+;; This function is used as the "completion table" while reading a node name.
+;; It does completion using the alist in completion-table
+;; unless STRING starts with an open-paren.
+(defun Info-read-node-name-1 (string predicate code)
+  (let ((no-completion (and (> (length string) 0) (eq (aref string 0) ?\())))
+    (cond ((eq code nil)
+          (if no-completion
+              string
+            (try-completion string completion-table predicate)))
+         ((eq code t)
+          (if no-completion
+              nil
+            (all-completions string completion-table predicate)))
+         ((eq code 'lambda)
+          (if no-completion
+              t
+            (assoc string completion-table))))))
+
 (defun Info-read-node-name (prompt &optional default)
   (let* ((completion-ignore-case t)
-        (nodename (completing-read prompt (Info-build-node-completions))))
+        (completion-table (Info-build-node-completions))
+        (nodename (completing-read prompt 'Info-read-node-name-1)))
     (if (equal nodename "")
        (or default
            (Info-read-node-name prompt))