]> git.eshelyaron.com Git - emacs.git/commitdiff
Revert last change.
authorDave Love <fx@gnu.org>
Fri, 26 Jan 2001 13:14:11 +0000 (13:14 +0000)
committerDave Love <fx@gnu.org>
Fri, 26 Jan 2001 13:14:11 +0000 (13:14 +0000)
lisp/dired-aux.el
lisp/dired.el

index 05d998176f75b6fbcdd427984a6f2a5a91124465..4b9667110128ab8061c07c3fcf9f21c902284911 100644 (file)
@@ -99,7 +99,7 @@ With prefix arg, prompt for argument SWITCHES which is options for `diff'."
     (setq failures
          (dired-bunch-files 10000
                             (function dired-check-process)
-                            (append
+                            (append 
                              (list operation program new-attribute)
                              (if (string-match "gnu" system-configuration)
                                  '("--") nil))
@@ -198,7 +198,7 @@ Uses the shell command coming from variables `lpr-command' and
    nil op-symbol files
    (function read-string)
    (format prompt (dired-mark-prompt arg files)) initial))
-
+\f
 ;;; Cleaning a directory: flagging some backups for deletion.
 
 (defvar dired-file-version-alist)
@@ -290,7 +290,7 @@ with a prefix argument."
         (progn (beginning-of-line)
                (delete-char 1)
                (insert dired-del-marker)))))
-
+\f
 ;;; Shell commands
 
 (defun dired-read-shell-command (prompt arg files)
@@ -379,10 +379,12 @@ the list of file names explicitly with the FILE-LIST argument."
   ;; your cmd.
   (let ((stuff-it
         (cond ((string-match "\\*" command)
-               (lambda (x) (replace-regexp-in-string "\\*" x command)))
+               (function (lambda (x)
+                           (dired-replace-in-string "\\*" x command))))
               ((string-match "\\?" command)
-               (lambda (x) (replace-regexp-in-string "\\?" x command)))
-              (t (lambda (x) (concat command " " x))))))
+               (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
@@ -400,7 +402,7 @@ the list of file names explicitly with the FILE-LIST argument."
       (shell-command command)))
   ;; Return nil for sake of nconc in dired-bunch-files.
   nil)
-
+\f
 ;; In Emacs 19 this will return program's exit status.
 ;; This is a separate function so that ange-ftp can redefine it.
 (defun dired-call-process (program discard &rest arguments)
@@ -439,7 +441,7 @@ the list of file names explicitly with the FILE-LIST argument."
        (kill-buffer err-buffer)
        (message "%s...done" msg)
        nil))))
-
+\f
 ;; Commands that delete or redisplay part of the dired buffer.
 
 (defun dired-kill-line (&optional arg)
@@ -498,7 +500,7 @@ and use this command with a prefix argument (the value does not matter)."
        count))))
 
 ;;;###end dired-cmd.el
-
+\f
 ;;; 30K
 ;;;###begin dired-cp.el
 
@@ -555,7 +557,7 @@ Otherwise, the rule is a compression rule, and compression is done with gzip.")
            (setq suffix (car suffixes) suffixes nil))
        (setq suffixes (cdr suffixes))))
     ;; If so, compute desired new name.
-    (if suffix
+    (if suffix 
        (setq newname (concat (substring file 0 (match-beginning 0))
                              (nth 1 suffix))))
     (cond (handler
@@ -589,7 +591,7 @@ Otherwise, the rule is a compression rule, and compression is done with gzip.")
                                            "compress" "-f" file))
                  ;; Don't use NEWNAME with `compress'.
                  (concat file ".Z"))))))))
