[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/lisp/url/url.el,
Stefan Monnier <=