# HG changeset patch # User Richard M. Stallman # Date 738202325 0 # Node ID 0fdd43a27e157686c8ce1342230a23c1570bdce7 # Parent 33c820044087caf76bbed1ac8b3fff5f3a0d4621 (ange-ftp-raw-send-cmd): Allow quitting during accept-process-output. diff -r 33c820044087 -r 0fdd43a27e15 lisp/ange-ftp.el --- a/lisp/ange-ftp.el Mon May 24 00:04:18 1993 +0000 +++ b/lisp/ange-ftp.el Mon May 24 00:12:05 1993 +0000 @@ -859,7 +859,7 @@ ;;;; Internal variables. ;;;; ------------------------------------------------------------ -(defconst ange-ftp-version "$Revision: 1.16 $") +(defconst ange-ftp-version "$Revision: 1.17 $") (defvar ange-ftp-data-buffer-name " *ftp data*" "Buffer name to hold directory listing data received from ftp process.") @@ -1682,7 +1682,15 @@ (save-excursion (set-buffer (process-buffer proc)) (while ange-ftp-process-busy - (accept-process-output)) + ;; This is a kludge to let user quit in case ftp gets hung. + ;; It matters because this function can be called from the filter. + ;; It is bad to allow quitting in a filter, but getting hung + ;; is worse. By binding quit-flag to nil, we might avoid + ;; most of the probability of getting screwed because the user + ;; wants to quit some command. + (let ((quit-flag nil) + (inhibit-quit nil)) + (accept-process-output))) (setq ange-ftp-process-string "" ange-ftp-process-result-line "" ange-ftp-process-busy t @@ -1708,7 +1716,11 @@ nil ;; hang around for command to complete (while ange-ftp-process-busy - (accept-process-output proc)) + ;; This is a kludge to let user quit in case ftp gets hung. + ;; It matters because this function can be called from the filter. + (let ((quit-flag nil) + (inhibit-quit nil)) + (accept-process-output proc))) (if cont nil ;cont has already been called (cons ange-ftp-process-result ange-ftp-process-result-line))))))