-
+\f
 (defun dired-mark-confirm (op-symbol arg)
   ;; Request confirmation from the user that the operation described
   ;; by OP-SYMBOL is to be performed on the marked files.
@@ -674,7 +676,7 @@ Otherwise, the rule is a compression rule, and compression is done with gzip.")
               (apply 'message qprompt qs-args)
               (setq char (set qs-var (read-char))))
             (memq (cdr elt) '(t y yes)))))))
-
+\f
 ;;;###autoload
 (defun dired-do-compress (&optional arg)
   "Compress or uncompress marked (or next ARG) files."
@@ -747,7 +749,7 @@ a prefix arg lets you edit the `ls' switches used for the new listing."
                          arg)
     (dired-move-to-filename)
     (message "Redisplaying...done")))
-
+\f
 (defun dired-update-file-line (file)
   ;; Delete the current line, and insert an entry for FILE.
   ;; If FILE is nil, then just delete the current line.
@@ -847,7 +849,7 @@ a prefix arg lets you edit the `ls' switches used for the new listing."
              ;; It inserts the file's absolute name, rather than
              ;; the relative one.  That may be hard to fix since it
              ;; is probably controlled by something in ftp.
-             (goto-char opoint)
+             (goto-char opoint)        
              (let ((inserted-name (dired-get-filename 'verbatim)))
                (if (file-name-directory inserted-name)
                    (progn
@@ -929,7 +931,7 @@ a prefix arg lets you edit the `ls' switches used for the new listing."
                          (save-excursion (forward-line 1) (point))))
       (setq file (directory-file-name file))
       (dired-add-entry file (if (eq ?\040 marker) nil marker)))))
-
+\f
 ;;; Copy, move/rename, making hard and symbolic links
 
 (defcustom dired-recursive-copies nil
@@ -1026,7 +1028,7 @@ Special value `always' suppresses confirmation."
        (if (and buffer-file-name
                 (dired-in-this-tree buffer-file-name expanded-from-dir))
            (let ((modflag (buffer-modified-p))
-                 (to-file (replace-regexp-in-string
+                 (to-file (dired-replace-in-string
                            (concat "^" (regexp-quote from-dir))
                            to-dir
                            buffer-file-name)))
@@ -1085,8 +1087,8 @@ Special value `always' suppresses confirmation."
       ;; Update buffer-local dired-subdir-alist
       (setcar elt
              (dired-normalize-subdir
-              (replace-regexp-in-string regexp newtext (car elt)))))))
-
+              (dired-replace-in-string regexp newtext (car elt)))))))
+\f
 ;; The basic function for half a dozen variations on cp/mv/ln/ln -s.
 (defun dired-create-files (file-creator operation fn-list name-constructor
                                        &optional marker-char)
@@ -1181,7 +1183,7 @@ ESC or `q' to not overwrite any of the remaining files,
       (message "%s: %s file%s"
               operation success-count (dired-plural-s success-count)))))
   (dired-move-to-filename))
-
+\f
 (defun dired-do-create-files (op-symbol file-creator operation arg
                                        &optional marker-char op1
                                        how-to)
@@ -1302,7 +1304,7 @@ Optional arg HOW-TO is used to set the value of the into-dir variable
                                 (dired-current-directory)))))
          (or other-dir this-dir))
       this-dir)))
-
+\f
 ;;;###autoload
 (defun dired-create-directory (directory)
   "Create a directory called DIRECTORY."
@@ -1379,7 +1381,7 @@ When renaming multiple or marked files, you specify a directory."
   (dired-do-create-files 'move (function dired-rename-file)
                         "Move" arg dired-keep-marker-rename "Rename"))
 ;;;###end dired-cp.el
-
+\f
 ;;; 5K
 ;;;###begin dired-re.el
 (defun dired-do-create-files-regexp
@@ -1542,7 +1544,7 @@ Type SPC or `y' to %s one file, DEL or `n' to skip to next,
   (dired-rename-non-directory (function downcase) "Rename downcase" arg))
 
 ;;;###end dired-re.el
-
+\f
 ;;; 13K
 ;;;###begin dired-ins.el
 
@@ -1695,7 +1697,7 @@ With optional arg REMEMBER-MARKS, return an alist of marked files."
     (message "Reading directory %s..." dirname)
     (let ((dired-actual-switches
           (or switches
-              (replace-regexp-in-string "R" "" dired-actual-switches))))
+              (dired-replace-in-string "R" "" dired-actual-switches))))
       (if (equal dirname (car (car (reverse dired-subdir-alist))))
          ;; top level directory may contain wildcards:
          (dired-readin-insert dired-directory)
@@ -1798,7 +1800,7 @@ is always equal to STRING."
        (setq result
              (cons (substring str end) result)))
     (nreverse result)))
