Mercurial > emacs
annotate lisp/gnus/gnus-ems.el @ 111702:087bcfbfa5ef
color-lab: Require 'cl when compiling.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Wed, 24 Nov 2010 12:56:50 +0000 |
parents | b75e6634a171 |
children | 417b1e4d63cd |
rev | line source |
---|---|
17493 | 1 ;;; gnus-ems.el --- functions for making Gnus work under different Emacsen |
64754
fafd692d1e40
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64085
diff
changeset
|
2 |
fafd692d1e40
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64085
diff
changeset
|
3 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, |
106815 | 4 ;; 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
17493 | 5 |
24357
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
20118
diff
changeset
|
6 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> |
17493 | 7 ;; Keywords: news |
8 | |
9 ;; This file is part of GNU Emacs. | |
10 | |
94662
f42ef85caf91
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
11 ;; GNU Emacs is free software: you can redistribute it and/or modify |
17493 | 12 ;; it under the terms of the GNU General Public License as published by |
94662
f42ef85caf91
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
13 ;; the Free Software Foundation, either version 3 of the License, or |
f42ef85caf91
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
14 ;; (at your option) any later version. |
17493 | 15 |
16 ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 ;; GNU General Public License for more details. | |
20 | |
21 ;; You should have received a copy of the GNU General Public License | |
94662
f42ef85caf91
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
22 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
17493 | 23 |
24 ;;; Commentary: | |
25 | |
26 ;;; Code: | |
27 | |
33814 | 28 (eval-when-compile |
29 (require 'cl) | |
30 (require 'ring)) | |
17493 | 31 |
32 ;;; Function aliases later to be redefined for XEmacs usage. | |
33 | |
34 (defvar gnus-mouse-2 [mouse-2]) | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
35 (defvar gnus-down-mouse-3 [down-mouse-3]) |
17493 | 36 (defvar gnus-down-mouse-2 [down-mouse-2]) |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
37 (defvar gnus-widget-button-keymap nil) |
19969
5f1ab3dd344d
*** empty log message ***
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
38 (defvar gnus-mode-line-modified |
85712
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
39 (if (featurep 'xemacs) |
19969
5f1ab3dd344d
*** empty log message ***
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
40 '("--**-" . "-----") |
5f1ab3dd344d
*** empty log message ***
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
41 '("**" "--"))) |
17493 | 42 |
43 (eval-and-compile | |
44 (autoload 'gnus-xmas-define "gnus-xmas") | |
95818
b8775d45a9ea
(gnus-x-splash): Check tool-bar-mode is bound.
Glenn Morris <rgm@gnu.org>
parents:
94662
diff
changeset
|
45 (autoload 'gnus-xmas-redefine "gnus-xmas")) |
17493 | 46 |
95818
b8775d45a9ea
(gnus-x-splash): Check tool-bar-mode is bound.
Glenn Morris <rgm@gnu.org>
parents:
94662
diff
changeset
|
47 (autoload 'gnus-get-buffer-create "gnus") |
b8775d45a9ea
(gnus-x-splash): Check tool-bar-mode is bound.
Glenn Morris <rgm@gnu.org>
parents:
94662
diff
changeset
|
48 (autoload 'nnheader-find-etc-directory "nnheader") |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
49 (autoload 'smiley-region "smiley") |
32920
5b203c66fa7b
2000-10-08 08:57:13 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32139
diff
changeset
|
50 |
5b203c66fa7b
2000-10-08 08:57:13 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32139
diff
changeset
|
51 (defun gnus-kill-all-overlays () |
5b203c66fa7b
2000-10-08 08:57:13 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32139
diff
changeset
|
52 "Delete all overlays in the current buffer." |
5b203c66fa7b
2000-10-08 08:57:13 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32139
diff
changeset
|
53 (let* ((overlayss (overlay-lists)) |
5b203c66fa7b
2000-10-08 08:57:13 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32139
diff
changeset
|
54 (buffer-read-only nil) |
5b203c66fa7b
2000-10-08 08:57:13 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32139
diff
changeset
|
55 (overlays (delq nil (nconc (car overlayss) (cdr overlayss))))) |
5b203c66fa7b
2000-10-08 08:57:13 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32139
diff
changeset
|
56 (while overlays |
5b203c66fa7b
2000-10-08 08:57:13 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32139
diff
changeset
|
57 (delete-overlay (pop overlays))))) |
31780
d2b5643aab16
(gnus-smiley-display): Autoload from smiley-ems.
Dave Love <fx@gnu.org>
parents:
31767
diff
changeset
|
58 |
17493 | 59 ;;; Mule functions. |
60 | |
61 (defun gnus-mule-max-width-function (el max-width) | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
62 `(let* ((val (eval (, el))) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
63 (valstr (if (numberp val) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
64 (int-to-string val) val))) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
65 (if (> (length valstr) ,max-width) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
66 (truncate-string-to-width valstr ,max-width) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
67 valstr))) |
24357
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
20118
diff
changeset
|
68 |
17493 | 69 (eval-and-compile |
32920
5b203c66fa7b
2000-10-08 08:57:13 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32139
diff
changeset
|
70 (if (featurep 'xemacs) |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
71 (gnus-xmas-define) |
17493 | 72 (defvar gnus-mouse-face-prop 'mouse-face |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
73 "Property used for highlighting mouse regions."))) |
17493 | 74 |
86154 | 75 (defvar gnus-tmp-unread) |
76 (defvar gnus-tmp-replied) | |
77 (defvar gnus-tmp-score-char) | |
78 (defvar gnus-tmp-indentation) | |
79 (defvar gnus-tmp-opening-bracket) | |
80 (defvar gnus-tmp-lines) | |
81 (defvar gnus-tmp-name) | |
82 (defvar gnus-tmp-closing-bracket) | |
83 (defvar gnus-tmp-subject-or-nil) | |
84 (defvar gnus-check-before-posting) | |
85 (defvar gnus-mouse-face) | |
86 (defvar gnus-group-buffer) | |
17493 | 87 |
88 (defun gnus-ems-redefine () | |
89 (cond | |
32939
c8119677d63e
Use (featurep 'xemacs) instead of the `gnus-xemacs' variable, as the
Miles Bader <miles@gnu.org>
parents:
32920
diff
changeset
|
90 ((featurep 'xemacs) |
17493 | 91 (gnus-xmas-redefine)) |
92 | |
93 ((featurep 'mule) | |
94 ;; Mule and new Emacs definitions | |
95 | |
96 ;; [Note] Now there are three kinds of mule implementations, | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
97 ;; original MULE, XEmacs/mule and Emacs 20+ including |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
98 ;; MULE features. Unfortunately these APIs are different. In |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
99 ;; particular, Emacs (including original Mule) and XEmacs are |
44532
b94ae378e07c
(gnus-ems-redefine): Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents:
39483
diff
changeset
|
100 ;; quite different. However, this version of Gnus doesn't support |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
101 ;; anything other than XEmacs 20+ and Emacs 20.3+. |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
102 |
17493 | 103 ;; Predicates to check are following: |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
104 ;; (boundp 'MULE) is t only if Mule (original; anything older than |
17493 | 105 ;; Mule 2.3) is running. |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
106 ;; (featurep 'mule) is t when other mule variants are running. |
17493 | 107 |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
108 ;; It is possible to detect XEmacs/mule by (featurep 'mule) and |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
109 ;; (featurep 'xemacs). In this case, the implementation for |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
110 ;; XEmacs/mule may be shareable between XEmacs and XEmacs/mule. |
17493 | 111 |
112 (defvar gnus-summary-display-table nil | |
113 "Display table used in summary mode buffers.") | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
114 (defalias 'gnus-max-width-function 'gnus-mule-max-width-function) |
17493 | 115 |
116 (when (boundp 'gnus-check-before-posting) | |
117 (setq gnus-check-before-posting | |
118 (delq 'long-lines | |
119 (delq 'control-chars gnus-check-before-posting)))) | |
120 | |
121 (defun gnus-summary-line-format-spec () | |
122 (insert gnus-tmp-unread gnus-tmp-replied | |
123 gnus-tmp-score-char gnus-tmp-indentation) | |
124 (put-text-property | |
125 (point) | |
126 (progn | |
127 (insert | |
128 gnus-tmp-opening-bracket | |
129 (format "%4d: %-20s" | |
130 gnus-tmp-lines | |
131 (if (> (length gnus-tmp-name) 20) | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
132 (truncate-string-to-width gnus-tmp-name 20) |
17493 | 133 gnus-tmp-name)) |
134 gnus-tmp-closing-bracket) | |
135 (point)) | |
136 gnus-mouse-face-prop gnus-mouse-face) | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
137 (insert " " gnus-tmp-subject-or-nil "\n"))))) |
17493 | 138 |
85712
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
139 ;; Clone of `appt-select-lowest-window' in appt.el. |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
140 (defun gnus-select-lowest-window () |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
141 "Select the lowest window on the frame." |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
142 (let ((lowest-window (selected-window)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
143 (bottom-edge (nth 3 (window-edges)))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
144 (walk-windows (lambda (w) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
145 (let ((next-bottom-edge (nth 3 (window-edges w)))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
146 (when (< bottom-edge next-bottom-edge) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
147 (setq bottom-edge next-bottom-edge |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
148 lowest-window w))))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
149 (select-window lowest-window))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
150 |
17493 | 151 (defun gnus-region-active-p () |
152 "Say whether the region is active." | |
153 (and (boundp 'transient-mark-mode) | |
154 transient-mark-mode | |
155 (boundp 'mark-active) | |
156 mark-active)) | |
157 | |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
158 (defun gnus-mark-active-p () |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
159 "Non-nil means the mark and region are currently active in this buffer." |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
160 mark-active) ; aliased to region-exists-p in XEmacs. |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
161 |
87252 | 162 (autoload 'gnus-alive-p "gnus-util") |
93755
851c4b94b564
(mm-disable-multibyte): Autoload it.
Glenn Morris <rgm@gnu.org>
parents:
93725
diff
changeset
|
163 (autoload 'mm-disable-multibyte "mm-util") |
19969
5f1ab3dd344d
*** empty log message ***
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
164 |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
165 ;;; Image functions. |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
166 |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
167 (defun gnus-image-type-available-p (type) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
168 (and (fboundp 'image-type-available-p) |
74984 | 169 (image-type-available-p type) |
170 (if (fboundp 'display-images-p) | |
171 (display-images-p) | |
172 t))) | |
32139
6d8322cfbf71
Don't turn off compiler warnings in local vars.
Dave Love <fx@gnu.org>
parents:
31802
diff
changeset
|
173 |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
174 (defun gnus-create-image (file &optional type data-p &rest props) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
175 (let ((face (plist-get props :face))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
176 (when face |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
177 (setq props (plist-put props :foreground (face-foreground face))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
178 (setq props (plist-put props :background (face-background face)))) |
110596
415e87a42437
mail-source.el (mail-source-value): Revert previous patch.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110566
diff
changeset
|
179 (ignore-errors |
415e87a42437
mail-source.el (mail-source-value): Revert previous patch.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110566
diff
changeset
|
180 (apply 'create-image file type data-p props)))) |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
181 |
110054
fe1595694e7e
Fix previous merge from Gnus trunk.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110041
diff
changeset
|
182 (defun gnus-put-image (glyph &optional string category) |
fe1595694e7e
Fix previous merge from Gnus trunk.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110041
diff
changeset
|
183 (let ((point (point))) |
111430
b75e6634a171
gnus-int.el, nnimap.el, nnir.el: More improvements to thread-referral.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
111231
diff
changeset
|
184 (insert-image glyph (or string " ")) |
110054
fe1595694e7e
Fix previous merge from Gnus trunk.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110041
diff
changeset
|
185 (put-text-property point (point) 'gnus-image-category category) |
fe1595694e7e
Fix previous merge from Gnus trunk.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110041
diff
changeset
|
186 (unless string |
fe1595694e7e
Fix previous merge from Gnus trunk.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110041
diff
changeset
|
187 (put-text-property (1- (point)) (point) |
fe1595694e7e
Fix previous merge from Gnus trunk.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110041
diff
changeset
|
188 'gnus-image-text-deletable t)) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
189 glyph)) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
190 |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
191 (defun gnus-remove-image (image &optional category) |
85712
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
192 "Remove the image matching IMAGE and CATEGORY found first." |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
193 (let ((start (point-min)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
194 val end) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
195 (while (and (not end) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
196 (or (setq val (get-text-property start 'display)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
197 (and (setq start |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
198 (next-single-property-change start 'display)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
199 (setq val (get-text-property start 'display))))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
200 (setq end (or (next-single-property-change start 'display) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
201 (point-max))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
202 (if (and (equal val image) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
203 (equal (get-text-property start 'gnus-image-category) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
52401
diff
changeset
|
204 category)) |
85712
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
205 (progn |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
206 (put-text-property start end 'display nil) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
207 (when (get-text-property start 'gnus-image-text-deletable) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
208 (delete-region start end))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
209 (unless (= end (point-max)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
210 (setq start end |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78546
diff
changeset
|
211 end nil)))))) |
24357
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
20118
diff
changeset
|
212 |
110082
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
213 (eval-and-compile |
110747
0defef1647a5
Merge changes made in Gnus trunk.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110634
diff
changeset
|
214 ;; XEmacs does not have window-inside-pixel-edges |
0defef1647a5
Merge changes made in Gnus trunk.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110634
diff
changeset
|
215 (defalias 'gnus-window-inside-pixel-edges |
0defef1647a5
Merge changes made in Gnus trunk.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110634
diff
changeset
|
216 (if (fboundp 'window-inside-pixel-edges) |
0defef1647a5
Merge changes made in Gnus trunk.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110634
diff
changeset
|
217 'window-inside-pixel-edges |
0defef1647a5
Merge changes made in Gnus trunk.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110634
diff
changeset
|
218 'window-pixel-edges)) |
0defef1647a5
Merge changes made in Gnus trunk.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110634
diff
changeset
|
219 |
110082
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
220 (if (fboundp 'set-process-plist) |
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
221 (progn |
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
222 (defalias 'gnus-set-process-plist 'set-process-plist) |
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
223 (defalias 'gnus-process-plist 'process-plist) |
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
224 (defalias 'gnus-process-get 'process-get) |
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
225 (defalias 'gnus-process-put 'process-put)) |
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
226 (defun gnus-set-process-plist (process plist) |
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
227 "Replace the plist of PROCESS with PLIST. Returns PLIST." |
110157
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
228 (put 'gnus-process-plist-internal process plist)) |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
229 |
110082
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
230 (defun gnus-process-plist (process) |
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
231 "Return the plist of PROCESS." |
110157
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
232 ;; This form works but can't prevent the plist data from |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
233 ;; growing infinitely. |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
234 ;;(get 'gnus-process-plist-internal process) |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
235 (let* ((plist (symbol-plist 'gnus-process-plist-internal)) |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
236 (tem (memq process plist))) |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
237 (prog1 |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
238 (cadr tem) |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
239 ;; Remove it from the plist data. |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
240 (when tem |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
241 (if (eq plist tem) |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
242 (progn |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
243 (setcar plist (caddr plist)) |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
244 (setcdr plist (or (cdddr plist) '(nil)))) |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
245 (setcdr (nthcdr (- (length plist) (length tem) 1) plist) |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
246 (cddr tem))))))) |
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
247 |
110082
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
248 (defun gnus-process-get (process propname) |
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
249 "Return the value of PROCESS' PROPNAME property. |
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
250 This is the last value stored with `(gnus-process-put PROCESS PROPNAME VALUE)'." |
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
251 (plist-get (gnus-process-plist process) propname)) |
110157
969b41083104
gnus-ems.el: Make process-plist functions work.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110102
diff
changeset
|
252 |
110082
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
253 (defun gnus-process-put (process propname value) |
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
254 "Change PROCESS' PROPNAME property to VALUE. |
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
255 It can be retrieved with `(gnus-process-get PROCESS PROPNAME)'." |
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
256 (gnus-set-process-plist process |
110085
fc3e98cf87b7
gnus-process-put: Fix previous commit.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110082
diff
changeset
|
257 (plist-put (gnus-process-plist process) |
110082
0bc890984083
Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110073
diff
changeset
|
258 propname value))))) |
110073
38805092633e
gnus-ems.el: Provide compatibility functions for gnus-set-process-plist by Katsumi Yamaoka <yamaoka@jpl.org>; gnus-html.el: Use gnus-process-plist and friends for compatibility; gnus-cite.el: New function to guess whether a long line is natural text or not; message.el: Implement message-prune-recipient-rules; by Lars Magne Ingebrigtsen <larsi@gnus.org>.
Katsumi Yamaoka <yamaoka@jpl.org>
parents:
110068
diff
changeset
|
259 |
17493 | 260 (provide 'gnus-ems) |
261 | |
262 ;;; gnus-ems.el ends here |