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.
This commit is contained in:
Gnus developers 2012-09-06 22:13:45 +00:00 committed by Katsumi Yamaoka
parent 0216c1289b
commit 845ce106c0
5 changed files with 35 additions and 26 deletions

View file

@ -1,3 +1,27 @@
2012-09-06 Lars Ingebrigtsen <larsi@gnus.org>
* gnus-util.el: Fix compilation error on XEmacs 21.4.
2012-09-06 Juri Linkov <juri@jurta.org>
* 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 <larsi@gnus.org>
* 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 <yamaoka@jpl.org>
* gnus-score.el (gnus-score-decode-text-parts): Use #' for

View file

@ -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))

View file

@ -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)) ? )))

View file

@ -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))))))

View file

@ -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)