From 845ce106c0ab157e25416964330875ad6c24b699 Mon Sep 17 00:00:00 2001 From: Gnus developers Date: Thu, 6 Sep 2012 22:13:45 +0000 Subject: [PATCH] Misc changes made in Gnus master Use combining faces for highlighting. Change ephemeral Gnus group names to be prettier. gnus-util.el: Fix compilation error on XEmacs 21.4. --- lisp/gnus/ChangeLog | 24 ++++++++++++++++++++++++ lisp/gnus/gnus-group.el | 8 +++----- lisp/gnus/gnus-salt.el | 4 +--- lisp/gnus/gnus-sum.el | 5 ++--- lisp/gnus/gnus-util.el | 20 +++++--------------- 5 files changed, 35 insertions(+), 26 deletions(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index ddb0143b37..48d57da8f8 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,27 @@ +2012-09-06 Lars Ingebrigtsen + + * gnus-util.el: Fix compilation error on XEmacs 21.4. + +2012-09-06 Juri Linkov + + * gnus-group.el (gnus-read-ephemeral-gmane-group): Change the naming + scheme for buffer names to be more consistent with other group and + article buffer names in Gnus. + +2012-09-06 Lars Ingebrigtsen + + * gnus-util.el + (gnus-put-text-property-excluding-characters-with-faces): Remove. + + * gnus-compat.el: Define compat function `add-face' from Wolfgang + Jenkner. + + * gnus-group.el (gnus-group-highlight-line): Use combining faces. + + * gnus-sum.el (gnus-summary-highlight-line): Ditto. + + * gnus-salt.el (gnus-tree-highlight-node): Ditto. + 2012-09-06 Katsumi Yamaoka * gnus-score.el (gnus-score-decode-text-parts): Use #' for diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el index 71af5792d2..24406fcc04 100644 --- a/lisp/gnus/gnus-group.el +++ b/lisp/gnus/gnus-group.el @@ -1669,9 +1669,7 @@ and ends at END." gnus-group-highlight)))) (unless (eq face (get-text-property beg 'face)) (let ((inhibit-read-only t)) - (gnus-put-text-property-excluding-characters-with-faces - beg end 'face - (if (boundp face) (symbol-value face) face))) + (add-face beg end (if (boundp face) (symbol-value face) face))) (gnus-extent-start-open beg)))) (defun gnus-group-get-icon (group) @@ -2388,7 +2386,7 @@ specified by `gnus-gmane-group-download-format'." group start (+ start range))) (write-region (point-min) (point-max) tmpfile) (gnus-group-read-ephemeral-group - (format "%s.start-%s.range-%s" group start range) + (format "nndoc+ephemeral:%s.start-%s.range-%s" group start range) `(nndoc ,tmpfile (nndoc-article-type mbox)))) (delete-file tmpfile))) @@ -2481,7 +2479,7 @@ the bug number, and browsing the URL must return mbox output." "/.*$" "")))) (write-region (point-min) (point-max) tmpfile) (gnus-group-read-ephemeral-group - (format "gnus-read-ephemeral-bug:%s" + (format "nndoc+ephemeral:bug#%s" (mapconcat 'number-to-string ids ",")) `(nndoc ,tmpfile (nndoc-article-type mbox)) diff --git a/lisp/gnus/gnus-salt.el b/lisp/gnus/gnus-salt.el index 760a7a0942..87a120279b 100644 --- a/lisp/gnus/gnus-salt.el +++ b/lisp/gnus/gnus-salt.el @@ -660,9 +660,7 @@ Two predefined functions are available: (not (eval (caar list)))) (setq list (cdr list))))) (unless (eq (setq face (cdar list)) (get-text-property beg 'face)) - (gnus-put-text-property-excluding-characters-with-faces - beg end 'face - (if (boundp face) (symbol-value face) face))))) + (add-face beg end (if (boundp face) (symbol-value face) face))))) (defun gnus-tree-indent (level) (insert (make-string (1- (* (1+ gnus-tree-node-length) level)) ? ))) diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index b44b953bec..bc0addd155 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -12522,9 +12522,8 @@ If REVERSE, save parts that do not match TYPE." (not (memq article gnus-newsgroup-cached))))) (let ((face (funcall (gnus-summary-highlight-line-0)))) (unless (eq face (get-text-property beg 'face)) - (gnus-put-text-property-excluding-characters-with-faces - beg (point-at-eol) 'face - (setq face (if (boundp face) (symbol-value face) face))) + (add-face beg (point-at-eol) + (setq face (if (boundp face) (symbol-value face) face))) (when gnus-summary-highlight-line-function (funcall gnus-summary-highlight-line-function article face)))))) diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index 3c4af9b4e5..0c048e63bd 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el @@ -866,19 +866,6 @@ If there's no subdirectory, delete DIRECTORY as well." (setq beg (point))) (gnus-overlay-put (gnus-make-overlay beg (point)) prop val))))) -(defun gnus-put-text-property-excluding-characters-with-faces (beg end - prop val) - "The same as `put-text-property', but don't put props on characters with the `gnus-face' property." - (let ((b beg)) - (while (/= b end) - (when (get-text-property b 'gnus-face) - (setq b (next-single-property-change b 'gnus-face nil end))) - (when (/= b end) - (inline - (gnus-put-text-property - b (setq b (next-single-property-change b 'gnus-face nil end)) - prop val)))))) - (defmacro gnus-faces-at (position) "Return a list of faces at POSITION." (if (featurep 'xemacs) @@ -1932,8 +1919,11 @@ Same as `string-match' except this function does not change the match data." "Return non-nil if STR1 is a prefix of STR2. If IGNORE-CASE is non-nil, the comparison is done without paying attention to case differences." - (eq t (compare-strings str1 nil nil - str2 0 (length str1) ignore-case)))) + (and (<= (length str1) (length str2)) + (let ((prefix (substring str2 0 (length str1)))) + (if ignore-case + (string-equal (downcase str1) (downcase prefix)) + (string-equal str1 prefix)))))) (eval-and-compile (if (fboundp 'macroexpand-all) -- 2.20.1