emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r102961: gnus-html.el (gnus-html-imag


From: Katsumi Yamaoka
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r102961: gnus-html.el (gnus-html-image-fetched): Don't kill the temporary buffer after being called. It's apparently being killed by url.el, and killing it made point move to end-of-buffer in a random buffer.
Date: Mon, 24 Jan 2011 04:10:19 +0000
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 102961
author: Lars Ingebrigtsen <address@hidden>
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Mon 2011-01-24 04:10:19 +0000
message:
  gnus-html.el (gnus-html-image-fetched): Don't kill the temporary buffer after 
being called.  It's apparently being killed by url.el, and killing it made 
point move to end-of-buffer in a random buffer.
  shr.el (shr-image-fetched): Ditto.
  shr.el (shr-image-fetched): Avoid having point move in the article buffer.
  gnus-html.el (gnus-html-image-fetched): Kill the buffer anyway, and fix the 
bug in url-http.el instead.
  shr.el (shr-image-fetched): Ditto.
  gravatar.el (gravatar-retrieve): Be silent when retrieving.
  gnus-gravatar.el (gnus-gravatar-insert): Don't move point around in the 
article buffer.
   (gnus-gravatar-insert): Use blank space from the current buffer to avoid 
breaking text properties.  This makes X-Sent updating work again.
  gnus-art.el (gnus-article-read-summary-keys): Don't call disabled commands.
modified:
  lisp/gnus/ChangeLog
  lisp/gnus/gnus-art.el
  lisp/gnus/gnus-gravatar.el
  lisp/gnus/gravatar.el
  lisp/gnus/shr.el
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog       2011-01-23 11:21:04 +0000
+++ b/lisp/gnus/ChangeLog       2011-01-24 04:10:19 +0000
@@ -1,3 +1,31 @@
+2011-01-24  Lars Ingebrigtsen  <address@hidden>
+
+       * gnus-art.el (gnus-article-read-summary-keys): Don't call disabled
+       commands.
+
+       * gnus-gravatar.el (gnus-gravatar-insert): Don't move point around
+       in the article buffer.
+       (gnus-gravatar-insert): Use blank space from the current buffer to
+       avoid breaking text properties.  This makes X-Sent updating work again.
+
+       * gravatar.el (gravatar-retrieve): Be silent when retrieving.
+
+2011-01-23  Lars Ingebrigtsen  <address@hidden>
+
+       * gnus-html.el (gnus-html-image-fetched): Kill the buffer anyway, and
+       fix the bug in url-http.el instead.
+
+       * shr.el (shr-image-fetched): Ditto.
+
+       * shr.el (shr-image-fetched): Avoid having point move in the article
+       buffer.
+
+       * gnus-html.el (gnus-html-image-fetched): Don't kill the temporary
+       buffer after being called.  It's apparently being killed by url.el, and
+       killing it made point move to end-of-buffer in a random buffer.
+
+       * shr.el (shr-image-fetched): Ditto.
+
 2011-01-23  Julien Danjou  <address@hidden>
 
        * mm-decode.el (mm-inline-media-tests): Change text/org to text/x-org.

=== modified file 'lisp/gnus/gnus-art.el'
--- a/lisp/gnus/gnus-art.el     2011-01-21 23:33:46 +0000
+++ b/lisp/gnus/gnus-art.el     2011-01-24 04:10:19 +0000
@@ -6432,6 +6432,8 @@
            (ding)
          (unless (member keys nosave-in-article)
            (set-buffer gnus-article-current-summary))
+         (when (get func 'disabled)
+           (error "Function %s disabled" func))
          (call-interactively func)
          (setq new-sum-point (point)))
        (when (member keys nosave-but-article)
@@ -6460,8 +6462,11 @@
                 (select-window win))))
        (setq in-buffer (current-buffer))
        ;; We disable the pick minor mode commands.
