From: Chong Yidong Date: Wed, 10 May 2006 04:00:51 +0000 (+0000) Subject: * emacs-lisp/crm.el (completing-read-multiple): Properly handle X-Git-Tag: emacs-pretest-22.0.90~2651 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ca75c9a2687432e0bbf2c75eb05256554657a4ff;p=emacs.git * emacs-lisp/crm.el (completing-read-multiple): Properly handle return value of read-from-minibuffer for empty input. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4b3f30e9692..2b8c53c3378 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2006-05-09 Chong Yidong + + * emacs-lisp/crm.el (completing-read-multiple): Properly handle + return value of read-from-minibuffer for empty input. + 2006-05-09 Miles Bader * comint.el (comint-insert-input): Remove redundant calls to setq diff --git a/lisp/emacs-lisp/crm.el b/lisp/emacs-lisp/crm.el index 5a9787b5ca8..11d4d7fb2ba 100644 --- a/lisp/emacs-lisp/crm.el +++ b/lisp/emacs-lisp/crm.el @@ -592,25 +592,28 @@ The return value of this function is a list of the read strings. See the documentation for `completing-read' for details on the arguments: PROMPT, TABLE, PREDICATE, REQUIRE-MATCH, INITIAL-INPUT, HIST, DEF, and INHERIT-INPUT-METHOD." - (let ((minibuffer-completion-table (function crm-collection-fn)) - (minibuffer-completion-predicate predicate) - ;; see completing_read in src/minibuf.c - (minibuffer-completion-confirm - (unless (eq require-match t) require-match)) - (crm-completion-table table) - crm-last-exact-completion - crm-current-element - crm-left-of-element - crm-right-of-element - crm-beginning-of-element - crm-end-of-element - (map (if require-match - crm-local-must-match-map - crm-local-completion-map))) - (split-string (read-from-minibuffer - prompt initial-input map - nil hist def inherit-input-method) - crm-separator))) + (let* ((minibuffer-completion-table (function crm-collection-fn)) + (minibuffer-completion-predicate predicate) + ;; see completing_read in src/minibuf.c + (minibuffer-completion-confirm + (unless (eq require-match t) require-match)) + (crm-completion-table table) + crm-last-exact-completion + crm-current-element + crm-left-of-element + crm-right-of-element + crm-beginning-of-element + crm-end-of-element + (map (if require-match + crm-local-must-match-map + crm-local-completion-map)) + ;; If the user enters empty input, read-from-minibuffer returns + ;; the empty string, not DEF. + (input (read-from-minibuffer + prompt initial-input map + nil hist def inherit-input-method))) + (and def (string-equal input "") (setq input def)) + (split-string input crm-separator))) ;; testing and debugging ;; (defun crm-init-test-environ ()