(dired-do-chmod): Set default value to the original

mode string using absolute notation like u=rwx,g=rx,o=rx.
Use it as a new arg `default' of `dired-mark-read-string'.
(dired-mark-read-string): Add new optional arg `default'.
This commit is contained in:
Juri Linkov 2008-07-31 17:17:35 +00:00
parent c0a67379ac
commit 78be566d5c

View file

@ -255,9 +255,20 @@ List has a form of (file-name full-file-name (attribute-list))"
Symbolic modes like `g+w' are allowed."
(interactive "P")
(let* ((files (dired-get-marked-files t arg))
(modestr (and (stringp (car files))
(nth 8 (file-attributes (car files)))))
(default
(and (stringp modestr)
(string-match "^.\\(...\\)\\(...\\)\\(...\\)$" modestr)
(replace-regexp-in-string
"-" ""
(format "u=%s,g=%s,o=%s"
(match-string 1 modestr)
(match-string 2 modestr)
(match-string 3 modestr)))))
(modes (dired-mark-read-string
"Change mode of %s to: " nil
'chmod arg files))
'chmod arg files default))
(num-modes (if (string-match "^[0-7]+" modes)
(string-to-number modes 8))))
(dolist (file files)
@ -358,14 +369,14 @@ Uses the shell command coming from variables `lpr-command' and
;; If the current file was used, the list has but one element and ARG
;; does not matter. (It is non-nil, non-integer in that case, namely '(4)).
(defun dired-mark-read-string (prompt initial op-symbol arg files)
;; PROMPT for a string, with INITIAL input.
(defun dired-mark-read-string (prompt initial op-symbol arg files &optional default)
;; PROMPT for a string, with INITIAL input and DEFAULT value.
;; Other args are used to give user feedback and pop-up:
;; OP-SYMBOL of command, prefix ARG, marked FILES.
(dired-mark-pop-up
nil op-symbol files
(function read-string)
(format prompt (dired-mark-prompt arg files)) initial))
(format prompt (dired-mark-prompt arg files)) initial nil default))
;;; Cleaning a directory: flagging some backups for deletion.