changeset 46256:88bc5ce0674c

(ido-find-common-substring): Return substring instead of t.
author Kim F. Storm <storm@cua.dk>
date Mon, 08 Jul 2002 22:03:02 +0000
parents 503a8e2a9054
children 66e7966b0b91
files lisp/ido.el
diffstat 1 files changed, 29 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ido.el	Mon Jul 08 11:42:57 2002 +0000
+++ b/lisp/ido.el	Mon Jul 08 22:03:02 2002 +0000
@@ -1545,7 +1545,7 @@
 	      (catch 'ido
 		(completing-read 
 		 (ido-make-prompt item prompt)
-		 '(("dummy".1)) nil nil ; table predicate require-match
+		 '(("dummy" . 1)) nil nil ; table predicate require-match
 		 (prog1 ido-text-init (setq ido-text-init nil))	;initial-contents
 		 history))))
       (ido-trace "completing-read" ido-final-text)
@@ -2751,7 +2751,7 @@
 	       ido-enable-flex-matching
 	       (> (length ido-text) 1)
 	       (not ido-enable-regexp))
-      (setq re (mapconcat 'regexp-quote (split-string ido-text "") ".*"))
+      (setq re (mapconcat #'regexp-quote (split-string ido-text "") ".*"))
       (if ido-enable-prefix
 	  (setq re (concat "\\`" re)))
       (mapcar
@@ -2817,14 +2817,16 @@
           (if ido-enable-regexp
               subs
             (regexp-quote subs)))
-    (setq res (mapcar 'ido-word-matching-substring items))
+    (setq res (mapcar #'ido-word-matching-substring items))
     (setq res (delq nil res)) ;; remove any nil elements (shouldn't happen)
-    (setq alist (mapcar 'ido-makealist res)) ;; could use an  OBARRAY
+    (setq alist (mapcar #'ido-makealist res)) ;; could use an  OBARRAY
 
     ;; try-completion returns t if there is an exact match.
-    (let ((completion-ignore-case ido-case-fold))
-
-    (try-completion subs alist))))
+    (let* ((completion-ignore-case ido-case-fold)
+	   (comp (try-completion subs alist)))
+      (if (eq comp t)
+	  subs
+	comp))))
 
 (defun ido-word-matching-substring (word)
   ;; Return part of WORD before 1st match to `ido-change-word-sub'.
@@ -3499,28 +3501,30 @@
 	   (let* ((items (if (> ido-max-prospects 0) (1+ ido-max-prospects) 999))
 		  (alternatives
 		   (apply
-		    (function concat)
+		    #'concat 
 		    (cdr (apply
-			  (function nconc)
-			  (mapcar '(lambda (com)
-				     (setq com (ido-name com))
-				     (setq items (1- items))
-				     (cond
-				      ((< items 0) ())
-				      ((= items 0) (list (nth 3 ido-decorations))) ; " | ..."
-				      (t
-				       (list (or ido-separator (nth 2 ido-decorations)) ; " | "
-					     (let ((str (substring com 0)))
-					       (if (and ido-use-faces
-							(not (string= str first))
-							(ido-final-slash str))
-						   (put-text-property 0 (length str) 'face 'ido-subdir-face str))
-					       str)))))
-				  comps))))))
+			  #'nconc
+			  (mapcar
+			   (lambda (com)
+			     (setq com (ido-name com))
+			     (setq items (1- items))
+			     (cond
+			      ((< items 0) ())
+			      ((= items 0) (list (nth 3 ido-decorations))) ; " | ..."
+			      (t
+			       (list (or ido-separator (nth 2 ido-decorations)) ; " | "
+				     (let ((str (substring com 0)))
+				       (if (and ido-use-faces
+						(not (string= str first))
+						(ido-final-slash str))
+					   (put-text-property 0 (length str) 'face 'ido-subdir-face str))
+				       str)))))
+			   comps))))))
 
 	     (concat
 	      ;; put in common completion item -- what you get by pressing tab
-	      (if (> (length ido-common-match-string) (length name))
+	      (if (and (stringp ido-common-match-string)
+		       (> (length ido-common-match-string) (length name)))
 		  (concat (nth 4 ido-decorations)   ;; [ ... ]
 			  (substring ido-common-match-string (length name))
 			  (nth 5 ido-decorations)))