-       (if (and (setq func (let (gnus-pick-mode)
-                             (key-binding keys t)))
+       (setq func (let (gnus-pick-mode)
+                    (key-binding keys t)))
+       (when (get func 'disabled)
+         (error "Function %s disabled" func))
+       (if (and func
                 (functionp func)
                 (condition-case code
                     (progn

=== modified file 'lisp/gnus/gnus-gravatar.el'
--- a/lisp/gnus/gnus-gravatar.el        2011-01-15 00:35:35 +0000
+++ b/lisp/gnus/gnus-gravatar.el        2011-01-24 04:10:19 +0000
@@ -80,37 +80,44 @@
   "Insert GRAVATAR for ADDRESS in HEADER in current article buffer.
 Set image category to CATEGORY."
   (unless (eq gravatar 'error)
-    (gnus-with-article-headers
-      ;; The buffer can be gone at this time
-      (when (buffer-live-p (current-buffer))
-        (gnus-article-goto-header header)
-        (mail-header-narrow-to-field)
-        (let ((real-name (car address))
-              (mail-address (cadr address)))
-          (when (if real-name
-                   (re-search-forward
-                    (concat (gnus-replace-in-string
-                             (regexp-quote real-name) "[\t ]+" "[\t\n ]+")
-                            "\\|"
-                            (regexp-quote mail-address))
-                    nil t)
-                 (search-forward mail-address nil t))
-           (goto-char (1- (match-beginning 0)))
-            ;; If we're on the " quoting the name, go backward
-            (when (looking-at "[\"<]")
-              (goto-char (1- (point))))
-            ;; Do not do anything if there's already a gravatar. This can
-            ;; happens if the buffer has been regenerated in the mean time, for
-            ;; example we were fetching someaddress, and then we change to
-            ;; another mail with the same someaddress.
-            (unless (memq 'gnus-gravatar (text-properties-at (point)))
-              (let ((point (point)))
-                (unless (featurep 'xemacs)
-                  (setq gravatar (append gravatar gnus-gravatar-properties)))
-                (gnus-put-image gravatar nil category)
-                (put-text-property point (point) 'gnus-gravatar address)
-                (gnus-add-wash-type category)
-                (gnus-add-image category gravatar)))))))))
+    (with-current-buffer gnus-article-buffer
+      (let ((mark (point-marker))
+           (inhibit-read-only t)
+           (inhibit-point-motion-hooks t)
+           (case-fold-search t))
+       (save-restriction
+         (article-narrow-to-head)
+         ;; The buffer can be gone at this time
+         (when (buffer-live-p (current-buffer))
+           (gnus-article-goto-header header)
+           (mail-header-narrow-to-field)
+           (let ((real-name (car address))
+                 (mail-address (cadr address)))
+             (when (if real-name
+                       (re-search-forward
+                        (concat (gnus-replace-in-string
+                                 (regexp-quote real-name) "[\t ]+" "[\t\n ]+")
+                                "\\|"
+                                (regexp-quote mail-address))
+                        nil t)
+                     (search-forward mail-address nil t))
+               (goto-char (1- (match-beginning 0)))
+               ;; If we're on the " quoting the name, go backward
+               (when (looking-at "[\"<]")
+                 (goto-char (1- (point))))
+               ;; Do not do anything if there's already a gravatar. This can
+               ;; happens if the buffer has been regenerated in the mean time, 
for
+               ;; example we were fetching someaddress, and then we change to
+               ;; another mail with the same someaddress.
+               (unless (memq 'gnus-gravatar (text-properties-at (point)))
+                 (let ((point (point)))
+                   (unless (featurep 'xemacs)
+                     (setq gravatar (append gravatar 
gnus-gravatar-properties)))
+                   (gnus-put-image gravatar (buffer-substring (point) (1+ 
point)) category)
+                   (put-text-property point (point) 'gnus-gravatar address)
+                   (gnus-add-wash-type category)
+                   (gnus-add-image category gravatar)))))))
+       (goto-char (marker-position mark))))))
 
 ;;;###autoload
 (defun gnus-treat-from-gravatar (&optional force)

=== modified file 'lisp/gnus/gravatar.el'
--- a/lisp/gnus/gravatar.el     2011-01-15 00:35:35 +0000
+++ b/lisp/gnus/gravatar.el     2011-01-24 04:10:19 +0000
@@ -108,9 +108,15 @@
 You can provide a list of argument to pass to CB in CBARGS."
   (let ((url (gravatar-build-url mail-address)))
     (if (gravatar-cache-expired url)
-        (url-retrieve url
-                      'gravatar-retrieved
-                      (list cb (when cbargs cbargs)))
+       (let ((args (list url
+                         'gravatar-retrieved
+                         (list cb (when cbargs cbargs)))))
+         (when (> (length (if (featurep 'xemacs)
+                              (cdr (split-string (function-arglist 
'url-retrieve)))
+                            (help-function-arglist 'url-retrieve)))
+                  4)
+           (setq args (nconc args (list t))))
+         (apply #'url-retrieve args))
       (apply cb
                (with-temp-buffer
                  (mm-disable-multibyte)

=== modified file 'lisp/gnus/shr.el'
--- a/lisp/gnus/shr.el  2011-01-02 23:17:32 +0000
+++ b/lisp/gnus/shr.el  2011-01-24 04:10:19 +0000
@@ -462,11 +462,12 @@
              (search-forward "\r\n\r\n" nil t))
       (let ((data (buffer-substring (point) (point-max))))
         (with-current-buffer buffer
-          (let ((alt (buffer-substring start end))
-               (inhibit-read-only t))
-           (delete-region start end)
-           (goto-char start)
-           (shr-put-image data alt))))))
+         (save-excursion
+           (let ((alt (buffer-substring start end))
+                 (inhibit-read-only t))
+             (delete-region start end)
+             (goto-char start)
+             (shr-put-image data alt)))))))
   (kill-buffer (current-buffer)))
 
 (defun shr-put-image (data alt)


reply via email to

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