Please try this patch instead.

*** dired-aux.el        17 Jul 2006 16:31:56 -0400      1.146
--- dired-aux.el        05 Sep 2006 11:20:50 -0400      
***************
*** 39,44 ****
--- 39,49 ----
  ;; We need macros in dired.el to compile properly.
  (eval-when-compile (require 'dired))
  
+ (defvar dired-create-files-failures nil
+   "Variable where `dired-create-files' records failing file names.
+ Functions that operate recursively can store additional names
+ into this list; they also should call `dired-log' to log the errors.")
+ 
  ;;; 15K
  ;;;###begin dired-cmd.el
  ;; Diffing and compressing
***************
*** 1145,1181 ****
  ;;;###autoload
  (defun dired-copy-file (from to ok-flag)
    (dired-handle-overwrite to)
!   (condition-case ()
!       (dired-copy-file-recursive from to ok-flag dired-copy-preserve-time t
!                                dired-recursive-copies)
!     (file-date-error (message "Can't set date")
!                    (sit-for 1))))
  
  (defun dired-copy-file-recursive (from to ok-flag &optional
                                       preserve-time top recursive)
!   (let ((attrs (file-attributes from)))
      (if (and recursive
             (eq t (car attrs))
             (or (eq recursive 'always)
                 (yes-or-no-p (format "Recursive copies of %s? " from))))
        ;; This is a directory.
!       (let ((files (directory-files from nil dired-re-no-dot)))
          (if (eq recursive 'top) (setq recursive 'always)) ; Don't ask any 
more.
!         (if (file-exists-p to)
!             (or top (dired-handle-overwrite to))
!           (make-directory to))
          (while files
            (dired-copy-file-recursive
             (expand-file-name (car files) from)
             (expand-file-name (car files) to)
             ok-flag preserve-time nil recursive)
!           (setq files (cdr files))))
        ;; Not a directory.
        (or top (dired-handle-overwrite to))
!       (if (stringp (car attrs))
!         ;; It is a symlink
!         (make-symbolic-link (car attrs) to ok-flag)
!       (copy-file from to ok-flag dired-copy-preserve-time)))))
  
  ;;;###autoload
  (defun dired-rename-file (file newname ok-if-already-exists)
--- 1150,1208 ----
  ;;;###autoload
  (defun dired-copy-file (from to ok-flag)
    (dired-handle-overwrite to)
!   (dired-copy-file-recursive from to ok-flag dired-copy-preserve-time t
!                            dired-recursive-copies))
  
  (defun dired-copy-file-recursive (from to ok-flag &optional
                                       preserve-time top recursive)
!   (let ((attrs (file-attributes from))
!       dirfailed)
      (if (and recursive
             (eq t (car attrs))
             (or (eq recursive 'always)
                 (yes-or-no-p (format "Recursive copies of %s? " from))))
        ;; This is a directory.
!       (let ((files
!              (condition-case err
!                  (directory-files from nil dired-re-no-dot)
!                (file-error
!                 (push (dired-make-relative from)
!                       dired-create-file-failures)
!                 (dired-log "Copying error for %s:\n%s\n" from err)
!                 (setq dirfailed t)
!                 nil))))
          (if (eq recursive 'top) (setq recursive 'always)) ; Don't ask any 
more.
!         (unless dirfailed
!           (if (file-exists-p to)
!               (or top (dired-handle-overwrite to))
!             (condition-case err
!                 (make-directory to)
!               (file-error
!                (push (dired-make-relative from)
!                      dired-create-file-failures)
!                (setq files nil)
!                (dired-log "Copying error for %s:\n%s\n" from err)))))
          (while files
            (dired-copy-file-recursive
             (expand-file-name (car files) from)
             (expand-file-name (car files) to)
             ok-flag preserve-time nil recursive)
!           (pop files)))
        ;; Not a directory.
        (or top (dired-handle-overwrite to))
!       (condition-case err
!         (if (stringp (car attrs))
!             ;; It is a symlink
!             (make-symbolic-link (car attrs) to ok-flag)
!           (copy-file from to ok-flag dired-copy-preserve-time))
!       (file-date-error 
!        (push (dired-make-relative from)
!              dired-create-file-failures)
!        (dired-log "Can't set date on %s:\n%s\n" from err))
!       (file-error
!        (push (dired-make-relative from)
!              dired-create-file-failures)
!        (dired-log "Copying error for %s:\n%s\n" from err))))))
  
  ;;;###autoload
  (defun dired-rename-file (file newname ok-if-already-exists)
***************
*** 1297,1303 ****
  ;; newfile's entry, or t to use the current marker character if the
  ;; oldfile was marked.
  
!   (let (failures skipped (success-count 0) (total (length fn-list)))
      (let (to overwrite-query
             overwrite-backup-query)    ; for dired-handle-overwrite
        (mapcar
--- 1324,1330 ----
  ;; newfile's entry, or t to use the current marker character if the
  ;; oldfile was marked.
  
!   (let (dired-create-files-failures skipped (success-count 0) (total (length 
fn-list)))
      (let (to overwrite-query
             overwrite-backup-query)    ; for dired-handle-overwrite
        (mapcar
***************
*** 1340,1356 ****
                    (dired-add-file to actual-marker-char))
                (file-error             ; FILE-CREATOR aborted
                 (progn
!                  (setq failures (cons (dired-make-relative from) failures))
                   (dired-log "%s `%s' to `%s' failed:\n%s\n"
                              operation from to err))))))))
         fn-list))
      (cond
!      (failures
        (dired-log-summary
         (format "%s failed for %d of %d file%s"
!               operation (length failures) total
                (dired-plural-s total))
!        failures))
       (skipped
        (dired-log-summary
         (format "%s: %d of %d file%s skipped"
--- 1367,1384 ----
                    (dired-add-file to actual-marker-char))
                (file-error             ; FILE-CREATOR aborted
                 (progn
!                  (push (dired-make-relative from)
!                        dired-create-files-failures)
                   (dired-log "%s `%s' to `%s' failed:\n%s\n"
                              operation from to err))))))))
         fn-list))
      (cond
!      (dired-create-files-failures
        (dired-log-summary
         (format "%s failed for %d of %d file%s"
!               operation (length dired-create-files-failures) total
                (dired-plural-s total))
!        dired-create-files-failures))
       (skipped
        (dired-log-summary
         (format "%s: %d of %d file%s skipped"


_______________________________________________
emacs-pretest-bug mailing list
emacs-pretest-bug@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug

Reply via email to