summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorJuri Linkov <juri@jurta.org>2011-07-30 12:14:58 +0300
committerJuri Linkov <juri@jurta.org>2011-07-30 12:14:58 +0300
commit2cc8e51a1f041a24a1d436a22f8261af0051667b (patch)
tree026b3311d36eaa811ffe71d7f796aca7bfa4f0ea /lisp
parentb4010ade6620f6145fae022fb0b1cf3988cc16cf (diff)
downloademacs-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/ChangeLog9
-rw-r--r--lisp/dired-aux.el32
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