# HG changeset patch # User Michael Albinus # Date 1270914706 -7200 # Node ID 02b5fe4a01fe4d7aa604eee49f1fa4de6c1a4ecc # Parent 253a7b1999c700c381151941cf1cc348630328b0 * net/tramp.el (tramp-do-copy-or-rename-file): Add progress reporter. diff -r 253a7b1999c7 -r 02b5fe4a01fe lisp/ChangeLog --- a/lisp/ChangeLog Sat Apr 10 14:59:22 2010 +0200 +++ b/lisp/ChangeLog Sat Apr 10 17:51:46 2010 +0200 @@ -1,3 +1,7 @@ +2010-04-10 Michael Albinus + + * net/tramp.el (tramp-do-copy-or-rename-file): Add progress reporter. + 2010-04-10 Michael Albinus Synchronize with Tramp repository. diff -r 253a7b1999c7 -r 02b5fe4a01fe lisp/net/tramp.el --- a/lisp/net/tramp.el Sat Apr 10 14:59:22 2010 +0200 +++ b/lisp/net/tramp.el Sat Apr 10 17:51:46 2010 +0200 @@ -3524,7 +3524,8 @@ (unless (memq op '(copy rename)) (error "Unknown operation `%s', must be `copy' or `rename'" op)) (let ((t1 (tramp-tramp-file-p filename)) - (t2 (tramp-tramp-file-p newname))) + (t2 (tramp-tramp-file-p newname)) + pr tm) (when (and (not ok-if-already-exists) (file-exists-p newname)) (with-parsed-tramp-file-name (if t1 filename newname) nil @@ -3534,7 +3535,16 @@ (with-parsed-tramp-file-name (if t1 filename newname) nil (tramp-message v 0 "Transferring %s to %s..." filename newname)) - (prog1 + ;; We start a pulsing progress reporter. Introduced in Emacs 24.1. + (when (> (nth 7 (file-attributes filename)) tramp-copy-size-limit) + (condition-case nil + (setq pr (funcall + 'make-progress-reporter + (format "Transferring %s to %s..." filename newname)) + tm (run-at-time 0 0.1 'progress-reporter-update pr)) + (error nil))) + + (unwind-protect (cond ;; Both are Tramp files. ((and t1 t2) @@ -3604,6 +3614,8 @@ (tramp-flush-file-property v (file-name-directory localname)) (tramp-flush-file-property v localname))) + ;; Stop progress reporter. + (if tm (cancel-timer tm)) (with-parsed-tramp-file-name (if t1 filename newname) nil (tramp-message v 0 "Transferring %s to %s...done" filename newname))))) @@ -8569,7 +8581,6 @@ ;; * Remove unneeded parameters from methods. ;; * Make it work for different encodings, and for different file name ;; encodings, too. (Daniel Pittman) -;; * Progress reports while copying files. (Michael Kifer) ;; * Don't search for perl5 and perl. Instead, only search for perl and ;; then look if it's the right version (with `perl -v'). ;; * When editing a remote CVS controlled file as a different user, VC