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: Thu, 13 Jan 2005 10:02:32 -0500

Index: emacs/lisp/url/url.el
diff -c emacs/lisp/url/url.el:1.7 emacs/lisp/url/url.el:1.8
*** emacs/lisp/url/url.el:1.7   Sat Nov 20 03:57:59 2004
--- emacs/lisp/url/url.el       Thu Jan 13 14:35:11 2005
***************
*** 1,6 ****
  ;;; url.el --- Uniform Resource Locator retrieval tool
  
! ;; Copyright (c) 1996,1997,1998,1999,2001,2004  Free Software Foundation, Inc.
  
  ;; Author: Bill Perry <address@hidden>
  ;; Keywords: comm, data, processes, hypermedia
--- 1,7 ----
  ;;; url.el --- Uniform Resource Locator retrieval tool
  
! ;; Copyright (c) 1996, 1997, 1998, 1999, 2001, 2004, 2005
! ;;           Free Software Foundation, Inc.
  
  ;; Author: Bill Perry <address@hidden>
  ;; Keywords: comm, data, processes, hypermedia
***************
*** 169,194 ****
                              (url-debug 'retrieval "Synchronous fetching done 
(%S)" (current-buffer))
                              (setq retrieval-done t
                                    asynch-buffer (current-buffer)))))
!     (if (not 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
!       (while (not retrieval-done)
!       (url-debug 'retrieval "Spinning in url-retrieve-synchronously: %S (%S)"
!                  retrieval-done asynch-buffer)
!       ;; Quoth Stef:
!       ;; It turns out that the problem seems to be that the (sit-for
!       ;; 0.1) below doesn't actually process the data: instead it
!       ;; returns immediately because there is keyboard input
!       ;; waiting, so we end up spinning endlessly waiting for the
!       ;; process to finish while not letting it finish.
! 
!       ;; However, raman claims that it blocks Emacs with Emacspeak
!       ;; for unexplained reasons.  Put back for his benefit until
!       ;; someone can understand it.
!       ;; (sleep-for 0.1)
!       (sit-for 0.1))
        asynch-buffer)))
  
  (defun url-mm-callback (&rest ignored)
--- 170,194 ----
                              (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)
!         ;; We used to use `sit-for' here, but in some cases it wouldn't
!         ;; work because apparently pending keyboard input would always
!         ;; 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)))))
        asynch-buffer)))
  
  (defun url-mm-callback (&rest ignored)




reply via email to

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