aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiles Bader2006-01-16 11:11:37 +0000
committerMiles Bader2006-01-16 11:11:37 +0000
commit877173ab42e5c3ecf88a180262b937dfc219c57f (patch)
treef0308a78d558212e5c52a27bcd4b89c0dc6a01bf
parent41882805d6711e32ac0f066119226d84dbdedc13 (diff)
parent73043f7d550e049a636d1058ebd7a5b318533aba (diff)
downloademacs-877173ab42e5c3ecf88a180262b937dfc219c57f.tar.gz
emacs-877173ab42e5c3ecf88a180262b937dfc219c57f.zip
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-99
Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 698-699) - Merge from gnus--rel--5.10 - Update from CVS * gnus--rel--5.10 (patch 182-184) - Merge from emacs--cvs-trunk--0 - Update from CVS
-rw-r--r--lisp/gnus/ChangeLog26
-rw-r--r--lisp/gnus/gnus-art.el69
-rw-r--r--lisp/gnus/mm-uu.el52
-rw-r--r--lisp/gnus/mm-view.el30
-rw-r--r--lisp/mh-e/ChangeLog6
-rw-r--r--lisp/mh-e/mh-e.el8
-rw-r--r--lisp/mh-e/mh-utils.el4
-rw-r--r--man/ChangeLog8
-rw-r--r--man/gnus.texi9
9 files changed, 166 insertions, 46 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index fe3275c8380..b4c02fa2b3b 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,29 @@
12006-01-16 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * mm-uu.el (mm-uu-text-plain-type): New variable.
4 (mm-uu-pgp-signed-extract-1): Use it.
5 (mm-uu-pgp-encrypted-extract-1): Use it.
6 (mm-uu-dissect): Use it; allow two optional arguments; one is a
7 flag specifying whether there's no message header; the other is
8 for a MIME type and parameters; bind mm-uu-text-plain-type with
9 the later one.
10 (mm-uu-dissect-text-parts): New function.
11
12 * gnus-art.el (gnus-display-mime): Use mm-uu-dissect-text-parts to
13 dissect text parts.
14
152006-01-13 Katsumi Yamaoka <yamaoka@jpl.org>
16
17 * gnus-art.el (article-wash-html): Use
18 gnus-summary-show-article-charset-alist if a numeric arg is given.
19 (gnus-article-wash-html-with-w3m-standalone): New function.
20
21 * mm-view.el (mm-text-html-renderer-alist): Map w3m-standalone to
22 mm-inline-text-html-render-with-w3m-standalone.
23 (mm-text-html-washer-alist): Map w3m-standalone to
24 gnus-article-wash-html-with-w3m-standalone.
25 (mm-inline-text-html-render-with-w3m-standalone): New function.
26
12006-01-10 Katsumi Yamaoka <yamaoka@jpl.org> 272006-01-10 Katsumi Yamaoka <yamaoka@jpl.org>
2 28
3 * nnrss.el (nnrss-wash-html-in-text-plain-parts): New variable. 29 * nnrss.el (nnrss-wash-html-in-text-plain-parts): New variable.
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 77177765821..2b5cc46d936 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -2467,25 +2467,36 @@ If READ-CHARSET, ask for a coding system."
2467 2467
2468(defun article-wash-html (&optional read-charset) 2468(defun article-wash-html (&optional read-charset)
2469 "Format an HTML article. 2469 "Format an HTML article.
2470If READ-CHARSET, ask for a coding system." 2470If READ-CHARSET, ask for a coding system. If it is a number, the
2471charset defined in `gnus-summary-show-article-charset-alist' is used."
2471 (interactive "P") 2472 (interactive "P")
2472 (save-excursion 2473 (save-excursion
2473 (let ((inhibit-read-only t) 2474 (let ((inhibit-read-only t)
2474 charset) 2475 charset)
2475 (when (gnus-buffer-live-p gnus-original-article-buffer) 2476 (if read-charset
2476 (with-current-buffer gnus-original-article-buffer 2477 (if (or (and (numberp read-charset)
2477 (let* ((ct (gnus-fetch-field "content-type")) 2478 (setq charset
2478 (ctl (and ct 2479 (cdr
2479 (ignore-errors 2480 (assq read-charset
2480 (mail-header-parse-content-type ct))))) 2481 gnus-summary-show-article-charset-alist))))
2481 (setq charset (and ctl 2482 (setq charset (mm-read-coding-system "Charset: ")))
2482 (mail-content-type-get ctl 'charset))) 2483 (let ((gnus-summary-show-article-charset-alist
2483 (when (stringp charset) 2484 (list (cons 1 charset))))
2484 (setq charset (intern (downcase charset))))))) 2485 (with-current-buffer gnus-summary-buffer
2485 (when read-charset 2486 (gnus-summary-show-article 1)))
2486 (setq charset (mm-read-coding-system "Charset: " charset))) 2487 (error "No charset is given"))
2487 (unless charset 2488 (when (gnus-buffer-live-p gnus-original-article-buffer)
2488 (setq charset gnus-newsgroup-charset)) 2489 (with-current-buffer gnus-original-article-buffer
2490 (let* ((ct (gnus-fetch-field "content-type"))
2491 (ctl (and ct
2492 (ignore-errors
2493 (mail-header-parse-content-type ct)))))
2494 (setq charset (and ctl
2495 (mail-content-type-get ctl 'charset)))
2496 (when (stringp charset)
2497 (setq charset (intern (downcase charset)))))))
2498 (unless charset
2499 (setq charset gnus-newsgroup-charset)))
2489 (article-goto-body) 2500 (article-goto-body)
2490 (save-window-excursion 2501 (save-window-excursion
2491 (save-restriction 2502 (save-restriction
@@ -2526,6 +2537,20 @@ If READ-CHARSET, ask for a coding system."
2526 ;; Put the mark meaning this part was rendered by emacs-w3m. 2537 ;; Put the mark meaning this part was rendered by emacs-w3m.
2527 'mm-inline-text-html-with-w3m t)))) 2538 'mm-inline-text-html-with-w3m t))))
2528 2539
2540(eval-when-compile (defvar charset)) ;; Bound by `article-wash-html'.
2541
2542(defun gnus-article-wash-html-with-w3m-standalone ()
2543 "Wash the current buffer with w3m."
2544 (unless (mm-coding-system-p charset)
2545 ;; The default.
2546 (setq charset 'iso-8859-1))
2547 (let ((coding-system-for-write charset)
2548 (coding-system-for-read charset))
2549 (call-process-region
2550 (point-min) (point-max)
2551 "w3m" t t nil "-dump" "-T" "text/html"
2552 "-I" (symbol-name charset) "-O" (symbol-name charset))))
2553
2529(defun article-hide-list-identifiers () 2554(defun article-hide-list-identifiers ()
2530 "Remove list identifies from the Subject header. 2555 "Remove list identifies from the Subject header.
2531The `gnus-list-identifiers' variable specifies what to do." 2556The `gnus-list-identifiers' variable specifies what to do."
@@ -4718,11 +4743,15 @@ N is the numerical prefix."
4718 ;; We have to do this since selecting the window 4743 ;; We have to do this since selecting the window
4719 ;; may change the point. So we set the window point. 4744 ;; may change the point. So we set the window point.
4720 (set-window-point window point))) 4745 (set-window-point window point)))
4721 (let* ((handles (or ihandles 4746 (let ((handles ihandles)
4722 (mm-dissect-buffer nil gnus-article-loose-mime) 4747 (inhibit-read-only t)
4723 (and gnus-article-emulate-mime 4748 handle)
4724 (mm-uu-dissect)))) 4749 (cond (handles)
4725 (inhibit-read-only t) handle name type b e display) 4750 ((setq handles (mm-dissect-buffer nil gnus-article-loose-mime))
4751 (when gnus-article-emulate-mime
4752 (mm-uu-dissect-text-parts handles)))
4753 (gnus-article-emulate-mime
4754 (setq handles (mm-uu-dissect))))
4726 (when (and (not ihandles) 4755 (when (and (not ihandles)
4727 (not gnus-displaying-mime)) 4756 (not gnus-displaying-mime))
4728 ;; Top-level call; we clean up. 4757 ;; Top-level call; we clean up.
diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el
index dd1519ddfeb..f3328c1f789 100644
--- a/lisp/gnus/mm-uu.el
+++ b/lisp/gnus/mm-uu.el
@@ -174,6 +174,10 @@ To disable dissecting shar codes, for instance, add
174 mm-uu-type-alist) 174 mm-uu-type-alist)
175 :group 'gnus-article-mime) 175 :group 'gnus-article-mime)
176 176
177(defvar mm-uu-text-plain-type '("text/plain" (charset . gnus-decoded))
178 "MIME type and parameters for text/plain parts.
179`gnus-decoded' is a fake charset, which means no further decoding.")
180
177;; functions 181;; functions
178 182
179(defsubst mm-uu-type (entry) 183(defsubst mm-uu-type (entry)
@@ -375,7 +379,7 @@ Return that buffer."
375 (while (re-search-forward "^- " nil t) 379 (while (re-search-forward "^- " nil t)
376 (replace-match "" t t) 380 (replace-match "" t t)
377 (forward-line 1))) 381 (forward-line 1)))
378 (list (mm-make-handle buf '("text/plain" (charset . gnus-decoded)))))) 382 (list (mm-make-handle buf mm-uu-text-plain-type))))
379 383
380(defun mm-uu-pgp-signed-extract () 384(defun mm-uu-pgp-signed-extract ()
381 (let ((mm-security-handle (list (format "multipart/signed")))) 385 (let ((mm-security-handle (list (format "multipart/signed"))))
@@ -407,9 +411,7 @@ Return that buffer."
407 (with-current-buffer buf 411 (with-current-buffer buf
408 (mml2015-clean-buffer) 412 (mml2015-clean-buffer)
409 (funcall (mml2015-clear-decrypt-function)))) 413 (funcall (mml2015-clear-decrypt-function))))
410 (list 414 (list (mm-make-handle buf mm-uu-text-plain-type))))
411 (mm-make-handle buf
412 '("text/plain" (charset . gnus-decoded))))))
413 415
414(defun mm-uu-pgp-encrypted-extract () 416(defun mm-uu-pgp-encrypted-extract ()
415 (let ((mm-security-handle (list (format "multipart/encrypted")))) 417 (let ((mm-security-handle (list (format "multipart/encrypted"))))
@@ -443,23 +445,24 @@ Return that buffer."
443 '("application/pgp-keys")))) 445 '("application/pgp-keys"))))
444 446
445;;;###autoload 447;;;###autoload
446(defun mm-uu-dissect () 448(defun mm-uu-dissect (&optional noheader mime-type)
447 "Dissect the current buffer and return a list of uu handles." 449 "Dissect the current buffer and return a list of uu handles.
450The optional NOHEADER means there's no header in the buffer.
451MIME-TYPE specifies a MIME type and parameters, which defaults to the
452value of `mm-uu-text-plain-type'."
448 (let ((case-fold-search t) 453 (let ((case-fold-search t)
449 text-start start-point end-point file-name result 454 (mm-uu-text-plain-type (or mime-type mm-uu-text-plain-type))
450 text-plain-type entry func) 455 text-start start-point end-point file-name result entry func)
451 (save-excursion 456 (save-excursion
452 (goto-char (point-min)) 457 (goto-char (point-min))
453 (cond 458 (cond
459 (noheader)
454 ((looking-at "\n") 460 ((looking-at "\n")
455 (forward-line)) 461 (forward-line))
456 ((search-forward "\n\n" nil t) 462 ((search-forward "\n\n" nil t)
457 t) 463 t)
458 (t (goto-char (point-max)))) 464 (t (goto-char (point-max))))
459 ;;; gnus-decoded is a fake charset, which means no further 465 (setq text-start (point))
460 ;;; decoding.
461 (setq text-start (point)
462 text-plain-type '("text/plain" (charset . gnus-decoded)))
463 (while (re-search-forward mm-uu-beginning-regexp nil t) 466 (while (re-search-forward mm-uu-beginning-regexp nil t)
464 (setq start-point (match-beginning 0)) 467 (setq start-point (match-beginning 0))
465 (let ((alist mm-uu-type-alist) 468 (let ((alist mm-uu-type-alist)
@@ -488,7 +491,7 @@ Return that buffer."
488 (re-search-forward "." start-point t))) 491 (re-search-forward "." start-point t)))
489 (push 492 (push
490 (mm-make-handle (mm-uu-copy-to-buffer text-start start-point) 493 (mm-make-handle (mm-uu-copy-to-buffer text-start start-point)
491 text-plain-type) 494 mm-uu-text-plain-type)
492 result)) 495 result))
493 (push 496 (push
494 (funcall (mm-uu-function-extract entry)) 497 (funcall (mm-uu-function-extract entry))
@@ -501,11 +504,32 @@ Return that buffer."
501 (re-search-forward "." nil t))) 504 (re-search-forward "." nil t)))
502 (push 505 (push
503 (mm-make-handle (mm-uu-copy-to-buffer text-start (point-max)) 506 (mm-make-handle (mm-uu-copy-to-buffer text-start (point-max))
504 text-plain-type) 507 mm-uu-text-plain-type)
505 result)) 508 result))
506 (setq result (cons "multipart/mixed" (nreverse result)))) 509 (setq result (cons "multipart/mixed" (nreverse result))))
507 result))) 510 result)))
508 511
512(defun mm-uu-dissect-text-parts (handle)
513 "Dissect text parts and put uu handles into HANDLE."
514 (let ((buffer (mm-handle-buffer handle))
515 type children)
516 (cond ((stringp buffer)
517 (dolist (elem (cdr handle))
518 (mm-uu-dissect-text-parts elem)))
519 ((bufferp buffer)
520 (when (and (setq type (mm-handle-media-type handle))
521 (stringp type)
522 (string-match "\\`text/" type)
523 (with-current-buffer buffer
524 (setq children
525 (mm-uu-dissect t (mm-handle-type handle)))))
526 (kill-buffer buffer)
527 (setcar handle (car children))
528 (setcdr handle (cdr children))))
529 (t
530 (dolist (elem handle)
531 (mm-uu-dissect-text-parts elem))))))
532
509(provide 'mm-uu) 533(provide 'mm-uu)
510 534
511;; arch-tag: 7db076bf-53db-4320-aa19-ca76a1d2ab2c 535;; arch-tag: 7db076bf-53db-4320-aa19-ca76a1d2ab2c
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el
index 03c188b87a0..882937c7cb2 100644
--- a/lisp/gnus/mm-view.el
+++ b/lisp/gnus/mm-view.el
@@ -51,8 +51,7 @@
51(defvar mm-text-html-renderer-alist 51(defvar mm-text-html-renderer-alist
52 '((w3 . mm-inline-text-html-render-with-w3) 52 '((w3 . mm-inline-text-html-render-with-w3)
53 (w3m . mm-inline-text-html-render-with-w3m) 53 (w3m . mm-inline-text-html-render-with-w3m)
54 (w3m-standalone mm-inline-render-with-stdin nil 54 (w3m-standalone . mm-inline-text-html-render-with-w3m-standalone)
55 "w3m" "-dump" "-T" "text/html")
56 (links mm-inline-render-with-file 55 (links mm-inline-render-with-file
57 mm-links-remove-leading-blank 56 mm-links-remove-leading-blank
58 "links" "-dump" file) 57 "links" "-dump" file)
@@ -64,8 +63,7 @@
64(defvar mm-text-html-washer-alist 63(defvar mm-text-html-washer-alist
65 '((w3 . gnus-article-wash-html-with-w3) 64 '((w3 . gnus-article-wash-html-with-w3)
66 (w3m . gnus-article-wash-html-with-w3m) 65 (w3m . gnus-article-wash-html-with-w3m)
67 (w3m-standalone mm-inline-wash-with-stdin nil 66 (w3m-standalone . gnus-article-wash-html-with-w3m-standalone)
68 "w3m" "-dump" "-T" "text/html")
69 (links mm-inline-wash-with-file 67 (links mm-inline-wash-with-file
70 mm-links-remove-leading-blank 68 mm-links-remove-leading-blank
71 "links" "-dump" file) 69 "links" "-dump" file)
@@ -264,6 +262,30 @@
264 (delete-region ,(point-min-marker) 262 (delete-region ,(point-min-marker)
265 ,(point-max-marker))))))))) 263 ,(point-max-marker)))))))))
266 264
265(defun mm-inline-text-html-render-with-w3m-standalone (handle)
266 "Render a text/html part using w3m."
267 (let ((source (mm-get-part handle))
268 (charset (mail-content-type-get (mm-handle-type handle) 'charset))
269 cs)
270 (unless (and charset
271 (setq cs (mm-charset-to-coding-system charset))
272 (not (eq cs 'ascii)))
273 ;; The default.
274 (setq charset "iso-8859-1"
275 cs 'iso-8859-1))
276 (mm-insert-inline
277 handle
278 (mm-with-unibyte-buffer
279 (insert source)
280 (mm-enable-multibyte)
281 (let ((coding-system-for-write 'binary)
282 (coding-system-for-read cs))
283 (call-process-region
284 (point-min) (point-max)
285 "w3m" t t nil "-dump" "-T" "text/html"
286 "-I" charset "-O" charset))
287 (buffer-string)))))
288
267(defun mm-links-remove-leading-blank () 289(defun mm-links-remove-leading-blank ()
268 ;; Delete the annoying three spaces preceding each line of links 290 ;; Delete the annoying three spaces preceding each line of links
269 ;; output. 291 ;; output.
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog
index debaf5c943a..23a0a2041a5 100644
--- a/lisp/mh-e/ChangeLog
+++ b/lisp/mh-e/ChangeLog
@@ -1,5 +1,11 @@
12006-01-15 Bill Wohler <wohler@newt.com> 12006-01-15 Bill Wohler <wohler@newt.com>
2 2
3 * mh-e.el (mh-limit-map, mh-help-messages): Change keybinding of
4 mh-narrow-to-from from / f to / m; mh-narrow-to-range from / r to
5 / g.
6
7 * mh-utils.el (mh-show-limit-map): Ditto.
8
3 * mh-exec.el: Require mh-acros, mh-buffers, and mh-utils for 9 * mh-exec.el: Require mh-acros, mh-buffers, and mh-utils for
4 standalone compile. 10 standalone compile.
5 (mh-progs, mh-lib, mh-lib-progs): Move here from mh-init.el. 11 (mh-progs, mh-lib, mh-lib-progs): Move here from mh-init.el.
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el
index 8319738d482..c173b0c75dc 100644
--- a/lisp/mh-e/mh-e.el
+++ b/lisp/mh-e/mh-e.el
@@ -2756,8 +2756,8 @@ in list."
2756 "'" mh-narrow-to-tick 2756 "'" mh-narrow-to-tick
2757 "?" mh-prefix-help 2757 "?" mh-prefix-help
2758 "c" mh-narrow-to-cc 2758 "c" mh-narrow-to-cc
2759 "f" mh-narrow-to-from 2759 "g" mh-narrow-to-range
2760 "r" mh-narrow-to-range 2760 "m" mh-narrow-to-from
2761 "s" mh-narrow-to-subject 2761 "s" mh-narrow-to-subject
2762 "t" mh-narrow-to-to 2762 "t" mh-narrow-to-to
2763 "w" mh-widen) 2763 "w" mh-widen)
@@ -2815,7 +2815,7 @@ in list."
2815 "\n [T]hread, [/]limit, e[X]tract, [D]igest, [I]nc spools.") 2815 "\n [T]hread, [/]limit, e[X]tract, [D]igest, [I]nc spools.")
2816 2816
2817 (?F "[l]ist; [v]isit folder;\n" 2817 (?F "[l]ist; [v]isit folder;\n"
2818 "[n]ew messages; [']ticked messages; [s]earch; [i]ndexed search;\n" 2818 "[n]ew messages; [']ticked messages; [s]earch;\n"
2819 "[p]ack; [S]ort; [r]escan; [k]ill") 2819 "[p]ack; [S]ort; [r]escan; [k]ill")
2820 (?P "[p]rint message to [f]ile; old-style [l]pr printing;\n" 2820 (?P "[p]rint message to [f]ile; old-style [l]pr printing;\n"
2821 "Toggle printing of [C]olors, [F]aces") 2821 "Toggle printing of [C]olors, [F]aces")
@@ -2823,7 +2823,7 @@ in list."
2823 "[s]equences, [l]ist,\n" 2823 "[s]equences, [l]ist,\n"
2824 "[d]elete message from sequence, [k]ill sequence") 2824 "[d]elete message from sequence, [k]ill sequence")
2825 (?T "[t]oggle, [d]elete, [o]refile thread") 2825 (?T "[t]oggle, [d]elete, [o]refile thread")
2826 (?/ "Limit to [c]c, [f]rom, [r]ange, [s]ubject, [t]o; [w]iden") 2826 (?/ "Limit to [c]c, ran[g]e, fro[m], [s]ubject, [t]o; [w]iden")
2827 (?X "un[s]har, [u]udecode message") 2827 (?X "un[s]har, [u]udecode message")
2828 (?D "[b]urst digest") 2828 (?D "[b]urst digest")
2829 (?K "[v]iew, [i]nline, [o]utput/save MIME part; save [a]ll parts; \n" 2829 (?K "[v]iew, [i]nline, [o]utput/save MIME part; save [a]ll parts; \n"
diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el
index b37326b7701..111dfd2e6cd 100644
--- a/lisp/mh-e/mh-utils.el
+++ b/lisp/mh-e/mh-utils.el
@@ -1000,8 +1000,8 @@ still visible.\n")
1000 "'" mh-show-narrow-to-tick 1000 "'" mh-show-narrow-to-tick
1001 "?" mh-prefix-help 1001 "?" mh-prefix-help
1002 "c" mh-show-narrow-to-cc 1002 "c" mh-show-narrow-to-cc
1003 "f" mh-show-narrow-to-from 1003 "g" mh-show-narrow-to-range
1004 "r" mh-show-narrow-to-range 1004 "m" mh-show-narrow-to-from
1005 "s" mh-show-narrow-to-subject 1005 "s" mh-show-narrow-to-subject
1006 "t" mh-show-narrow-to-to 1006 "t" mh-show-narrow-to-to
1007 "w" mh-show-widen) 1007 "w" mh-show-widen)
diff --git a/man/ChangeLog b/man/ChangeLog
index a839a702382..423a4355030 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,11 @@
12006-01-13 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * gnus.texi (Article Washing): Additions.
4
52006-01-08 Alex Schroeder <alex@gnu.org>
6
7 * pgg.texi (Caching passphrase): Rewording.
8
12006-01-14 Richard M. Stallman <rms@gnu.org> 92006-01-14 Richard M. Stallman <rms@gnu.org>
2 10
3 * basic.texi (Inserting Text): Minor cleanup. 11 * basic.texi (Inserting Text): Minor cleanup.
diff --git a/man/gnus.texi b/man/gnus.texi
index df3b1db7874..e28537329ba 100644
--- a/man/gnus.texi
+++ b/man/gnus.texi
@@ -8571,7 +8571,9 @@ Treat @acronym{HTML} (@code{gnus-article-wash-html}). Note that this is
8571usually done automatically by Gnus if the message in question has a 8571usually done automatically by Gnus if the message in question has a
8572@code{Content-Type} header that says that the message is @acronym{HTML}. 8572@code{Content-Type} header that says that the message is @acronym{HTML}.
8573 8573
8574If a prefix is given, a charset will be asked for. 8574If a prefix is given, a charset will be asked for. If it is a number,
8575the charset defined in @code{gnus-summary-show-article-charset-alist}
8576(@pxref{Paging the Article}) will be used.
8575 8577
8576@vindex gnus-article-wash-function 8578@vindex gnus-article-wash-function
8577The default is to use the function specified by 8579The default is to use the function specified by
@@ -8582,12 +8584,15 @@ Customization, emacs-mime, The Emacs MIME Manual}) to convert the
8582can use include: 8584can use include:
8583 8585
8584@table @code 8586@table @code
8585@item W3 8587@item w3
8586Use Emacs/W3. 8588Use Emacs/W3.
8587 8589
8588@item w3m 8590@item w3m
8589Use @uref{http://emacs-w3m.namazu.org/, emacs-w3m}. 8591Use @uref{http://emacs-w3m.namazu.org/, emacs-w3m}.
8590 8592
8593@item w3m-standalone
8594Use @uref{http://w3m.sourceforge.net/, w3m}.
8595
8591@item links 8596@item links
8592Use @uref{http://links.sf.net/, Links}. 8597Use @uref{http://links.sf.net/, Links}.
8593 8598