failures)))))
(defvar dired-query-alist
- '((?\y . y) (?\040 . y) ; `y' or SPC means accept once
+ '((?y . y) (?\040 . y) ; `y' or SPC means accept once
(?n . n) (?\177 . n) ; `n' or DEL skips once
(?! . yes) ; `!' accepts rest
(?q . no) (?\e . no) ; `q' or ESC skips rest
;;;###autoload
(defun dired-query (qs-var qs-prompt &rest qs-args)
- ;; Query user and return nil or t.
- ;; Store answer in symbol VAR (which must initially be bound to nil).
- ;; Format PROMPT with ARGS.
- ;; Binding variable help-form will help the user who types the help key.
+ "Query user and return nil or t.
+Store answer in symbol VAR (which must initially be bound to nil).
+Format PROMPT with ARGS.
+Binding variable `help-form' will help the user who types the help key."
(let* ((char (symbol-value qs-var))
(action (cdr (assoc char dired-query-alist))))
(cond ((eq 'yes action)
;; Actually it looks nicer without cursor-in-echo-area - you can
;; look at the dired buffer instead of at the prompt to decide.
(apply 'message qprompt qs-args)
- (setq char (set qs-var (read-char)))
- (while (not (setq elt (assoc char dired-query-alist)))
- (message "Invalid char - type %c for help." help-char)
+ (while (progn (setq char (set qs-var (read-key)))
+ (not (setq elt (assoc char dired-query-alist))))
+ (message "Invalid key - type %c for help." help-char)
(ding)
(sit-for 1)
- (apply 'message qprompt qs-args)
- (setq char (set qs-var (read-char))))
+ (apply 'message qprompt qs-args))
;; Display the question with the answer.
(message "%s" (concat (apply 'format qprompt qs-args)
(char-to-string char)))