]> git.eshelyaron.com Git - emacs.git/commitdiff
(Info-follow-reference): Add each cross-reference to
authorKarl Heuer <kwzh@gnu.org>
Thu, 5 Dec 1996 19:53:00 +0000 (19:53 +0000)
committerKarl Heuer <kwzh@gnu.org>
Thu, 5 Dec 1996 19:53:00 +0000 (19:53 +0000)
completions list just once, case-insensitively.

lisp/info.el

index 9e001469073d062bfd4136486ec6485425d2bd3e..c3df1a843be216803abeed014a2987bb52ff22dc 100644 (file)
@@ -894,9 +894,18 @@ NAME may be an abbreviation of the reference name."
         ;; Record as a completion and perhaps as default.
         (if (eq default t) (setq default str))
         (if (eq alt-default t) (setq alt-default str))
-        (setq completions
-              (cons (cons str nil)
-                    completions))))
+        ;; Don't add this string if it's a duplicate.
+        ;; We use a loop instead of "(assoc str completions)" because
+        ;; we want to do a case-insensitive compare.
+        (let ((tail completions)
+              (tem (downcase str)))
+          (while (and tail
+                      (not (string-equal tem (downcase (car (car tail))))))
+            (setq tail (cdr tail)))
+          (or tail
+              (setq completions
+                    (cons (cons str nil)
+                          completions))))))
      ;; If no good default was found, try an alternate.
      (or default
         (setq default alt-default))