]> git.eshelyaron.com Git - emacs.git/commitdiff
(dired-touch-initial): New fun.
authorJuri Linkov <juri@jurta.org>
Sat, 1 May 2004 03:47:42 +0000 (03:47 +0000)
committerJuri Linkov <juri@jurta.org>
Sat, 1 May 2004 03:47:42 +0000 (03:47 +0000)
(dired-do-chxxx): Call it for op-symbol `touch'.

lisp/dired-aux.el

index 0709e0cfe1ce340953d746d0b0b0783ebf877905..dbc3d7630408e357973130a2e18035fbb9af8e58 100644 (file)
@@ -185,6 +185,18 @@ List has a form of (file-name full-file-name (attribute-list))"
              (file-attributes full-file-name))))
    (directory-files dir)))
 \f
+
+(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 @@ List has a form of (file-name full-file-name (attribute-list))"
         (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