changeset 55274:33be1cf542ec

(dired-touch-initial): New fun. (dired-do-chxxx): Call it for op-symbol `touch'.
author Juri Linkov <juri@jurta.org>
date Sat, 01 May 2004 03:47:42 +0000
parents 8362eef794e3
children 1fcfb5d038a2
files lisp/dired-aux.el
diffstat 1 files changed, 14 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/dired-aux.el	Sat May 01 03:44:30 2004 +0000
+++ b/lisp/dired-aux.el	Sat May 01 03:47:42 2004 +0000
@@ -185,6 +185,18 @@
              (file-attributes full-file-name))))
    (directory-files dir)))
 
+
+(defun dired-touch-initial (files)
+  "Create initial input value for `touch' command."
+  (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)))
+
 (defun dired-do-chxxx (attribute-name program op-symbol arg)
   ;; Change file attributes (mode, group, owner, timestamp) of marked files and
   ;; refresh their file lines.
@@ -196,7 +208,8 @@
 	 (new-attribute
 	  (dired-mark-read-string
 	   (concat "Change " attribute-name " of %s to: ")
-	   nil op-symbol arg files))
+	   (if (eq op-symbol 'touch) (dired-touch-initial files))
+	   op-symbol arg files))
 	 (operation (concat program " " new-attribute))
 	 failures)
     (setq failures