changeset 70555:4ff0c9f3ea31

* emacs-lisp/crm.el (completing-read-multiple): Properly handle return value of read-from-minibuffer for empty input.
author Chong Yidong <cyd@stupidchicken.com>
date Wed, 10 May 2006 04:00:51 +0000
parents e1a064810f6f
children fa894e85781d
files lisp/ChangeLog lisp/emacs-lisp/crm.el
diffstat 2 files changed, 27 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed May 10 03:32:06 2006 +0000
+++ b/lisp/ChangeLog	Wed May 10 04:00:51 2006 +0000
@@ -1,3 +1,8 @@
+2006-05-09  Chong Yidong  <cyd@stupidchicken.com>
+
+	* emacs-lisp/crm.el (completing-read-multiple): Properly handle
+	return value of read-from-minibuffer for empty input.
+
 2006-05-09  Miles Bader  <miles@gnu.org>
 
 	* comint.el (comint-insert-input): Remove redundant calls to setq
--- a/lisp/emacs-lisp/crm.el	Wed May 10 03:32:06 2006 +0000
+++ b/lisp/emacs-lisp/crm.el	Wed May 10 04:00:51 2006 +0000
@@ -592,25 +592,28 @@
 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 ()