(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)
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
(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'.
(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)))