# HG changeset patch # User Richard M. Stallman # Date 1162738831 0 # Node ID 1c9765fecfa40b8fc795b597d1a649dcfb2edbd2 # Parent 294b1de9ac5f57c7321e90521fd9b45a5fa7d8f1 (dired-copy-file-recursive): Catch errors from recursive copies in the loop, around the recursive call. diff -r 294b1de9ac5f -r 1c9765fecfa4 lisp/dired-aux.el --- a/lisp/dired-aux.el Sun Nov 05 13:22:30 2006 +0000 +++ b/lisp/dired-aux.el Sun Nov 05 15:00:31 2006 +0000 @@ -1182,12 +1182,20 @@ 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 @@ (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)