emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/url/url.el


From: Stefan Monnier
Subject: [Emacs-diffs] Changes to emacs/lisp/url/url.el
Date: Fri, 10 Jun 2005 17:14:27 -0400

Index: emacs/lisp/url/url.el
diff -c emacs/lisp/url/url.el:1.9 emacs/lisp/url/url.el:1.10
*** emacs/lisp/url/url.el:1.9   Mon Apr 18 13:19:43 2005
--- emacs/lisp/url/url.el       Fri Jun 10 21:14:27 2005
***************
*** 170,186 ****
                              (url-debug 'retrieval "Synchronous fetching done 
(%S)" (current-buffer))
                              (setq retrieval-done t
                                    asynch-buffer (current-buffer)))))
!     (let ((proc (and asynch-buffer (get-buffer-process asynch-buffer))))
!       (if (null proc)
!         ;; We do not need to do anything, it was a mailto or something
!         ;; similar that takes processing completely outside of the URL
!         ;; package.
!         nil
        (while (not retrieval-done)
          (url-debug 'retrieval
                     "Spinning in url-retrieve-synchronously: %S (%S)"
                     retrieval-done asynch-buffer)
!         (if (memq (process-status proc) '(closed exit signal failed))
              ;; FIXME: It's not clear whether url-retrieve's callback is
              ;; guaranteed to be called or not.  It seems that url-http
              ;; decides sometimes consciously not to call it, so it's not
--- 170,195 ----
                              (url-debug 'retrieval "Synchronous fetching done 
(%S)" (current-buffer))
                              (setq retrieval-done t
                                    asynch-buffer (current-buffer)))))
!     (if (null asynch-buffer)
!         ;; We do not need to do anything, it was a mailto or something
!         ;; similar that takes processing completely outside of the URL
!         ;; package.
!         nil
!       (let ((proc (get-buffer-process asynch-buffer)))
!       ;; If the access method was synchronous, `retrieval-done' should
!       ;; hopefully already be set to t.  If it is nil, and `proc' is also
!       ;; nil, it implies that the async process is not running in
!       ;; asynch-buffer.  This happens e.g. for FTP files.  In such a case
!       ;; url-file.el should probably set something like a `url-process'
!       ;; buffer-local variable so we can find the exact process that we
!       ;; should be waiting for.  In the mean time, we'll just wait for any
!       ;; process output.
        (while (not retrieval-done)
          (url-debug 'retrieval
                     "Spinning in url-retrieve-synchronously: %S (%S)"
                     retrieval-done asynch-buffer)
!         (if (and proc (memq (process-status proc)
!                               '(closed exit signal failed)))
              ;; FIXME: It's not clear whether url-retrieve's callback is
              ;; guaranteed to be called or not.  It seems that url-http
              ;; decides sometimes consciously not to call it, so it's not
***************
*** 193,199 ****
              ;; interrupt it before it got a chance to handle process input.
              ;; `sleep-for' was tried but it lead to other forms of
              ;; hanging.  --Stef
!             (unless (accept-process-output proc)
                ;; accept-process-output returned nil, maybe because the process
                ;; exited (and may have been replaced with another).
                (setq proc (get-buffer-process asynch-buffer))))))
--- 202,208 ----
              ;; interrupt it before it got a chance to handle process input.
              ;; `sleep-for' was tried but it lead to other forms of
              ;; hanging.  --Stef
!             (unless (or (accept-process-output proc) (null proc))
                ;; accept-process-output returned nil, maybe because the process
                ;; exited (and may have been replaced with another).
                (setq proc (get-buffer-process asynch-buffer))))))
***************
*** 201,209 ****
  
  (defun url-mm-callback (&rest ignored)
    (let ((handle (mm-dissect-buffer t)))
!     (save-excursion
!       (url-mark-buffer-as-dead (current-buffer))
!       (set-buffer (generate-new-buffer (url-recreate-url url-current-object)))
        (if (eq (mm-display-part handle) 'external)
          (progn
            (set-process-sentinel
--- 210,218 ----
  
  (defun url-mm-callback (&rest ignored)
    (let ((handle (mm-dissect-buffer t)))
!     (url-mark-buffer-as-dead (current-buffer))
!     (with-current-buffer
!         (generate-new-buffer (url-recreate-url url-current-object))
        (if (eq (mm-display-part handle) 'external)
          (progn
            (set-process-sentinel




reply via email to

[Prev in Thread] Current Thread [Next in Thread]