(dired-copy-file-recursive): Catch errors

from recursive copies in the loop, around the recursive call.
This commit is contained in:
Richard M. Stallman 2006-11-05 15:00:31 +00:00
parent 785428c709
commit 7a547817cc

View file

@ -1182,12 +1182,20 @@ Special value `always' suppresses confirmation."
dired-create-files-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)))
(dolist (file files)
(let ((thisfrom (expand-file-name file from))
(thisto (expand-file-name file to)))
;; Catch errors copying within a directory,
;; and report them through the dired log mechanism
;; just as our caller will do for the top level files.
(condition-case err
(dired-copy-file-recursive
thisfrom thisto
ok-flag preserve-time nil recursive)
(file-error
(push (dired-make-relative thisfrom)
dired-create-files-failures)
(dired-log "Copying error for %s:\n%s\n" thisfrom err))))))
;; Not a directory.
(or top (dired-handle-overwrite to))
(condition-case err
@ -1198,11 +1206,7 @@ Special value `always' suppresses confirmation."
(file-date-error
(push (dired-make-relative from)
dired-create-files-failures)
(dired-log "Can't set date on %s:\n%s\n" from err))
(file-error
(push (dired-make-relative from)
dired-create-files-failures)
(dired-log "Copying error for %s:\n%s\n" from err))))))
(dired-log "Can't set date on %s:\n%s\n" from err))))))
;;;###autoload
(defun dired-rename-file (file newname ok-if-already-exists)