Mercurial > emacs
changeset 107822:02b5fe4a01fe
* net/tramp.el (tramp-do-copy-or-rename-file): Add progress reporter.
author | Michael Albinus <albinus@detlef> |
---|---|
date | Sat, 10 Apr 2010 17:51:46 +0200 |
parents | 253a7b1999c7 |
children | 46975e084e0c |
files | lisp/ChangeLog lisp/net/tramp.el |
diffstat | 2 files changed, 18 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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 <michael.albinus@gmx.de> + + * net/tramp.el (tramp-do-copy-or-rename-file): Add progress reporter. + 2010-04-10 Michael Albinus <michael.albinus@gmx.de> Synchronize with Tramp repository.
--- 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