aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Heuer1996-12-05 19:53:00 +0000
committerKarl Heuer1996-12-05 19:53:00 +0000
commitec6d29af5e52b4e0b1c4962cd77685a78c26e84f (patch)
tree50aaab116e81fcf39599962ea5ba3b67fb73da71
parentfc21ed035b436427dff35a6b3417eaf7842d0cb2 (diff)
downloademacs-ec6d29af5e52b4e0b1c4962cd77685a78c26e84f.tar.gz
emacs-ec6d29af5e52b4e0b1c4962cd77685a78c26e84f.zip
(Info-follow-reference): Add each cross-reference to
completions list just once, case-insensitively.
-rw-r--r--lisp/info.el15
1 files changed, 12 insertions, 3 deletions
diff --git a/lisp/info.el b/lisp/info.el
index 9e001469073..c3df1a843be 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -894,9 +894,18 @@ NAME may be an abbreviation of the reference name."
894 ;; Record as a completion and perhaps as default. 894 ;; Record as a completion and perhaps as default.
895 (if (eq default t) (setq default str)) 895 (if (eq default t) (setq default str))
896 (if (eq alt-default t) (setq alt-default str)) 896 (if (eq alt-default t) (setq alt-default str))
897 (setq completions 897 ;; Don't add this string if it's a duplicate.
898 (cons (cons str nil) 898 ;; We use a loop instead of "(assoc str completions)" because
899 completions)))) 899 ;; we want to do a case-insensitive compare.
900 (let ((tail completions)
901 (tem (downcase str)))
902 (while (and tail
903 (not (string-equal tem (downcase (car (car tail))))))
904 (setq tail (cdr tail)))
905 (or tail
906 (setq completions
907 (cons (cons str nil)
908 completions))))))
900 ;; If no good default was found, try an alternate. 909 ;; If no good default was found, try an alternate.
901 (or default 910 (or default
902 (setq default alt-default)) 911 (setq default alt-default))