changeset 39839:c5c5558d34cc

(ange-ftp-copy-files-async): New function for asynchronous multiple file copying.
author Sam Steingold <sds@gnu.org>
date Fri, 12 Oct 2001 19:16:34 +0000
parents 1001a9ecd4fc
children 68ca5f31c24d
files lisp/ChangeLog lisp/net/ange-ftp.el
diffstat 2 files changed, 31 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Oct 12 18:54:53 2001 +0000
+++ b/lisp/ChangeLog	Fri Oct 12 19:16:34 2001 +0000
@@ -1,3 +1,8 @@
+2001-10-12  Sam Steingold  <sds@gnu.org>
+
+	* net/ange-ftp.el (ange-ftp-copy-files-async): New function for
+	asynchronous multiple file copying.
+
 2001-10-12  Gerd Moellmann  <gerd@gnu.org>
 
 	* emacs-lisp/bytecomp.el (byte-compile-check-lambda-list): New
--- a/lisp/net/ange-ftp.el	Fri Oct 12 18:54:53 2001 +0000
+++ b/lisp/net/ange-ftp.el	Fri Oct 12 19:16:34 2001 +0000
@@ -3712,6 +3712,32 @@
 			       nil
 			       nil
 			       (interactive-p)))
+
+(defun ange-ftp-copy-files-async (okay-p line verbose-p files)
+  "Copy some files in the background.
+Arguments: (OKAY-P LINE VERBOSE-P FILES)
+OKAY-P must be T, and LINE does not matter.  They are here to make this
+ function a valid CONT argument for `ange-ftp-raw-send-cmd'.
+If VERBOSE-P is non-nil, print progress report in the echo area.
+ When all the files have been copied already, a message is shown anyway.
+FILES is a list of files to copy in the form
+  (from-file to-file ok-if-already-exists keep-date)
+E.g.,
+  (ange-ftp-copy-files-async t nil t '((\"a\" \"b\" t t) (\"c\" \"d\" t t)))"
+  (unless okay-p (error "%s: %s" 'ange-ftp-copy-files-async line))
+  (if files
+      (let* ((ff (car files))
+             (from-file    (nth 0 ff))
+             (to-file      (nth 1 ff))
+             (ok-if-exists (nth 2 ff))
+             (keep-date    (nth 3 ff)))
+        (ange-ftp-copy-file-internal
+         from-file to-file ok-if-exists keep-date
+         (and verbose-p (format "%s --> %s" from-file to-file))
+         (list 'ange-ftp-copy-files-async verbose-p (cdr files))
+         t))
+      (message "%s: done" 'ange-ftp-copy-files-async)))
+
 
 ;;;; ------------------------------------------------------------
 ;;;; File renaming support.