changeset 16876:34fa99fb91d1

(ange-ftp-waiting-flag): New variable. (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.
author Richard M. Stallman <rms@gnu.org>
date Sat, 18 Jan 1997 06:08:37 +0000
parents d9956cf6699b
children f9d43993ed5a
files lisp/ange-ftp.el
diffstat 1 files changed, 19 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ange-ftp.el	Fri Jan 17 07:07:20 1997 +0000
+++ b/lisp/ange-ftp.el	Sat Jan 18 06:08:37 1997 +0000
@@ -3375,9 +3375,12 @@
 	      (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 @@
 	      (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 @@
 				       (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 @@
 			(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