-
+\f
 ;;; moving by subdirectories
 
 ;;;###autoload
@@ -1841,7 +1843,7 @@ The next char is either \\n, or \\r if DIR is hidden."
         ;; at either \r or \n after this function succeeds.
         (progn (skip-chars-forward "^\r\n")
                (point)))))
-
+\f
 ;;;###autoload
 (defun dired-mark-subdir-files ()
   "Mark all files except `.' and `..' in current subdirectory.
@@ -1903,7 +1905,7 @@ Lower levels are unaffected."
     (if pos
        (goto-char pos)
       (error "At the bottom"))))
-
+\f
 ;;; hiding
 
 (defun dired-unhide-subdir ()
@@ -1970,7 +1972,7 @@ Use \\[dired-hide-subdir] to (un)hide a particular subdirectory."
 
 ;;;###end dired-ins.el
 
-
+\f
 ;; Functions for searching in tags style among marked files.
 
 ;;;###autoload
@@ -1990,14 +1992,14 @@ with the command \\[tags-loop-continue]."
   (interactive
    "sQuery replace in marked files (regexp): \nsQuery replace %s by: \nP")
   (tags-query-replace from to delimited '(dired-get-marked-files)))
-
+\f
 ;;;###autoload
 (defun dired-show-file-type (file &optional deref-symlinks)
   "Print the type of FILE, according to the `file' command.
 If FILE is a symbolic link and the optional argument DEREF-SYMLINKS is
-true then the type of the file linked to by FILE is printed instead."
+true then the type of the file linked to by FILE is printed instead." 
   (interactive (list (dired-get-filename t) current-prefix-arg))
-  (with-temp-buffer
+  (with-temp-buffer 
     (if deref-symlinks
        (call-process "file" nil t t "-L" file)
       (call-process "file" nil t t file))
index 481fe3b6862a112bec0c4ea12e0f3c3b4676ab9c..03d1cf405eeebddbac8ead6b9c060b0dc7ecab2a 100644 (file)
@@ -292,7 +292,7 @@ Subexpression 2 must end right before the \\n or \\r.")
         '(".+" (dired-move-to-filename) nil (0 font-lock-function-name-face)))
    ;;
    ;; Symbolic links.
-   (list dired-re-sym
+   (list dired-re-sym 
         '(".+" (dired-move-to-filename) nil (0 font-lock-keyword-face)))
    ;;
    ;; Files suffixed with `completion-ignored-extensions'.
@@ -303,7 +303,7 @@ Subexpression 2 must end right before the \\n or \\r.")
        (list (concat "\\(" (mapconcat 'identity extensions "\\|") "\\|#\\)$")
             '(".+" (dired-move-to-filename) nil (0 font-lock-string-face))))))
   "Additional expressions to highlight in Dired mode.")
-
+\f
 ;;; Macros must be defined before they are used, for the byte compiler.
 
 ;; Mark all files for which CONDITION evals to non-nil.
@@ -406,10 +406,10 @@ Optional second argument ARG forces to use other files.  If ARG is an
   (save-excursion
     (nreverse (dired-map-over-marks (dired-get-filename localp) arg))))
 
-
+\f
 ;; Function dired-ls is redefinable for VMS, ange-ftp, Prospero or
 ;; other special applications.
-
+\f
 ;; The dired command
 
 (defun dired-read-dir-and-switches (str)
@@ -514,12 +514,12 @@ If DIRNAME is already in a dired buffer, that buffer is used without refresh."
          (setq buffer (create-file-buffer (directory-file-name dirname)))))
     (set-buffer buffer)
     (if (not new-buffer-p)     ; existing buffer ...
-       (cond (switches        ; ... but new switches
+       (cond (switches        ; ... but new switches     
               ;; file list may have changed
-              (if (consp dir-or-list)
+              (if (consp dir-or-list) 
                   (setq dired-directory dir-or-list))
               ;; this calls dired-revert
-              (dired-sort-other switches))
+              (dired-sort-other switches))  
              ;; If directory has changed on disk, offer to revert.
              ((if (let ((attributes (file-attributes dirname))
                         (modtime (visited-file-modtime)))
@@ -586,7 +586,7 @@ If DIRNAME is already in a dired buffer, that buffer is used without refresh."
            (setq blist (cdr blist))))))
     found))
 
-
+\f
 ;; Read in a new dired buffer
 
 ;; dired-readin differs from dired-insert-subdir in that it accepts
@@ -749,7 +749,7 @@ If DIRNAME is already in a dired buffer, that buffer is used without refresh."
   ;; boundaries.
   (save-excursion (insert "  " (directory-file-name dir) ":\n")))
 
-
+\f
 ;; Reverting a dired buffer
 
 (defun dired-revert (&optional arg noconfirm)
@@ -857,7 +857,7 @@ If DIRNAME is already in a dired buffer, that buffer is used without refresh."
   (let ((handler (find-file-name-handler dir 'dired-uncache)))
     (if handler
        (funcall handler 'dired-uncache dir))))
-
+\f
 ;; dired mode key bindings and initialization
 
 (defvar dired-mode-map nil "Local keymap for dired-mode buffers.")
@@ -1188,7 +1188,7 @@ If DIRNAME is already in a dired buffer, that buffer is used without refresh."
                  :help "Copy current file or all marked files"))
 
     (setq dired-mode-map map)))
-
+\f
 ;; Dired mode is suitable only for specially formatted data.
 (put 'dired-mode 'mode-class 'special)
 
@@ -1282,7 +1282,7 @@ Keybindings:
   (set (make-local-variable 'font-lock-defaults) '(dired-font-lock-keywords t))
   (dired-sort-other dired-actual-switches t)
   (run-hooks 'dired-mode-hook))
-
+\f
 ;; Idiosyncratic dired commands that don't deal with marks.
 
 (defun dired-summary ()
@@ -1402,7 +1402,7 @@ otherwise, display it in another buffer."
   (interactive)
   (let ((file (file-name-sans-versions (dired-get-filename) t)))
     (display-buffer (find-file-noselect file))))
-
+\f
 ;;; Functions for extracting and manipulating file names in dired buffers.
 
 (defun dired-get-filename (&optional localp no-error-if-not-filep)
@@ -1492,7 +1492,7 @@ DIR must be a directory name, not a file name."
 ;;; (or no-error
 ;;;    (error "%s: not in directory tree growing at %s" file dir))
     file))
-
+\f
 ;;; Functions for finding the file name in a dired buffer line.
 
 (defvar dired-move-to-filename-regexp
@@ -1502,7 +1502,7 @@ DIR must be a directory name, not a file name."
         ;; weiand: changed: month ends potentially with . or , or .,
 ;;old   (month (concat l l "+ *"))
         (month (concat l l "+[.]?,? *"))
-        ;; Recognize any non-ASCII character.
+        ;; Recognize any non-ASCII character.  
         ;; The purpose is to match a Kanji character.
         (k "[^\0-\177]")
         ;; (k "[^\x00-\x7f\x80-\xff]")
@@ -1515,7 +1515,7 @@ DIR must be a directory name, not a file name."
         (western (concat "\\(" month s dd "\\|" dd s month "\\)"
          ;; weiand: changed: year potentially unaligned
 ;;old                    s "\\(" HH:MM "\\|" s yyyy "\\|" yyyy s "\\)"))
-                         s "\\(" HH:MM
+                         s "\\(" HH:MM 
                                  "\\|" yyyy s s "?"
                                  "\\|" s "?" yyyy
                             "\\)"))
@@ -1612,7 +1612,7 @@ regardless of the language.")
        nil
       (point))))
 
-
+\f
 ;; Keeping Dired buffers in sync with the filesystem and with each other
 
 (defun dired-buffers-for-dir (dir &optional file)
@@ -1677,7 +1677,7 @@ regardless of the language.")
             (substring pattern matched-in-pattern))
            "\\'")))
 
-
+                
 
 (defun dired-advertise ()
   ;;"Advertise in variable `dired-buffers' that we dired `default-directory'."
@@ -1696,7 +1696,7 @@ regardless of the language.")
   ;; Removing is also done as a side-effect in dired-buffer-for-dir.
   (setq dired-buffers
        (delq (assoc (expand-file-name dir) dired-buffers) dired-buffers)))
-
+\f
 ;; Tree Dired
 
 ;;; utility functions
@@ -1898,7 +1898,7 @@ Returns the new value of the alist."
   ;; You may redefine this function as you wish, e.g. like in dired-x.el.
   (end-of-line)
   (if dired-trivial-filenames (dired-goto-next-nontrivial-file)))
-
+\f
 ;; These are hooks which make tree dired work.
 ;; They are in this file because other parts of dired need to call them.
 ;; But they don't call the rest of tree dired unless there are subdirs loaded.
@@ -1935,7 +1935,7 @@ Optional argument means return a file name relative to `default-directory'."
     (if (or (null (cdr dired-subdir-alist)) (not (dired-next-subdir 1 t t)))
        (point-max)
       (point))))
-
+\f
 ;; Deleting files
 
 (defcustom dired-recursive-deletes nil ; Default only delete empty directories.
@@ -1951,7 +1951,7 @@ Anything else means ask for each directory."
                 (const :tag "Ask for each top directory only" top))
   :group 'dired)
 
-;; Match anything but `.' and `..'.
+;; Match anything but `.' and `..'. 
 (defvar dired-re-no-dot "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")
 
 ;; Delete file, possibly delete a directory and all its files.
@@ -2064,7 +2064,7 @@ if there are no flagged files."
   (save-excursion (and (cdr dired-subdir-alist)
                       (dired-goto-subdir fn)
                       (dired-kill-subdir))))
-
+\f
 ;; Confirmation
 
 (defun dired-marker-regexp ()
@@ -2184,7 +2184,7 @@ FILES is the list of marked files."
            j (1+ j)
            files (cdr files)))
     rows))
-
+\f
 ;; Commands to mark or flag file(s) at or near current line.
 
 (defun dired-repeat-over-lines (arg function)
@@ -2325,7 +2325,7 @@ As always, hidden subdirs are not affected."
                        (list ?\040 dired-marker-char)
                      (list dired-marker-char ?\040))))
         (forward-line 1)))))
