Mercurial > emacs
comparison lisp/gnus/deuglify.el @ 56927:55fd4f77387a after-merge-gnus-5_10
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Merge from emacs--gnus--5.10, gnus--rel--5.10
Patches applied:
* miles@gnu.org--gnu-2004/emacs--gnus--5.10--base-0
tag of miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-464
* miles@gnu.org--gnu-2004/emacs--gnus--5.10--patch-1
Import from CVS branch gnus-5_10-branch
* miles@gnu.org--gnu-2004/emacs--gnus--5.10--patch-2
Merge from lorentey@elte.hu--2004/emacs--multi-tty--0, emacs--cvs-trunk--0
* miles@gnu.org--gnu-2004/emacs--gnus--5.10--patch-3
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2004/emacs--gnus--5.10--patch-4
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-18
Update from CVS
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-19
Remove autoconf-generated files from archive
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-20
Update from CVS
author | Miles Bader <miles@gnu.org> |
---|---|
date | Sat, 04 Sep 2004 13:13:48 +0000 |
parents | |
children | 497f0d2ca551 |
comparison
equal
deleted
inserted
replaced
56926:f8e248e9a717 | 56927:55fd4f77387a |
---|---|
1 ;;; deuglify.el --- deuglify broken Outlook (Express) articles | |
2 | |
3 ;; Copyright (C) 2002, 2003 Free Software Foundation, Inc. | |
4 ;; Copyright (C) 2001, 2002 Raymond Scholz | |
5 | |
6 ;; Author: Raymond Scholz <rscholz@zonix.de> | |
7 ;; Thomas Steffen (unwrapping algorithm, | |
8 ;; based on an idea of Stefan Monnier) | |
9 ;; Keywords: mail, news | |
10 | |
11 ;; This file is part of GNU Emacs. | |
12 | |
13 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
14 ;; it under the terms of the GNU General Public License as published by | |
15 ;; the Free Software Foundation; either version 2, or (at your option) | |
16 ;; any later version. | |
17 | |
18 ;; GNU Emacs is distributed in the hope that it will be useful, | |
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
21 ;; GNU General Public License for more details. | |
22 | |
23 ;; You should have received a copy of the GNU General Public License | |
24 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
25 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
26 ;; Boston, MA 02111-1307, USA. | |
27 | |
28 ;;; Commentary: | |
29 | |
30 ;; This file enables Gnus to repair broken citations produced by | |
31 ;; common user agents like MS Outlook (Express). It may repair | |
32 ;; articles of other user agents too. | |
33 ;; | |
34 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
35 | |
36 ;; | |
37 ;; Outlook sometimes wraps cited lines before sending a message as | |
38 ;; seen in this example: | |
39 ;; | |
40 ;; Example #1 | |
41 ;; ---------- | |
42 ;; | |
43 ;; John Doe wrote: | |
44 ;; | |
45 ;; > This sentence no verb. This sentence no verb. This sentence | |
46 ;; no | |
47 ;; > verb. This sentence no verb. This sentence no verb. This | |
48 ;; > sentence no verb. | |
49 ;; | |
50 ;; The function `gnus-article-outlook-unwrap-lines' tries to recognize those | |
51 ;; erroneously wrapped lines and will unwrap them. I.e. putting the | |
52 ;; wrapped parts ("no" in this example) back where they belong (at the | |
53 ;; end of the cited line above). | |
54 ;; | |
55 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
56 ;; | |
57 ;; Note that some people not only use broken user agents but also | |
58 ;; practice a bad citation style by omitting blank lines between the | |
59 ;; cited text and their own text. | |
60 ;: | |
61 ;; Example #2 | |
62 ;; ---------- | |
63 ;; | |
64 ;; John Doe wrote: | |
65 ;; | |
66 ;; > This sentence no verb. This sentence no verb. This sentence no | |
67 ;; You forgot in all your sentences. | |
68 ;; > verb. This sentence no verb. This sentence no verb. This | |
69 ;; > sentence no verb. | |
70 ;; | |
71 ;; Unwrapping "You forgot in all your sentences." would be illegal as | |
72 ;; this part wasn't intended to be cited text. | |
73 ;; `gnus-article-outlook-unwrap-lines' will only unwrap lines if the resulting | |
74 ;; citation line will be of a certain maximum length. You can control | |
75 ;; this by adjusting `gnus-outlook-deuglify-unwrap-max'. Also | |
76 ;; unwrapping will only be done if the line above the (possibly) | |
77 ;; wrapped line has a minimum length of `gnus-outlook-deuglify-unwrap-min'. | |
78 ;; | |
79 ;; Furthermore no unwrapping will be undertaken if the last character | |
80 ;; is one of the chars specified in | |
81 ;; `gnus-outlook-deuglify-unwrap-stop-chars'. Setting this to ".?!" | |
82 ;; inhibits unwrapping if the cited line ends with a full stop, | |
83 ;; question mark or exclamation mark. Note that this variable | |
84 ;; defaults to `nil', triggering a few false positives but generally | |
85 ;; giving you better results. | |
86 ;; | |
87 ;; Unwrapping works on every level of citation. Thus you will be able | |
88 ;; repair broken citations of broken user agents citing broken | |
89 ;; citations of broken user agents citing broken citations... | |
90 ;; | |
91 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
92 ;; | |
93 ;; Citations are commonly introduced with an attribution line | |
94 ;; indicating who wrote the cited text. Outlook adds superfluous | |
95 ;; information that can be found in the header of the message to this | |
96 ;; line and often wraps it. | |
97 ;; | |
98 ;; If that weren't enough, lots of people write their own text above | |
99 ;; the cited text and cite the complete original article below. | |
100 ;; | |
101 ;; Example #3 | |
102 ;; ---------- | |
103 ;; | |
104 ;; Hey, John. There's no in all your sentences! | |
105 ;; | |
106 ;; John Doe <john.doe@some.domain> wrote in message | |
107 ;; news:a87usw8$dklsssa$2@some.news.server... | |
108 ;; > This sentence no verb. This sentence no verb. This sentence | |
109 ;; no | |
110 ;; > verb. This sentence no verb. This sentence no verb. This | |
111 ;; > sentence no verb. | |
112 ;; > | |
113 ;; > Bye, John | |
114 ;; | |
115 ;; Repairing the attribution line will be done by function | |
116 ;; `gnus-article-outlook-repair-attribution which calls other function that | |
117 ;; try to recognize and repair broken attribution lines. See variable | |
118 ;; `gnus-outlook-deuglify-attrib-cut-regexp' for stuff that should be | |
119 ;; cut off from the beginning of an attribution line and variable | |
120 ;; `gnus-outlook-deuglify-attrib-verb-regexp' for the verbs that are | |
121 ;; required to be found in an attribution line. These function return | |
122 ;; the point where the repaired attribution line starts. | |
123 ;; | |
124 ;; Rearranging the article so that the cited text appears above the | |
125 ;; new text will be done by function | |
126 ;; `gnus-article-outlook-rearrange-citation'. This function calls | |
127 ;; `gnus-article-outlook-repair-attribution to find and repair an attribution | |
128 ;; line. | |
129 ;; | |
130 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
131 ;; | |
132 ;; Well, and that's what the message will look like after applying | |
133 ;; deuglification: | |
134 ;; | |
135 ;; Example #3 (deuglified) | |
136 ;; ----------------------- | |
137 ;; | |
138 ;; John Doe <john.doe@some.domain> wrote: | |
139 ;; | |
140 ;; > This sentence no verb. This sentence no verb. This sentence no | |
141 ;; > verb. This sentence no verb. This sentence no verb. This | |
142 ;; > sentence no verb. | |
143 ;; > | |
144 ;; > Bye, John | |
145 ;; | |
146 ;; Hey, John. There's no in all your sentences! | |
147 ;; | |
148 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
149 ;; | |
150 ;; Usage | |
151 ;; ----- | |
152 ;; | |
153 ;; Press `W k' in the Summary Buffer. | |
154 ;; | |
155 ;; Non recommended usage :-) | |
156 ;; --------------------- | |
157 ;; | |
158 ;; To automatically invoke deuglification on every article you read, | |
159 ;; put something like that in your .gnus: | |
160 ;; | |
161 ;; (add-hook 'gnus-article-decode-hook 'gnus-article-outlook-unwrap-lines) | |
162 ;; | |
163 ;; or _one_ of the following lines: | |
164 ;; | |
165 ;; ;; repair broken attribution lines | |
166 ;; (add-hook 'gnus-article-decode-hook 'gnus-article-outlook-repair-attribution) | |
167 ;; | |
168 ;; ;; repair broken attribution lines and citations | |
169 ;; (add-hook 'gnus-article-decode-hook 'gnus-article-outlook-rearrange-citation) | |
170 ;; | |
171 ;; Note that there always may be some false positives, so I suggest | |
172 ;; using the manual invocation. After deuglification you may want to | |
173 ;; refill the whole article using `W w'. | |
174 ;; | |
175 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
176 ;; | |
177 ;; Limitations | |
178 ;; ----------- | |
179 ;; | |
180 ;; As I said before there may (or will) be a few false positives on | |
181 ;; unwrapping cited lines with `gnus-article-outlook-unwrap-lines'. | |
182 ;; | |
183 ;; `gnus-article-outlook-repair-attribution will only fix the first | |
184 ;; attribution line found in the article. Furthermore it fixed to | |
185 ;; certain kinds of attributions. And there may be horribly many | |
186 ;; false positives, vanishing lines and so on -- so don't trust your | |
187 ;; eyes. Again I recommend manual invocation. | |
188 ;; | |
189 ;; `gnus-article-outlook-rearrange-citation' carries all the limitations of | |
190 ;; `gnus-article-outlook-repair-attribution. | |
191 ;; | |
192 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
193 ;; | |
194 ;; See ChangeLog for other changes. | |
195 ;; | |
196 ;; Revision 1.5 2002/01/27 14:39:17 rscholz | |
197 ;; * New variable `gnus-outlook-deuglify-no-wrap-chars' to inhibit | |
198 ;; unwrapping if one these chars is first in the possibly wrapped line. | |
199 ;; * Improved rearranging of the article. | |
200 ;; * New function `gnus-outlook-repair-attribution-block' for repairing | |
201 ;; those big "Original Message (following some headers)" attributions. | |
202 ;; | |
203 ;; Revision 1.4 2002/01/03 14:05:00 rscholz | |
204 ;; Renamed `gnus-outlook-deuglify-article' to | |
205 ;; `gnus-article-outlook-deuglify-article'. | |
206 ;; Made it easier to deuglify the article while being in Gnus' Article | |
207 ;; Edit Mode. (suggested by Phil Nitschke) | |
208 ;; | |
209 ;; | |
210 ;; Revision 1.3 2002/01/02 23:35:54 rscholz | |
211 ;; Fix a bug that caused succeeding long attribution lines to be | |
212 ;; unwrapped. Minor doc fixes and regular expression tuning. | |
213 ;; | |
214 ;; Revision 1.2 2001/12/30 20:14:34 rscholz | |
215 ;; Clean up source. | |
216 ;; | |
217 ;; Revision 1.1 2001/12/30 20:13:32 rscholz | |
218 ;; Initial revision | |
219 ;; | |
220 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
221 | |
222 ;;; Code: | |
223 | |
224 (require 'gnus-art) | |
225 (require 'gnus-sum) | |
226 | |
227 (defconst gnus-outlook-deuglify-version "1.5 Gnus version" | |
228 "Version of gnus-outlook-deuglify.") | |
229 | |
230 ;;; User Customizable Variables: | |
231 | |
232 (defgroup gnus-outlook-deuglify nil | |
233 "Deuglify articles generated by broken user agents like MS Outlook (Express).") | |
234 | |
235 ;;;###autoload | |
236 (defcustom gnus-outlook-deuglify-unwrap-min 45 | |
237 "Minimum length of the cited line above the (possibly) wrapped line." | |
238 :type 'integer | |
239 :group 'gnus-outlook-deuglify) | |
240 | |
241 ;;;###autoload | |
242 (defcustom gnus-outlook-deuglify-unwrap-max 95 | |
243 "Maximum length of the cited line after unwrapping." | |
244 :type 'integer | |
245 :group 'gnus-outlook-deuglify) | |
246 | |
247 (defcustom gnus-outlook-deuglify-cite-marks ">|#%" | |
248 "Characters that indicate cited lines." | |
249 :type 'string | |
250 :group 'gnus-outlook-deuglify) | |
251 | |
252 (defcustom gnus-outlook-deuglify-unwrap-stop-chars nil ;; ".?!" or nil | |
253 "Characters that inhibit unwrapping if they are the last one on the cited line above the possible wrapped line." | |
254 :type '(radio (const :format "None " nil) | |
255 (string :size 0 :value ".?!")) | |
256 :group 'gnus-outlook-deuglify) | |
257 | |
258 (defcustom gnus-outlook-deuglify-no-wrap-chars "`" | |
259 "Characters that inhibit unwrapping if they are the first one in the possibly wrapped line." | |
260 :type 'string | |
261 :group 'gnus-outlook-deuglify) | |
262 | |
263 (defcustom gnus-outlook-deuglify-attrib-cut-regexp | |
264 "\\(On \\|Am \\)?\\(Mon\\|Tue\\|Wed\\|Thu\\|Fri\\|Sat\\|Sun\\),[^,]+, " | |
265 "Regular expression matching the beginning of an attribution line that should be cut off." | |
266 :type 'string | |
267 :group 'gnus-outlook-deuglify) | |
268 | |
269 (defcustom gnus-outlook-deuglify-attrib-verb-regexp | |
270 "wrote\\|writes\\|says\\|schrieb\\|schreibt\\|meinte\\|skrev\\|a écrit\\|schreef\\|escribió" | |
271 "Regular expression matching the verb used in an attribution line." | |
272 :type 'string | |
273 :group 'gnus-outlook-deuglify) | |
274 | |
275 (defcustom gnus-outlook-deuglify-attrib-end-regexp | |
276 ": *\\|\\.\\.\\." | |
277 "Regular expression matching the end of an attribution line." | |
278 :type 'string | |
279 :group 'gnus-outlook-deuglify) | |
280 | |
281 ;;;###autoload | |
282 (defcustom gnus-outlook-display-hook nil | |
283 "A hook called after an deuglified article has been prepared. | |
284 It is run after `gnus-article-prepare-hook'." | |
285 :type 'hook | |
286 :group 'gnus-outlook-deuglify) | |
287 | |
288 ;; Functions | |
289 | |
290 (defun gnus-outlook-display-article-buffer () | |
291 "Redisplay current buffer or article buffer." | |
292 (with-current-buffer (or gnus-article-buffer (current-buffer)) | |
293 ;; "Emulate" `gnus-article-prepare-display' without calling | |
294 ;; it. Calling `gnus-article-prepare-display' on an already | |
295 ;; prepared article removes all MIME parts. I'm unsure whether | |
296 ;; this is a bug or not. | |
297 (gnus-article-highlight t) | |
298 (gnus-treat-article nil) | |
299 (gnus-run-hooks 'gnus-article-prepare-hook | |
300 'gnus-outlook-display-hook))) | |
301 | |
302 ;;;###autoload | |
303 (defun gnus-article-outlook-unwrap-lines (&optional nodisplay) | |
304 "Unwrap lines that appear to be wrapped citation lines. | |
305 You can control what lines will be unwrapped by frobbing | |
306 `gnus-outlook-deuglify-unwrap-min' and `gnus-outlook-deuglify-unwrap-max', | |
307 indicating the minimum and maximum length of an unwrapped citation line. If | |
308 NODISPLAY is non-nil, don't redisplay the article buffer." | |
309 (interactive "P") | |
310 (save-excursion | |
311 (let ((case-fold-search nil) | |
312 (inhibit-read-only t) | |
313 (cite-marks gnus-outlook-deuglify-cite-marks) | |
314 (no-wrap gnus-outlook-deuglify-no-wrap-chars) | |
315 (stop-chars gnus-outlook-deuglify-unwrap-stop-chars)) | |
316 (gnus-with-article-buffer | |
317 (article-goto-body) | |
318 (while (re-search-forward | |
319 (concat | |
320 "^\\([ \t" cite-marks "]*\\)" | |
321 "\\([" cite-marks "].*[^\n " stop-chars "]\\)[ \t]?\n" | |
322 "\\1\\([^\n " cite-marks no-wrap "]+.*\\)$") | |
323 nil t) | |
324 (let ((len12 (- (match-end 2) (match-beginning 1))) | |
325 (len3 (- (match-end 3) (match-beginning 3)))) | |
326 (if (and (> len12 gnus-outlook-deuglify-unwrap-min) | |
327 (< (+ len12 len3) gnus-outlook-deuglify-unwrap-max)) | |
328 (progn | |
329 (replace-match "\\1\\2 \\3") | |
330 (goto-char (match-beginning 0))))))))) | |
331 (unless nodisplay (gnus-outlook-display-article-buffer))) | |
332 | |
333 (defun gnus-outlook-rearrange-article (attr-start) | |
334 "Put the text from ATTR-START to the end of buffer at the top of the article buffer." | |
335 (save-excursion | |
336 (let ((inhibit-read-only t) | |
337 (cite-marks gnus-outlook-deuglify-cite-marks)) | |
338 (gnus-with-article-buffer | |
339 (article-goto-body) | |
340 ;; article does not start with attribution | |
341 (unless (= (point) attr-start) | |
342 (gnus-kill-all-overlays) | |
343 (let ((cur (point)) | |
344 ;; before signature or end of buffer | |
345 (to (if (gnus-article-search-signature) | |
346 (point) | |
347 (point-max)))) | |
348 ;; handle the case where the full quote is below the | |
349 ;; signature | |
350 (if (< to attr-start) | |
351 (setq to (point-max))) | |
352 (transpose-regions cur attr-start attr-start to))))))) | |
353 | |
354 ;; John Doe <john.doe@some.domain> wrote in message | |
355 ;; news:a87usw8$dklsssa$2@some.news.server... | |
356 | |
357 (defun gnus-outlook-repair-attribution-outlook () | |
358 "Repair a broken attribution line (Outlook)." | |
359 (save-excursion | |
360 (let ((case-fold-search nil) | |
361 (inhibit-read-only t) | |
362 (cite-marks gnus-outlook-deuglify-cite-marks)) | |
363 (gnus-with-article-buffer | |
364 (article-goto-body) | |
365 (if (re-search-forward | |
366 (concat "^\\([^" cite-marks "].+\\)" | |
367 "\\(" gnus-outlook-deuglify-attrib-verb-regexp "\\)" | |
368 "\\(.*\n?[^\n" cite-marks "].*\\)?" | |
369 "\\(" gnus-outlook-deuglify-attrib-end-regexp "\\)$") | |
370 nil t) | |
371 (progn | |
372 (gnus-kill-all-overlays) | |
373 (replace-match "\\1\\2\\4") | |
374 (match-beginning 0))))))) | |
375 | |
376 | |
377 ;; ----- Original Message ----- | |
378 ;; From: "John Doe" <john.doe@some.domain> | |
379 ;; To: "Doe Foundation" <info@doefnd.org> | |
380 ;; Sent: Monday, November 19, 2001 12:13 PM | |
381 ;; Subject: More Doenuts | |
382 | |
383 (defun gnus-outlook-repair-attribution-block () | |
384 "Repair a big broken attribution block." | |
385 (save-excursion | |
386 (let ((case-fold-search nil) | |
387 (inhibit-read-only t) | |
388 (cite-marks gnus-outlook-deuglify-cite-marks)) | |
389 (gnus-with-article-buffer | |
390 (article-goto-body) | |
391 (if (re-search-forward | |
392 (concat "^[" cite-marks " \t]*--* ?[^-]+ [^-]+ ?--*\\s *\n" | |
393 "[^\n:]+:[ \t]*\\([^\n]+\\)\n" | |
394 "\\([^\n:]+:[ \t]*[^\n]+\n\\)+") | |
395 nil t) | |
396 (progn | |
397 (gnus-kill-all-overlays) | |
398 (replace-match "\\1 wrote:\n") | |
399 (match-beginning 0))))))) | |
400 | |
401 ;; On Wed, 16 Jan 2002 23:23:30 +0100, John Doe <john.doe@some.domain> wrote: | |
402 | |
403 (defun gnus-outlook-repair-attribution-other () | |
404 "Repair a broken attribution line (other user agents than Outlook)." | |
405 (save-excursion | |
406 (let ((case-fold-search nil) | |
407 (inhibit-read-only t) | |
408 (cite-marks gnus-outlook-deuglify-cite-marks)) | |
409 (gnus-with-article-buffer | |
410 (article-goto-body) | |
411 (if (re-search-forward | |
412 (concat "^\\("gnus-outlook-deuglify-attrib-cut-regexp"\\)?" | |
413 "\\([^" cite-marks "].+\\)\n\\([^\n" cite-marks "].*\\)?" | |
414 "\\(" gnus-outlook-deuglify-attrib-verb-regexp "\\).*" | |
415 "\\(" gnus-outlook-deuglify-attrib-end-regexp "\\)$") | |
416 nil t) | |
417 (progn | |
418 (gnus-kill-all-overlays) | |
419 (replace-match "\\4 \\5\\6\\7") | |
420 (match-beginning 0))))))) | |
421 | |
422 ;;;###autoload | |
423 (defun gnus-article-outlook-repair-attribution (&optional nodisplay) | |
424 "Repair a broken attribution line. | |
425 If NODISPLAY is non-nil, don't redisplay the article buffer." | |
426 (interactive "P") | |
427 (let ((attrib-start | |
428 (or | |
429 (gnus-outlook-repair-attribution-other) | |
430 (gnus-outlook-repair-attribution-block) | |
431 (gnus-outlook-repair-attribution-outlook)))) | |
432 (unless nodisplay (gnus-outlook-display-article-buffer)) | |
433 attrib-start)) | |
434 | |
435 (defun gnus-article-outlook-rearrange-citation (&optional nodisplay) | |
436 "Repair broken citations. | |
437 If NODISPLAY is non-nil, don't redisplay the article buffer." | |
438 (interactive "P") | |
439 (let ((attrib-start (gnus-article-outlook-repair-attribution 'nodisplay))) | |
440 ;; rearrange citations if an attribution line has been recognized | |
441 (if attrib-start | |
442 (gnus-outlook-rearrange-article attrib-start))) | |
443 (unless nodisplay (gnus-outlook-display-article-buffer))) | |
444 | |
445 ;;;###autoload | |
446 (defun gnus-outlook-deuglify-article (&optional nodisplay) | |
447 "Full deuglify of broken Outlook (Express) articles. | |
448 Treat dumbquotes, unwrap lines, repair attribution and rearrange citation. If | |
449 NODISPLAY is non-nil, don't redisplay the article buffer." | |
450 (interactive "P") | |
451 ;; apply treatment of dumb quotes | |
452 (gnus-article-treat-dumbquotes) | |
453 ;; repair wrapped cited lines | |
454 (gnus-article-outlook-unwrap-lines 'nodisplay) | |
455 ;; repair attribution line and rearrange citation. | |
456 (gnus-article-outlook-rearrange-citation 'nodisplay) | |
457 (unless nodisplay (gnus-outlook-display-article-buffer))) | |
458 | |
459 ;;;###autoload | |
460 (defun gnus-article-outlook-deuglify-article () | |
461 "Deuglify broken Outlook (Express) articles and redisplay." | |
462 (interactive) | |
463 (gnus-outlook-deuglify-article nil)) | |
464 | |
465 (provide 'deuglify) | |
466 | |
467 ;; Local Variables: | |
468 ;; coding: iso-8859-1 | |
469 ;; End: | |
470 | |
471 ;;; arch-tag: 5f895cc9-51a9-487c-b42e-28844d79eb73 | |
472 ;;; deuglify.el ends here |