diff options
author | Juri Linkov <juri@jurta.org> | 2011-07-30 12:14:58 +0300 |
---|---|---|
committer | Juri Linkov <juri@jurta.org> | 2011-07-30 12:14:58 +0300 |
commit | 2cc8e51a1f041a24a1d436a22f8261af0051667b (patch) | |
tree | 026b3311d36eaa811ffe71d7f796aca7bfa4f0ea /lisp | |
parent | b4010ade6620f6145fae022fb0b1cf3988cc16cf (diff) | |
download | emacs-2cc8e51a1f041a24a1d436a22f8261af0051667b.tar.gz emacs-2cc8e51a1f041a24a1d436a22f8261af0051667b.tar.bz2 emacs-2cc8e51a1f041a24a1d436a22f8261af0051667b.zip |
* lisp/dired-aux.el (dired-touch-initial): Remove function.
(dired-do-chxxx): For op-symbol `touch', set `initial' to the
current time, and `default' to the last modification time of the
current marked file.
Fixes: debbugs:6887
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 9 | ||||
-rw-r--r-- | lisp/dired-aux.el | 32 |
2 files changed, 21 insertions, 20 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8b92eab8579..a5b5abc498a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,7 +1,14 @@ +2011-07-30 Juri Linkov <juri@jurta.org> + + * dired-aux.el (dired-touch-initial): Remove function. + (dired-do-chxxx): For op-symbol `touch', set `initial' to the + current time, and `default' to the last modification time of the + current marked file (bug#6887). + 2011-07-28 Jose E. Marchesi <jemarch@gnu.org> * simple.el (goto-line): Use string-to-number to provide a - numeric argument to read-number. + numeric argument to read-number (bug#9163). 2011-07-27 Michael Albinus <michael.albinus@gmx.de> diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index 3103fbd5a7f..ec157fc4939 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el @@ -226,34 +226,28 @@ List has a form of (file-name full-file-name (attribute-list))." (file-attributes full-file-name)))) (directory-files dir))) - -(defun dired-touch-initial (files) - "Create initial input value for `touch' command." - ;; Nobody can explain what this version is supposed to do. (Bug#6887) - ;; Also, the manual says it uses "the present time". - ;;; (let (initial) - ;;; (while files - ;;; (let ((current (nth 5 (file-attributes (car files))))) - ;;; (if (and initial (not (equal initial current))) - ;;; (setq initial (current-time) files nil) - ;;; (setq initial current)) - ;;; (setq files (cdr files)))) - ;;; (format-time-string "%Y%m%d%H%M.%S" initial))) - (format-time-string "%Y%m%d%H%M.%S" (current-time))) +;;; Change file attributes (defun dired-do-chxxx (attribute-name program op-symbol arg) - ;; Change file attributes (mode, group, owner, timestamp) of marked files and + ;; Change file attributes (group, owner, timestamp) of marked files and ;; refresh their file lines. ;; ATTRIBUTE-NAME is a string describing the attribute to the user. ;; PROGRAM is the program used to change the attribute. - ;; OP-SYMBOL is the type of operation (for use in dired-mark-pop-up). - ;; ARG describes which files to use, as in dired-get-marked-files. + ;; OP-SYMBOL is the type of operation (for use in `dired-mark-pop-up'). + ;; ARG describes which files to use, as in `dired-get-marked-files'. (let* ((files (dired-get-marked-files t arg)) + (initial + (if (eq op-symbol 'touch) + (format-time-string "%Y%m%d%H%M.%S"))) + (default + (if (eq op-symbol 'touch) + (and (stringp (car files)) + (format-time-string "%Y%m%d%H%M.%S" + (nth 5 (file-attributes (car files))))))) (new-attribute (dired-mark-read-string (concat "Change " attribute-name " of %s to: ") - (if (eq op-symbol 'touch) (dired-touch-initial files)) - op-symbol arg files)) + initial op-symbol arg files default)) (operation (concat program " " new-attribute)) failures) (setq failures |