+(defvar Info-read-node-completion-table)
+
+;; This function is used as the "completion table" while reading a node name.
+;; It does completion using the alist in Info-read-node-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 Info-read-node-completion-table predicate)))
+ ((eq code t)
+ (if no-completion
+ nil
+ (all-completions string Info-read-node-completion-table predicate)))
+ ((eq code 'lambda)
+ (if no-completion
+ t
+ (assoc string Info-read-node-completion-table))))))
+