diff options
| author | Gnus developers | 2012-12-25 22:12:59 +0000 |
|---|---|---|
| committer | Katsumi Yamaoka | 2012-12-25 22:12:59 +0000 |
| commit | cc21c2356dbbf361a288cdb061f2f708b5392b93 (patch) | |
| tree | 390ffda804c01eacd9bf770e323adf4b8d0e0f32 | |
| parent | f1665bdc87db38350a9fb0b497d2b14afbfa7140 (diff) | |
| download | emacs-cc21c2356dbbf361a288cdb061f2f708b5392b93.tar.gz emacs-cc21c2356dbbf361a288cdb061f2f708b5392b93.zip | |
Merge changes made in Gnus master
2012-12-25 Lars Ingebrigtsen <larsi@gnus.org>
* gnus-sum.el (gnus-set-global-variables): Don't copy over the summary
buffer to the article buffer here, because that clobbers multiple
article buffers.
* gnus-art.el (gnus-article-setup-buffer): Make sure that the article
buffer always points to the right summary buffer.
2012-12-25 John Wiegley <jwiegley@gmail.com>
* auth-source.el (auth-source-netrc-parse): Allow using "password" as
the password (bug#12097).
2012-12-25 Lars Ingebrigtsen <larsi@gnus.org>
* shr.el (shr-tag-a): Don't tagify <A> elements that don't have HREFs
(bug#13263).
* gnus-salt.el (gnus-highlight-selected-tree): Check whether the Tree
buffer exists before using it (bug#12475).
* gnus-agent.el (gnus-agent-fetch-articles): Don't fetch articles from
offline groups (bug#11937).
* message.el (message-yank-original): When using customize to set the
value of `message-cite-style', the variable it set to a symbol that's
the name of the variable, which must then be dereferenced (bug#12616).
2012-09-13 Wolfgang Jenkner <wjenkner@inode.at>
* lisp/gnus-spec.el (gnus-face-face-function): Initialize the value of
the `face' property with a list whose car is the face specified in the
format string and whose cdr is (nil).
* lisp/gnus-util.el
(gnus-put-text-property-excluding-characters-with-faces): Change
accordingly.
(gnus-get-text-property-excluding-characters-with-faces): New function.
* lisp/gnus-sum.el (gnus-summary-highlight-line):
* lisp/gnus-salt.el (gnus-tree-highlight-node):
* lisp/gnus-group.el (gnus-group-highlight-line): Use it.
| -rw-r--r-- | lisp/gnus/ChangeLog | 50 | ||||
| -rw-r--r-- | lisp/gnus/auth-source.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/gnus-agent.el | 3 | ||||
| -rw-r--r-- | lisp/gnus/gnus-art.el | 23 | ||||
| -rw-r--r-- | lisp/gnus/gnus-group.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/gnus-salt.el | 54 | ||||
| -rw-r--r-- | lisp/gnus/gnus-spec.el | 9 | ||||
| -rw-r--r-- | lisp/gnus/gnus-sum.el | 13 | ||||
| -rw-r--r-- | lisp/gnus/gnus-util.el | 33 | ||||
| -rw-r--r-- | lisp/gnus/message.el | 4 | ||||
| -rw-r--r-- | lisp/gnus/shr.el | 3 |
11 files changed, 128 insertions, 68 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index a1a64cc80cb..2916b40df29 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,5 +1,47 @@ | |||
| 1 | 2012-12-25 Lars Ingebrigtsen <larsi@gnus.org> | 1 | 2012-12-25 Lars Ingebrigtsen <larsi@gnus.org> |
| 2 | 2 | ||
| 3 | * gnus-sum.el (gnus-set-global-variables): Don't copy over the summary | ||
| 4 | buffer to the article buffer here, because that clobbers multiple | ||
| 5 | article buffers. | ||
| 6 | |||
| 7 | * gnus-art.el (gnus-article-setup-buffer): Make sure that the article | ||
| 8 | buffer always points to the right summary buffer. | ||
| 9 | |||
| 10 | 2012-12-25 John Wiegley <jwiegley@gmail.com> | ||
| 11 | |||
| 12 | * auth-source.el (auth-source-netrc-parse): Allow using "password" as | ||
| 13 | the password (bug#12097). | ||
| 14 | |||
| 15 | 2012-12-25 Lars Ingebrigtsen <larsi@gnus.org> | ||
| 16 | |||
| 17 | * shr.el (shr-tag-a): Don't tagify <A> elements that don't have HREFs | ||
| 18 | (bug#13263). | ||
| 19 | |||
| 20 | * gnus-salt.el (gnus-highlight-selected-tree): Check whether the Tree | ||
| 21 | buffer exists before using it (bug#12475). | ||
| 22 | |||
| 23 | * gnus-agent.el (gnus-agent-fetch-articles): Don't fetch articles from | ||
| 24 | offline groups (bug#11937). | ||
| 25 | |||
| 26 | * message.el (message-yank-original): When using customize to set the | ||
| 27 | value of `message-cite-style', the variable it set to a symbol that's | ||
| 28 | the name of the variable, which must then be dereferenced (bug#12616). | ||
| 29 | |||
| 30 | 2012-12-25 Wolfgang Jenkner <wjenkner@inode.at> | ||
| 31 | |||
| 32 | * lisp/gnus-spec.el (gnus-face-face-function): Initialize the value of | ||
| 33 | the `face' property with a list whose car is the face specified in the | ||
| 34 | format string and whose cdr is (nil). | ||
| 35 | * lisp/gnus-util.el | ||
| 36 | (gnus-put-text-property-excluding-characters-with-faces): Change | ||
| 37 | accordingly. | ||
| 38 | (gnus-get-text-property-excluding-characters-with-faces): New function. | ||
| 39 | * lisp/gnus-sum.el (gnus-summary-highlight-line): | ||
| 40 | * lisp/gnus-salt.el (gnus-tree-highlight-node): | ||
| 41 | * lisp/gnus-group.el (gnus-group-highlight-line): Use it. | ||
| 42 | |||
| 43 | 2012-12-25 Lars Ingebrigtsen <larsi@gnus.org> | ||
| 44 | |||
| 3 | * nnimap.el (nnimap-authenticator): Expand to allow specifying the | 45 | * nnimap.el (nnimap-authenticator): Expand to allow specifying the |
| 4 | login methods. | 46 | login methods. |
| 5 | (nnimap-login): Respect the `nnimap-authenticator' variable. | 47 | (nnimap-login): Respect the `nnimap-authenticator' variable. |
| @@ -8,7 +50,7 @@ | |||
| 8 | mark state when moving articles. Otherwise unticked articles will get | 50 | mark state when moving articles. Otherwise unticked articles will get |
| 9 | their ticks back after moving. | 51 | their ticks back after moving. |
| 10 | 52 | ||
| 11 | 2012-12-24 Lars Ingebrigtsen <larsi@gnus.org> | 53 | 2012-12-25 Lars Ingebrigtsen <larsi@gnus.org> |
| 12 | 54 | ||
| 13 | * gnus-srvr.el (gnus-browse-delete-group): Fix syntax error. | 55 | * gnus-srvr.el (gnus-browse-delete-group): Fix syntax error. |
| 14 | 56 | ||
| @@ -26,11 +68,11 @@ | |||
| 26 | to nil to allow re-selecting groups that gain articles. | 68 | to nil to allow re-selecting groups that gain articles. |
| 27 | (gnus-bug-group-download-format-alist): Update the URL. | 69 | (gnus-bug-group-download-format-alist): Update the URL. |
| 28 | 70 | ||
| 29 | 2012-12-23 Andreas Schwab <schwab@suse.de> | 71 | 2012-12-25 Andreas Schwab <schwab@suse.de> |
| 30 | 72 | ||
| 31 | * shr.el (shr-tag-em): Render em as italic, not bold. | 73 | * shr.el (shr-tag-em): Render em as italic, not bold. |
| 32 | 74 | ||
| 33 | 2012-12-23 Lars Ingebrigtsen <larsi@gnus.org> | 75 | 2012-12-25 Lars Ingebrigtsen <larsi@gnus.org> |
| 34 | 76 | ||
| 35 | * gnus-int.el (gnus-backend-trace): Factor out into its own function | 77 | * gnus-int.el (gnus-backend-trace): Factor out into its own function |
| 36 | for reuse. | 78 | for reuse. |
| @@ -38,7 +80,7 @@ | |||
| 38 | (gnus-finish-retrieve-group-infos): Add backend tracing. | 80 | (gnus-finish-retrieve-group-infos): Add backend tracing. |
| 39 | (gnus-backend-trace): Also note the elapsed seconds. | 81 | (gnus-backend-trace): Also note the elapsed seconds. |
| 40 | 82 | ||
| 41 | 2012-12-22 Philipp Haselwarter <philipp@haselwarter.org> | 83 | 2012-12-25 Philipp Haselwarter <philipp@haselwarter.org> |
| 42 | 84 | ||
| 43 | * gnus-sync.el (gnus-sync-file-encrypt-to, gnus-sync-save): Set | 85 | * gnus-sync.el (gnus-sync-file-encrypt-to, gnus-sync-save): Set |
| 44 | epa-file-encrypt-to from variable to avoid querying. | 86 | epa-file-encrypt-to from variable to avoid querying. |
diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el index 4c5e5ffadce..b5b0c773e90 100644 --- a/lisp/gnus/auth-source.el +++ b/lisp/gnus/auth-source.el | |||
| @@ -1008,7 +1008,7 @@ Note that the MAX parameter is used so we can exit the parse early." | |||
| 1008 | (while (and (zerop (forward-line 1)) | 1008 | (while (and (zerop (forward-line 1)) |
| 1009 | (looking-at "$"))) | 1009 | (looking-at "$"))) |
| 1010 | (narrow-to-region (point) (point))) | 1010 | (narrow-to-region (point) (point))) |
| 1011 | ((member elem tokens) | 1011 | ((and (member elem tokens) (null pair)) |
| 1012 | ;; Tokens that don't have a following value are ignored, | 1012 | ;; Tokens that don't have a following value are ignored, |
| 1013 | ;; except "default". | 1013 | ;; except "default". |
| 1014 | (when (and pair (or (cdr pair) | 1014 | (when (and pair (or (cdr pair) |
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el index 60d6102f7c0..297c6540347 100644 --- a/lisp/gnus/gnus-agent.el +++ b/lisp/gnus/gnus-agent.el | |||
| @@ -1489,7 +1489,8 @@ downloaded into the agent." | |||
| 1489 | 1489 | ||
| 1490 | (defun gnus-agent-fetch-articles (group articles) | 1490 | (defun gnus-agent-fetch-articles (group articles) |
| 1491 | "Fetch ARTICLES from GROUP and put them into the Agent." | 1491 | "Fetch ARTICLES from GROUP and put them into the Agent." |
| 1492 | (when articles | 1492 | (when (and articles |
| 1493 | (gnus-online (gnus-group-method group))) | ||
| 1493 | (gnus-agent-load-alist group) | 1494 | (gnus-agent-load-alist group) |
| 1494 | (let* ((alist gnus-agent-article-alist) | 1495 | (let* ((alist gnus-agent-article-alist) |
| 1495 | (headers (if (< (length articles) 2) nil gnus-newsgroup-headers)) | 1496 | (headers (if (< (length articles) 2) nil gnus-newsgroup-headers)) |
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 43c8ca78601..53e3d67161f 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el | |||
| @@ -4539,18 +4539,17 @@ commands: | |||
| 4539 | (gnus-article-mode)) | 4539 | (gnus-article-mode)) |
| 4540 | (setq truncate-lines gnus-article-truncate-lines) | 4540 | (setq truncate-lines gnus-article-truncate-lines) |
| 4541 | (current-buffer)) | 4541 | (current-buffer)) |
| 4542 | (with-current-buffer (gnus-get-buffer-create name) | 4542 | (let ((summary gnus-summary-buffer)) |
| 4543 | (gnus-article-mode) | 4543 | (with-current-buffer (gnus-get-buffer-create name) |
| 4544 | (setq truncate-lines gnus-article-truncate-lines) | 4544 | (gnus-article-mode) |
| 4545 | (make-local-variable 'gnus-summary-buffer) | 4545 | (setq truncate-lines gnus-article-truncate-lines) |
| 4546 | (setq gnus-summary-buffer | 4546 | (set (make-local-variable 'gnus-summary-buffer) summary) |
| 4547 | (gnus-summary-buffer-name gnus-newsgroup-name)) | 4547 | (gnus-summary-set-local-parameters gnus-newsgroup-name) |
| 4548 | (gnus-summary-set-local-parameters gnus-newsgroup-name) | 4548 | (when article-lapsed-timer |
| 4549 | (when article-lapsed-timer | 4549 | (gnus-stop-date-timer)) |
| 4550 | (gnus-stop-date-timer)) | 4550 | (when gnus-article-update-date-headers |
| 4551 | (when gnus-article-update-date-headers | 4551 | (gnus-start-date-timer gnus-article-update-date-headers)) |
| 4552 | (gnus-start-date-timer gnus-article-update-date-headers)) | 4552 | (current-buffer)))))) |
| 4553 | (current-buffer))))) | ||
| 4554 | 4553 | ||
| 4555 | (defun gnus-article-stop-animations () | 4554 | (defun gnus-article-stop-animations () |
| 4556 | (dolist (timer (and (boundp 'timer-list) | 4555 | (dolist (timer (and (boundp 'timer-list) |
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el index 2fc87f097f9..80183c263db 100644 --- a/lisp/gnus/gnus-group.el +++ b/lisp/gnus/gnus-group.el | |||
| @@ -1667,7 +1667,7 @@ and ends at END." | |||
| 1667 | (let ((face (cdar (gnus-group-update-eval-form | 1667 | (let ((face (cdar (gnus-group-update-eval-form |
| 1668 | group | 1668 | group |
| 1669 | gnus-group-highlight)))) | 1669 | gnus-group-highlight)))) |
| 1670 | (unless (eq face (get-text-property beg 'face)) | 1670 | (unless (eq face (gnus-get-text-property-excluding-characters-with-faces beg 'face)) |
| 1671 | (let ((inhibit-read-only t)) | 1671 | (let ((inhibit-read-only t)) |
| 1672 | (gnus-put-text-property-excluding-characters-with-faces | 1672 | (gnus-put-text-property-excluding-characters-with-faces |
| 1673 | beg end 'face | 1673 | beg end 'face |
diff --git a/lisp/gnus/gnus-salt.el b/lisp/gnus/gnus-salt.el index 760a7a0942e..cb4101b5806 100644 --- a/lisp/gnus/gnus-salt.el +++ b/lisp/gnus/gnus-salt.el | |||
| @@ -659,7 +659,7 @@ Two predefined functions are available: | |||
| 659 | (while (and list | 659 | (while (and list |
| 660 | (not (eval (caar list)))) | 660 | (not (eval (caar list)))) |
| 661 | (setq list (cdr list))))) | 661 | (setq list (cdr list))))) |
| 662 | (unless (eq (setq face (cdar list)) (get-text-property beg 'face)) | 662 | (unless (eq (setq face (cdar list)) (gnus-get-text-property-excluding-characters-with-faces beg 'face)) |
| 663 | (gnus-put-text-property-excluding-characters-with-faces | 663 | (gnus-put-text-property-excluding-characters-with-faces |
| 664 | beg end 'face | 664 | beg end 'face |
| 665 | (if (boundp face) (symbol-value face) face))))) | 665 | (if (boundp face) (symbol-value face) face))))) |
| @@ -828,31 +828,33 @@ Two predefined functions are available: | |||
| 828 | 828 | ||
| 829 | (defun gnus-highlight-selected-tree (article) | 829 | (defun gnus-highlight-selected-tree (article) |
| 830 | "Highlight the selected article in the tree." | 830 | "Highlight the selected article in the tree." |
| 831 | (let ((buf (current-buffer)) | 831 | (when (buffer-live-p gnus-tree-buffer) |
| 832 | region) | 832 | (let ((buf (current-buffer)) |
| 833 | (set-buffer gnus-tree-buffer) | 833 | region) |
| 834 | (when (setq region (gnus-tree-article-region article)) | 834 | (set-buffer gnus-tree-buffer) |
| 835 | (when (or (not gnus-selected-tree-overlay) | 835 | (when (setq region (gnus-tree-article-region article)) |
| 836 | (gnus-extent-detached-p gnus-selected-tree-overlay)) | 836 | (when (or (not gnus-selected-tree-overlay) |
| 837 | ;; Create a new overlay. | 837 | (gnus-extent-detached-p gnus-selected-tree-overlay)) |
| 838 | (gnus-overlay-put | 838 | ;; Create a new overlay. |
| 839 | (setq gnus-selected-tree-overlay | 839 | (gnus-overlay-put |
| 840 | (gnus-make-overlay (point-min) (1+ (point-min)))) | 840 | (setq gnus-selected-tree-overlay |
| 841 | 'face gnus-selected-tree-face)) | 841 | (gnus-make-overlay (point-min) (1+ (point-min)))) |
| 842 | ;; Move the overlay to the article. | 842 | 'face gnus-selected-tree-face)) |
| 843 | (gnus-move-overlay | 843 | ;; Move the overlay to the article. |
| 844 | gnus-selected-tree-overlay (goto-char (car region)) (cdr region)) | 844 | (gnus-move-overlay |
| 845 | (gnus-tree-minimize) | 845 | gnus-selected-tree-overlay (goto-char (car region)) (cdr region)) |
| 846 | (gnus-tree-recenter) | 846 | (gnus-tree-minimize) |
| 847 | (let ((selected (selected-window))) | 847 | (gnus-tree-recenter) |
| 848 | (when (gnus-get-buffer-window (set-buffer gnus-tree-buffer) t) | 848 | (let ((selected (selected-window))) |
| 849 | (select-window (gnus-get-buffer-window (set-buffer gnus-tree-buffer) t)) | 849 | (when (gnus-get-buffer-window (set-buffer gnus-tree-buffer) t) |
| 850 | (gnus-horizontal-recenter) | 850 | (select-window |
| 851 | (select-window selected)))) | 851 | (gnus-get-buffer-window (set-buffer gnus-tree-buffer) t)) |
| 852 | ;; If we remove this save-excursion, it updates the wrong mode lines?!? | 852 | (gnus-horizontal-recenter) |
| 853 | (with-current-buffer gnus-tree-buffer | 853 | (select-window selected)))) |
| 854 | (gnus-set-mode-line 'tree)) | 854 | ;; If we remove this save-excursion, it updates the wrong mode lines?!? |
| 855 | (set-buffer buf))) | 855 | (with-current-buffer gnus-tree-buffer |
| 856 | (gnus-set-mode-line 'tree)) | ||
| 857 | (set-buffer buf)))) | ||
| 856 | 858 | ||
| 857 | (defun gnus-tree-highlight-article (article face) | 859 | (defun gnus-tree-highlight-article (article face) |
| 858 | (with-current-buffer (gnus-get-tree-buffer) | 860 | (with-current-buffer (gnus-get-tree-buffer) |
diff --git a/lisp/gnus/gnus-spec.el b/lisp/gnus/gnus-spec.el index f40177d5c60..22d4627bf28 100644 --- a/lisp/gnus/gnus-spec.el +++ b/lisp/gnus/gnus-spec.el | |||
| @@ -265,7 +265,14 @@ Return a list of updated types." | |||
| 265 | (defun gnus-face-face-function (form type) | 265 | (defun gnus-face-face-function (form type) |
| 266 | `(gnus-add-text-properties | 266 | `(gnus-add-text-properties |
| 267 | (point) (progn ,@form (point)) | 267 | (point) (progn ,@form (point)) |
| 268 | '(gnus-face t face ,(symbol-value (intern (format "gnus-face-%d" type)))))) | 268 | (cons 'face |
| 269 | (cons | ||
| 270 | ;; Delay consing the value of the `face' property until | ||
| 271 | ;; `gnus-add-text-properties' runs, since it will be modified | ||
| 272 | ;; by `gnus-put-text-property-excluding-characters-with-faces'. | ||
| 273 | (list ',(symbol-value (intern (format "gnus-face-%d" type))) nil) | ||
| 274 | ;; Redundant now, but still convenient. | ||
| 275 | '(gnus-face t))))) | ||
| 269 | 276 | ||
| 270 | (defun gnus-balloon-face-function (form type) | 277 | (defun gnus-balloon-face-function (form type) |
| 271 | `(gnus-put-text-property | 278 | `(gnus-put-text-property |
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index 7c3bf9f02a8..429dd555258 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el | |||
| @@ -3493,8 +3493,8 @@ If the setup was successful, non-nil is returned." | |||
| 3493 | (set-buffer buffer) | 3493 | (set-buffer buffer) |
| 3494 | (setq gnus-summary-buffer (current-buffer)) | 3494 | (setq gnus-summary-buffer (current-buffer)) |
| 3495 | (not gnus-newsgroup-prepared)) | 3495 | (not gnus-newsgroup-prepared)) |
| 3496 | ;; Fix by Sudish Joseph <joseph@cis.ohio-state.edu> | 3496 | (set-buffer (gnus-get-buffer-create buffer)) |
| 3497 | (setq gnus-summary-buffer (set-buffer (gnus-get-buffer-create buffer))) | 3497 | (setq gnus-summary-buffer (current-buffer)) |
| 3498 | (gnus-summary-mode group) | 3498 | (gnus-summary-mode group) |
| 3499 | (when (gnus-group-quit-config group) | 3499 | (when (gnus-group-quit-config group) |
| 3500 | (set (make-local-variable 'gnus-single-article-buffer) nil)) | 3500 | (set (make-local-variable 'gnus-single-article-buffer) nil)) |
| @@ -3552,11 +3552,7 @@ buffer that was in action when the last article was fetched." | |||
| 3552 | (if (consp (car locals)) | 3552 | (if (consp (car locals)) |
| 3553 | (set (caar locals) (pop vlist)) | 3553 | (set (caar locals) (pop vlist)) |
| 3554 | (set (car locals) (pop vlist))) | 3554 | (set (car locals) (pop vlist))) |
| 3555 | (setq locals (cdr locals)))) | 3555 | (setq locals (cdr locals)))))))) |
| 3556 | ;; The article buffer also has local variables. | ||
| 3557 | (when (gnus-buffer-live-p gnus-article-buffer) | ||
| 3558 | (set-buffer gnus-article-buffer) | ||
| 3559 | (setq gnus-summary-buffer summary)))))) | ||
| 3560 | 3556 | ||
| 3561 | (defun gnus-summary-article-unread-p (article) | 3557 | (defun gnus-summary-article-unread-p (article) |
| 3562 | "Say whether ARTICLE is unread or not." | 3558 | "Say whether ARTICLE is unread or not." |
| @@ -7874,7 +7870,6 @@ If STOP is non-nil, just stop when reaching the end of the message. | |||
| 7874 | 7870 | ||
| 7875 | Also see the variable `gnus-article-skip-boring'." | 7871 | Also see the variable `gnus-article-skip-boring'." |
| 7876 | (interactive "P") | 7872 | (interactive "P") |
| 7877 | (setq gnus-summary-buffer (current-buffer)) | ||
| 7878 | (gnus-set-global-variables) | 7873 | (gnus-set-global-variables) |
| 7879 | (let ((article (gnus-summary-article-number)) | 7874 | (let ((article (gnus-summary-article-number)) |
| 7880 | (article-window (get-buffer-window gnus-article-buffer t)) | 7875 | (article-window (get-buffer-window gnus-article-buffer t)) |
| @@ -12524,7 +12519,7 @@ If REVERSE, save parts that do not match TYPE." | |||
| 12524 | (memq article gnus-newsgroup-undownloaded) | 12519 | (memq article gnus-newsgroup-undownloaded) |
| 12525 | (not (memq article gnus-newsgroup-cached))))) | 12520 | (not (memq article gnus-newsgroup-cached))))) |
| 12526 | (let ((face (funcall (gnus-summary-highlight-line-0)))) | 12521 | (let ((face (funcall (gnus-summary-highlight-line-0)))) |
| 12527 | (unless (eq face (get-text-property beg 'face)) | 12522 | (unless (eq face (gnus-get-text-property-excluding-characters-with-faces beg 'face)) |
| 12528 | (gnus-put-text-property-excluding-characters-with-faces | 12523 | (gnus-put-text-property-excluding-characters-with-faces |
| 12529 | beg (point-at-eol) 'face | 12524 | beg (point-at-eol) 'face |
| 12530 | (setq face (if (boundp face) (symbol-value face) face))) | 12525 | (setq face (if (boundp face) (symbol-value face) face))) |
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index 7b1e2b5c792..1c22bdfd2c1 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el | |||
| @@ -866,18 +866,29 @@ If there's no subdirectory, delete DIRECTORY as well." | |||
| 866 | (setq beg (point))) | 866 | (setq beg (point))) |
| 867 | (gnus-overlay-put (gnus-make-overlay beg (point)) prop val))))) | 867 | (gnus-overlay-put (gnus-make-overlay beg (point)) prop val))))) |
| 868 | 868 | ||
| 869 | (defun gnus-put-text-property-excluding-characters-with-faces (beg end | 869 | (defun gnus-put-text-property-excluding-characters-with-faces (beg end prop val) |
| 870 | prop val) | 870 | "The same as `put-text-property', except where `gnus-face' is set. |
| 871 | "The same as `put-text-property', but don't put props on characters with the `gnus-face' property." | 871 | If so, and PROP is `face', set the second element of its value to VAL. |
| 872 | (let ((b beg)) | 872 | Otherwise, do nothing." |
| 873 | (while (/= b end) | 873 | (while (< beg end) |
| 874 | (when (get-text-property b 'gnus-face) | 874 | ;; Property values are compared with `eq'. |
| 875 | (setq b (next-single-property-change b 'gnus-face nil end))) | 875 | (let ((stop (next-single-property-change beg 'face nil end))) |
| 876 | (when (/= b end) | 876 | (if (get-text-property beg 'gnus-face) |
| 877 | (when (eq prop 'face) | ||
| 878 | (setcar (cdr (get-text-property beg 'face)) val)) | ||
| 877 | (inline | 879 | (inline |
| 878 | (gnus-put-text-property | 880 | (gnus-put-text-property beg stop prop val))) |
| 879 | b (setq b (next-single-property-change b 'gnus-face nil end)) | 881 | (setq beg stop)))) |
| 880 | prop val)))))) | 882 | |
| 883 | (defun gnus-get-text-property-excluding-characters-with-faces (pos prop) | ||
| 884 | "The same as `get-text-property', except where `gnus-face' is set. | ||
| 885 | If so, and PROP is `face', return the second element of its value. | ||
| 886 | Otherwise, return the value." | ||
| 887 | (let ((val (get-text-property pos prop))) | ||
| 888 | (if (and (get-text-property pos 'gnus-face) | ||
| 889 | (eq prop 'face)) | ||
| 890 | (cadr val) | ||
| 891 | (get-text-property pos prop)))) | ||
| 881 | 892 | ||
| 882 | (defmacro gnus-faces-at (position) | 893 | (defmacro gnus-faces-at (position) |
| 883 | "Return a list of faces at POSITION." | 894 | "Return a list of faces at POSITION." |
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 24159d4c2a3..2995daa2702 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el | |||
| @@ -3814,7 +3814,9 @@ prefix, and don't delete any headers." | |||
| 3814 | (interactive "P") | 3814 | (interactive "P") |
| 3815 | ;; eval the let forms contained in message-cite-style | 3815 | ;; eval the let forms contained in message-cite-style |
| 3816 | (eval | 3816 | (eval |
| 3817 | `(let ,message-cite-style | 3817 | `(let ,(if (symbolp message-cite-style) |
| 3818 | (symbol-value message-cite-style) | ||
| 3819 | message-cite-style) | ||
| 3818 | (message--yank-original-internal ',arg)))) | 3820 | (message--yank-original-internal ',arg)))) |
| 3819 | 3821 | ||
| 3820 | (defun message-yank-buffer (buffer) | 3822 | (defun message-yank-buffer (buffer) |
diff --git a/lisp/gnus/shr.el b/lisp/gnus/shr.el index 322c1d5d081..2ccbbc1001e 100644 --- a/lisp/gnus/shr.el +++ b/lisp/gnus/shr.el | |||
| @@ -931,7 +931,8 @@ ones, in case fg and bg are nil." | |||
| 931 | (start (point)) | 931 | (start (point)) |
| 932 | shr-start) | 932 | shr-start) |
| 933 | (shr-generic cont) | 933 | (shr-generic cont) |
| 934 | (shr-urlify (or shr-start start) (shr-expand-url url) title))) | 934 | (when url |
| 935 | (shr-urlify (or shr-start start) (shr-expand-url url) title)))) | ||
| 935 | 936 | ||
| 936 | (defun shr-tag-object (cont) | 937 | (defun shr-tag-object (cont) |
| 937 | (let ((start (point)) | 938 | (let ((start (point)) |