-
+\f
 ;;; Commands to mark or flag files based on their characteristics or names.
 
 (defvar dired-regexp-history nil
@@ -2444,7 +2444,7 @@ A prefix argument says to unflag those files instead."
      "auto save file")))
 
 (defvar dired-garbage-files-regexp
-  "\\.log$\\|\\.toc$\\|\\.dvi$\\|\\.bak$\\|\\.orig$\\|\\.rej$"
+  "\\.log$\\|\\.toc$\\|\\.dvi$\\|\\.bak$\\|\\.orig$\\|\\.rej$" 
   "*Regular expression to match \"garbage\" files for `dired-flag-garbage-files'.")
 
 (defun dired-flag-garbage-files ()
@@ -2504,7 +2504,7 @@ OLD and NEW are both characters used to mark files."
 
 (defun dired-unmark-all-files (mark &optional arg)
   "Remove a specific mark (or any mark) from every file.
-After this command, type the mark character to remove,
+After this command, type the mark character to remove, 
 or type RET to remove all marks.
 With prefix arg, query for each marked file.
 Type \\[help-command] at that time for help."
@@ -2529,7 +2529,7 @@ Type SPC or `y' to unmark one file, DEL or `n' to skip to next,
       (message (if (= count 1) "1 mark removed"
                 "%d marks removed")
               count))))
