diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2011-01-24 04:10:19 +0000 |
---|---|---|
committer | Katsumi Yamaoka <yamaoka@jpl.org> | 2011-01-24 04:10:19 +0000 |
commit | cb51ba085d2250e2487fbdc30edcb1f049d040d7 (patch) | |
tree | 4190b92176f75313f1b62ddfe1e3bcdc2747d2b6 /lisp | |
parent | b711096ad269e09e750449db68ded5e6729c17c1 (diff) | |
download | emacs-cb51ba085d2250e2487fbdc30edcb1f049d040d7.tar.gz |
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.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/gnus/ChangeLog | 28 | ||||
-rw-r--r-- | lisp/gnus/gnus-art.el | 9 | ||||
-rw-r--r-- | lisp/gnus/gnus-gravatar.el | 69 | ||||
-rw-r--r-- | lisp/gnus/gravatar.el | 12 | ||||
-rw-r--r-- | lisp/gnus/shr.el | 11 |
5 files changed, 88 insertions, 41 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 8bd8732ade4..9780b6f4c07 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,31 @@ +2011-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + * 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 <larsi@gnus.org> + + * 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 <julien@danjou.info> * mm-decode.el (mm-inline-media-tests): Change text/org to text/x-org. diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 430590d9abb..06817e941a0 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -6432,6 +6432,8 @@ not have a face in `gnus-article-boring-faces'." (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 @@ not have a face in `gnus-article-boring-faces'." (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 --git a/lisp/gnus/gnus-gravatar.el b/lisp/gnus/gnus-gravatar.el index 53d1310a094..ae17d5b5abd 100644 --- a/lisp/gnus/gnus-gravatar.el +++ b/lisp/gnus/gnus-gravatar.el @@ -80,37 +80,44 @@ If nil, default to `gravatar-size'." "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 --git a/lisp/gnus/gravatar.el b/lisp/gnus/gravatar.el index 158347fb004..cb857fca89b 100644 --- a/lisp/gnus/gravatar.el +++ b/lisp/gnus/gravatar.el @@ -108,9 +108,15 @@ If no image available, return 'error." 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 --git a/lisp/gnus/shr.el b/lisp/gnus/shr.el index 6e681d67365..75929b29e05 100644 --- a/lisp/gnus/shr.el +++ b/lisp/gnus/shr.el @@ -462,11 +462,12 @@ redirects somewhere else." (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) |