summaryrefslogtreecommitdiffstatsabout
authorChong Yidong <cyd@gnu.org>2012-09-07 04:26:17 (GMT)
committer Katsumi Yamaoka <yamaoka@jpl.org>2012-09-07 04:26:17 (GMT)
commit2df323a009ddd334ef992f32b7a8441daa6b6256 (patch) (side-by-side diff)
tree6fec636e798a85091642656287cae19f49f8f630
parentf4b7a91b0d9643734042ca05e02a79aafee8fbf9 (diff)
downloadgnus-2df323a009ddd334ef992f32b7a8441daa6b6256.zip
Partially revert last Gnus merge
The add-face function has been added gnus-compat.el, but is not in Emacs; this leaves Gnus in an unusable state. * lisp/gnus/gnus-salt.el (gnus-tree-highlight-node): * lisp/gnus/gnus-sum.el (gnus-summary-highlight-line): * lisp/gnus/gnus-group.el (gnus-group-highlight-line): Revert use of add-face. * lisp/gnus/gnus-util.el (gnus-put-text-property-excluding-characters-with-faces): Restore.
-rw-r--r--lisp/ChangeLog9
-rw-r--r--lisp/gnus-group.el4
-rw-r--r--lisp/gnus-salt.el4
-rw-r--r--lisp/gnus-sum.el5
-rw-r--r--lisp/gnus-util.el13
5 files changed, 31 insertions, 4 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 880b7d8..1f9de72 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,12 @@
+2012-09-07 Chong Yidong <cyd@gnu.org>
+
+ * gnus-util.el
+ (gnus-put-text-property-excluding-characters-with-faces): Restore.
+
+ * gnus-salt.el (gnus-tree-highlight-node):
+ * gnus-sum.el (gnus-summary-highlight-line):
+ * gnus-group.el (gnus-group-highlight-line): Revert use of add-face.
+
2012-09-06 Lars Ingebrigtsen <larsi@gnus.org>
* gnus-util.el: Fix compilation error on XEmacs 21.4.
diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el
index 0dc4b81..a19ba4d 100644
--- a/lisp/gnus-group.el
+++ b/lisp/gnus-group.el
@@ -1669,7 +1669,9 @@ and ends at END."
gnus-group-highlight))))
(unless (eq face (get-text-property beg 'face))
(let ((inhibit-read-only t))
- (add-face beg end (if (boundp face) (symbol-value face) face)))
+ (gnus-put-text-property-excluding-characters-with-faces
+ beg end 'face
+ (if (boundp face) (symbol-value face) face)))
(gnus-extent-start-open beg))))
(defun gnus-group-get-icon (group)
diff --git a/lisp/gnus-salt.el b/lisp/gnus-salt.el
index 87a1202..760a7a0 100644
--- a/lisp/gnus-salt.el
+++ b/lisp/gnus-salt.el
@@ -660,7 +660,9 @@ Two predefined functions are available:
(not (eval (caar list))))
(setq list (cdr list)))))
(unless (eq (setq face (cdar list)) (get-text-property beg 'face))
- (add-face beg end (if (boundp face) (symbol-value face) face)))))
+ (gnus-put-text-property-excluding-characters-with-faces
+ beg end 'face
+ (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-sum.el b/lisp/gnus-sum.el
index e8e9478..efbcb4d 100644
--- a/lisp/gnus-sum.el
+++ b/lisp/gnus-sum.el
@@ -12533,8 +12533,9 @@ 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))
- (add-face beg (point-at-eol)
- (setq face (if (boundp face) (symbol-value face) face)))
+ (gnus-put-text-property-excluding-characters-with-faces
+ beg (point-at-eol) 'face
+ (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-util.el b/lisp/gnus-util.el
index 0c048e6..4c5eaba 100644
--- a/lisp/gnus-util.el
+++ b/lisp/gnus-util.el
@@ -866,6 +866,19 @@ 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)