# HG changeset patch # User Kim F. Storm # Date 1026165782 0 # Node ID 88bc5ce0674ca7688e174d4d3c549bf1181dcb4b # Parent 503a8e2a9054e332faac1a73593383555616db8d (ido-find-common-substring): Return substring instead of t. diff -r 503a8e2a9054 -r 88bc5ce0674c lisp/ido.el --- 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)))