-
+\f
 ;; Logging failures operating on files, and showing the results.
 
 (defvar dired-log-buffer "*Dired log*")
@@ -2579,7 +2579,7 @@ Thus, use \\[backward-page] to find the beginning of a group of errors."
   ;; Log a summary describing a bunch of errors.
   (dired-log (concat "\n" string))
   (dired-log t))
-
+\f
 ;;; Sorting
 
 ;; Most ls can only sort by name or by date (with -t), nothing else.
@@ -2629,15 +2629,15 @@ With a prefix argument you can edit the current listing switches instead."
          (if (string-match " " dired-actual-switches)
              ;; New toggle scheme: add/remove a trailing " -t"
              (if (string-match " -t\\'" dired-actual-switches)
-                 (replace-regexp-in-string " -t\\'" "" dired-actual-switches)
+                 (dired-replace-in-string " -t\\'" "" dired-actual-switches)
                (concat dired-actual-switches " -t"))
            ;; old toggle scheme: look for some 't' switch and add/remove it
            (concat
             "-l"
-            (replace-regexp-in-string (concat "[-lt"
-                                               dired-ls-sorting-switches "]")
-                                       ""
-                                       dired-actual-switches)
+            (dired-replace-in-string (concat "[-lt"
+                                             dired-ls-sorting-switches "]")
+                                     ""
+                                     dired-actual-switches)
             (if (string-match (concat "[t" dired-ls-sorting-switches "]")
                               dired-actual-switches)
                 ""
@@ -2645,6 +2645,18 @@ With a prefix argument you can edit the current listing switches instead."
   (dired-sort-set-modeline)
   (revert-buffer))
 
+;; Some user code loads dired especially for this.
+(defun dired-replace-in-string (regexp newtext string)
+  ;; Replace REGEXP with NEWTEXT everywhere in STRING and return result.
+  ;; NEWTEXT is taken literally---no \\DIGIT escapes will be recognized.
+  (let ((result "") (start 0) mb me)
+    (while (string-match regexp string start)
+      (setq mb (match-beginning 0)
+           me (match-end 0)
+           result (concat result (substring string start mb) newtext)
+           start me))
+    (concat result (substring string start))))
+
 (defun dired-sort-other (switches &optional no-revert)
   ;; Specify new ls SWITCHES for current dired buffer.  Values matching
   ;; `dired-sort-by-date-regexp' or `dired-sort-by-name-regexp' set the
@@ -2689,7 +2701,7 @@ To be called first in body of `dired-sort-other', etc."
            ;; No pre-R subdir alist, so revert to main directory
            ;; listing:
            (list (car (reverse dired-subdir-alist))))))))
-
+\f
 ;; To make this file smaller, the less common commands
 ;; go in a separate file.  But autoload them here
 ;; to make the separation invisible.
@@ -2902,9 +2914,9 @@ Use \\[dired-hide-subdir] to (un)hide a particular subdirectory."
 (autoload 'dired-show-file-type "dired-aux"
   "Print the type of FILE, according to the `file' command.
 If FILE is a symbolic link and the optional argument DEREF-SYMLINKS is
-true then the type of the file linked to by FILE is printed instead."
+true then the type of the file linked to by FILE is printed instead." 
   t)
-
+\f
 (if (eq system-type 'vax-vms)
     (load "dired-vms"))