keymap
readp
history
- abbrev-table)
+ abbrev-table
+ default)
"Read a string from the minibuffer, prompting with string PROMPT.
If optional second arg INITIAL-CONTENTS is non-nil, it is a string
to be inserted into the minibuffer before reading input.
Positions are counted starting from 1 at the beginning of the list.
Sixth arg ABBREV-TABLE, if non-nil, becomes the value of `local-abbrev-table'
in the minibuffer.
+Seventh arg DEFAULT, if non-nil, will be returned when user enters
+ an empty string.
See also the variable completion-highlight-first-word-only for control over
completion display."
;; `M-x doctor' makes history a local variable, and thus
;; our binding above is buffer-local and doesn't apply
;; once we switch buffers!!!! We demand better scope!
- (_history_ history))
+ (_history_ history)
+ (minibuffer-default default))
(unwind-protect
(progn
(set-buffer (reset-buffer buffer))
(let* ((val (progn (set-buffer buffer)
(if minibuffer-exit-hook
(run-hooks 'minibuffer-exit-hook))
- (buffer-string)))
- (histval val)
+ (if (and (eq (char-after (point-min)) nil)
+ default)
+ default
+ (buffer-string))))
+ (histval (if (and default (string= val ""))
+ default
+ val))
(err nil))
(if readp
(condition-case e
minibuffer-local-completion-map
minibuffer-local-must-match-map)
nil
- history))
+ history
+ nil
+ default))
(if (and (string= ret "")
default)
default
result)
(while (progn
(setq result (completing-read prompt alist nil require-match
- nil 'buffer-history))
+ nil 'buffer-history
+ (if (bufferp default)
+ (buffer-name default)
+ default)))
(cond ((not (equal result ""))
nil)
((not require-match)
read-file-name-map
read-file-name-must-match-map)
nil
- history))
- ))
+ history
+ nil
+ default))))
;;; ;; Kludge! Put "/foo/bar" on history rather than "/default//foo/bar"
;;; (let ((hist (cond ((not history) 'minibuffer-history)
;;; ((consp history) (car history))
(defun read-coding-system (prompt &optional default-coding-system)
"Read a coding-system (or nil) from the minibuffer.
Prompting with string PROMPT.
-If the user enters null input, return second argument DEFAULT-CODING-SYSTEM."
+If the user enters null input, return second argument DEFAULT-CODING-SYSTEM.
+DEFAULT-CODING-SYSTEM can be a string, symbol, or coding-system object."
(intern (completing-read prompt obarray 'find-coding-system t nil nil
- default-coding-system)))
+ (cond ((symbolp default-coding-system)
+ (symbol-name default-coding-system))
+ ((coding-system-p default-coding-system)
+ (symbol-name (coding-system-name default-coding-system)))
+ (t
+ default-coding-system)))))
(defun read-non-nil-coding-system (prompt)
"Read a non-nil coding-system from the minibuffer.