# HG changeset patch # User Katsumi Yamaoka # Date 1295842219 0 # Node ID 98ad7c9e56a372f4c5adb0e8edd98d918e112488 # Parent 5e6007430c1eec3961d83bddac740879e27bd09d 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. diff -r 5e6007430c1e -r 98ad7c9e56a3 lisp/gnus/ChangeLog --- a/lisp/gnus/ChangeLog Sun Jan 23 18:20:34 2011 -0800 +++ b/lisp/gnus/ChangeLog Mon Jan 24 04:10:19 2011 +0000 @@ -1,3 +1,31 @@ +2011-01-24 Lars Ingebrigtsen + + * 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 + + * 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 * mm-decode.el (mm-inline-media-tests): Change text/org to text/x-org. diff -r 5e6007430c1e -r 98ad7c9e56a3 lisp/gnus/gnus-art.el --- a/lisp/gnus/gnus-art.el Sun Jan 23 18:20:34 2011 -0800 +++ b/lisp/gnus/gnus-art.el Mon Jan 24 04:10:19 2011 +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 diff -r 5e6007430c1e -r 98ad7c9e56a3 lisp/gnus/gnus-gravatar.el --- a/lisp/gnus/gnus-gravatar.el Sun Jan 23 18:20:34 2011 -0800 +++ b/lisp/gnus/gnus-gravatar.el Mon Jan 24 04:10:19 2011 +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) diff -r 5e6007430c1e -r 98ad7c9e56a3 lisp/gnus/gravatar.el --- a/lisp/gnus/gravatar.el Sun Jan 23 18:20:34 2011 -0800 +++ b/lisp/gnus/gravatar.el Mon Jan 24 04:10:19 2011 +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) diff -r 5e6007430c1e -r 98ad7c9e56a3 lisp/gnus/shr.el --- a/lisp/gnus/shr.el Sun Jan 23 18:20:34 2011 -0800 +++ b/lisp/gnus/shr.el Mon Jan 24 04:10:19 2011 +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)