# HG changeset patch # User Gerd Moellmann # Date 944498426 0 # Node ID c7faf448e65bcdc76a3b35a77cefee1a754dd782 # Parent 7e3e0c11f5b6cdcc1f1c84138abeb12917d9fbf5 (dired-do-shell-command): Changed documentation. (dired-shell-stuff-it): A `?' in COMMAND has now the same meaning as `*'. diff -r 7e3e0c11f5b6 -r c7faf448e65b lisp/dired-aux.el --- a/lisp/dired-aux.el Mon Dec 06 16:26:36 1999 +0000 +++ b/lisp/dired-aux.el Mon Dec 06 16:40:26 1999 +0000 @@ -319,6 +319,10 @@ However, if there is a `*' in the command then it is run just once with the entire file list substituted there. +If there is no `*', but a `?' in the command then it is still run +on each file individually but with the filename substituted there +instead of att the end of the command. + No automatic redisplay of dired buffers is attempted, as there's no telling what files the command may have changed. Type \\[dired-do-redisplay] to redisplay the marked files. @@ -370,13 +374,17 @@ ;; (coming from interactive P and currently ignored) to decide what to do. ;; Smart would be a way to access basename or extension of file names. ;; See dired-trns.el for an approach to this. - ;; Bug: There is no way to quote a * - ;; On the other hand, you can never accidentally get a * into your cmd. + ;; Bug: There is no way to quote a * or a ? + ;; On the other hand, you can never accidentally get a * or a ? into + ;; your cmd. (let ((stuff-it - (if (string-match "\\*" command) - (function (lambda (x) - (dired-replace-in-string "\\*" x command))) - (function (lambda (x) (concat command " " x)))))) + (cond ((string-match "\\*" command) + (function (lambda (x) + (dired-replace-in-string "\\*" x command)))) + ((string-match "\\?" command) + (function (lambda (x) + (dired-replace-in-string "\\?" x command)))) + (t (function (lambda (x) (concat command " " x))))))) (if on-each (mapconcat stuff-it (mapcar 'shell-quote-argument file-list) ";") (let ((fns (mapconcat 'shell-quote-argument