]> git.eshelyaron.com Git - emacs.git/commitdiff
(ange-ftp-waiting-flag): New variable.
authorRichard M. Stallman <rms@gnu.org>
Sat, 18 Jan 1997 06:08:37 +0000 (06:08 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 18 Jan 1997 06:08:37 +0000 (06:08 +0000)
(ange-ftp-load): Bind that to t, and catch ftp-error.
(ange-ftp-cf2, ange-ftp-cf1): If ange-ftp-waiting-flag is t,
throw instead of signaling an error.

lisp/ange-ftp.el

index 137e63abd79433f1b53e77365eb0dc2f0ef0aa0e..215463bbf0bb74c9f90adb518d1a495668ca0eb5 100644 (file)
@@ -3375,9 +3375,12 @@ system TYPE.")
              (progn
                (and temp1 (ange-ftp-del-tmp-name temp1))
                (or cont
-                   (signal 'ftp-error (list "Opening input file"
-                                            (format "FTP Error: \"%s\"" line)
-                                            filename)))))
+                   (if ange-ftp-waiting-flag
+                       (throw 'ftp-error t)
+                     (signal 'ftp-error
+                             (list "Opening input file"
+                                   (format "FTP Error: \"%s\"" line)
+                                   filename))))))
        ;; cleanup
        (if binary
            (ange-ftp-set-ascii-mode f-host f-user))))
@@ -3438,10 +3441,12 @@ system TYPE.")
              (progn
                (or result
                    (or cont
-                       (signal 'ftp-error
-                               (list "Opening output file"
-                                     (format "FTP Error: \"%s\"" line)
-                                     newname))))
+                       (if ange-ftp-waiting-flag
+                           (throw 'ftp-error t)
+                         (signal 'ftp-error
+                                 (list "Opening output file"
+                                       (format "FTP Error: \"%s\"" line)
+                                       newname)))))
                
                (ange-ftp-add-file-entry newname))
            
@@ -3747,6 +3752,8 @@ system TYPE.")
                                       (format "Getting %s" fn1))
          tmp1))))
 
+(defvar ange-ftp-waiting-flag nil)
+
 (defun ange-ftp-load (file &optional noerror nomessage nosuffix)
   (if (ange-ftp-ftp-name file)
       (let ((tryfiles (if nosuffix
@@ -3754,9 +3761,11 @@ system TYPE.")
                        (list (concat file ".elc") (concat file ".el") file)))
            copy)
        (while (and tryfiles (not copy))
-         (condition-case error
-             (setq copy (ange-ftp-file-local-copy (car tryfiles)))
-           (ftp-error nil))
+         (catch 'ftp-error
+           (let ((ange-ftp-waiting-flag t))
+             (condition-case error
+                 (setq copy (ange-ftp-file-local-copy (car tryfiles)))
+               (ftp-error nil))))
          (setq tryfiles (cdr tryfiles)))
        (if copy
            (unwind-protect