From 8105541ee890397f15d41f6ac2d1a818ce80e0f4 Mon Sep 17 00:00:00 2001 From: ichikawa Date: Tue, 1 Sep 1998 14:10:11 +0000 Subject: [PATCH] Importing pgnus-0.13 --- lisp/gnus-art.el | 31 ++++++++++++++-- lisp/gnus-msg.el | 22 ++++++++---- lisp/gnus-sum.el | 14 ++++---- lisp/gnus-util.el | 38 ++++++-------------- lisp/gnus.el | 25 +++++++------ lisp/message.el | 36 ++++++++++++++++--- lisp/mm-bodies.el | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++ lisp/mm-util.el | 39 +++++++++++++++++++++ lisp/nnheader.el | 1 - lisp/nnmail.el | 2 +- lisp/rfc2047.el | 8 ++--- texi/ChangeLog | 2 ++ texi/gnus.texi | 40 ++++++++++++++++++--- texi/message.texi | 6 ++-- 14 files changed, 292 insertions(+), 73 deletions(-) create mode 100644 lisp/mm-bodies.el diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index d3b2357..48ab6bf 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -33,6 +33,7 @@ (require 'gnus-spec) (require 'gnus-int) (require 'browse-url) +(require 'mm-bodies) (defgroup gnus-article nil "Article display." @@ -398,7 +399,7 @@ beginning of a line." :type 'regexp :group 'gnus-article-various) -(defcustom gnus-article-mode-line-format "Gnus: %%b %S" +(defcustom gnus-article-mode-line-format "Gnus: %g %S" "*The format specification for the article mode line. See `gnus-summary-mode-line-format' for a closer description." :type 'string @@ -954,6 +955,31 @@ characters to translate to." buffer-read-only) (rfc2047-decode-region (point-min) (point-max))))) +(defun gnus-article-decode-charset (&optional prompt) + "Decode charset-encoded text in the article. +If PROMPT (the prefix), prompt for a coding system to use." + (interactive "P") + (save-excursion + (set-buffer gnus-article-buffer) + (let* ((inhibit-point-motion-hooks t) + (ct (message-fetch-field "Content-Type" t)) + (cte (message-fetch-field "Content-Transfer-Encoding" t)) + (charset (cond + (prompt + (mm-read-coding-system "Charset to decode: ")) + (ct + (mm-content-type-charset ct)) + (gnus-newsgroup-name + (gnus-group-find-parameter + gnus-newsgroup-name 'charset)))) + buffer-read-only) + (save-restriction + (goto-char (point-min)) + (search-forward "\n\n" nil 'move) + (narrow-to-region (point) (point-max)) + (mm-decode-body + charset (and cte (intern (downcase (gnus-strip-whitespace cte))))))))) + (defalias 'gnus-decode-rfc1522 'article-decode-rfc1522) (defalias 'gnus-article-decode-rfc1522 'article-decode-rfc1522) (defun article-decode-rfc1522 () @@ -1936,8 +1962,7 @@ commands: (buffer-disable-undo (current-buffer)) (setq buffer-read-only t) (set-syntax-table gnus-article-mode-syntax-table) - (when (fboundp 'set-buffer-multibyte) - (set-buffer-multibyte t)) + (mm-enable-multibyte) (gnus-run-hooks 'gnus-article-mode-hook)) (defun gnus-article-setup-buffer () diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index 6d4aee0..eb61973 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -228,11 +228,20 @@ Thank you for your help in stamping out bugs. ;;; Post news commands of Gnus group mode and summary mode -(defun gnus-group-mail () - "Start composing a mail." - (interactive) - (gnus-setup-message 'message - (message-mail))) +(defun gnus-group-mail (&optional arg) + "Start composing a mail. +If ARG, use the group under the point to find a posting style. +If ARG is 1, prompt for a group name to find the posting style." + (interactive "P") + (let ((gnus-newsgroup-name + (if arg + (if (= 1 (prefix-numeric-value arg)) + (completing-read "Use style of group: " gnus-active-hashtb nil + (gnus-read-active-file-p)) + (gnus-group-group-name)) + ""))) + (gnus-setup-message 'message (message-mail)) + )) (defun gnus-group-post-news (&optional arg) "Start composing a news message. @@ -356,8 +365,7 @@ header line with the old Message-ID." (buffer-disable-undo gnus-article-copy) (save-excursion (set-buffer gnus-article-copy) - (when (fboundp 'set-buffer-multibyte) - (set-buffer-multibyte t))) + (mm-enable-multibyte)) (let ((article-buffer (or article-buffer gnus-article-buffer)) end beg) (if (not (and (get-buffer article-buffer) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index ad03a14..a28a99b 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -504,7 +504,7 @@ with some simple extensions. :group 'gnus-threading :type 'string) -(defcustom gnus-summary-mode-line-format "Gnus: %%b [%A] %Z" +(defcustom gnus-summary-mode-line-format "Gnus: %g [%A] %Z" "*The format specification for the summary mode line. It works along the same lines as a normal formatting string, with some simple extensions: @@ -1385,7 +1385,8 @@ increase the score of each group you read." "s" gnus-article-highlight-signature) (gnus-define-keys (gnus-summary-wash-mime-map "M" gnus-summary-wash-map) - "w" gnus-article-decode-mime-words) + "w" gnus-article-decode-mime-words + "c" gnus-article-decode-charset) (gnus-define-keys (gnus-summary-wash-time-map "T" gnus-summary-wash-map) "z" gnus-article-date-ut @@ -1488,6 +1489,7 @@ increase the score of each group you read." ["Citation" gnus-article-highlight-citation t]) ("MIME" ["Words" gnus-article-decode-mime-words t] + ["Charset" gnus-article-decode-charset t] ["QP" gnus-article-de-quoted-unreadable t]) ("Date" ["Local" gnus-article-date-local t] @@ -1881,6 +1883,7 @@ The following commands are available: (make-local-hook 'pre-command-hook) (add-hook 'pre-command-hook 'gnus-set-global-variables nil t) (gnus-run-hooks 'gnus-summary-mode-hook) + (mm-enable-multibyte) (gnus-update-format-specifications nil 'summary 'summary-mode 'summary-dummy) (gnus-update-summary-mark-positions)) @@ -4526,10 +4529,9 @@ list of headers that match SEQUENCE (see `nntp-retrieve-headers')." number dependencies force-new)))) (push header headers)) (forward-line 1)) - ;(error - ; (gnus-error 4 "Strange nov line (%d)" - ; (count-lines (point-min) (point)))) - ) + (error + (gnus-error 4 "Strange nov line (%d)" + (count-lines (point-min) (point))))) (forward-line 1)) ;; A common bug in inn is that if you have posted an article and ;; then retrieves the active file, it will answer correctly -- diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index 3ccd1c8..6624762 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -103,33 +103,15 @@ (when (gnus-buffer-exists-p buf) (kill-buffer buf)))) -(cond - ((fboundp 'point-at-bol) - (fset 'gnus-point-at-bol 'point-at-bol)) - ((fboundp 'line-beginning-position) - (fset 'gnus-point-at-bol 'line-beginning-position)) - (t - (defun gnus-point-at-bol () - "Return point at the beginning of the line." - (let ((p (point))) - (beginning-of-line) - (prog1 - (point) - (goto-char p)))))) - -(cond - ((fboundp 'point-at-eol) - (fset 'gnus-point-at-eol 'point-at-eol)) - ((fboundp 'line-end-position) - (fset 'gnus-point-at-eol 'line-end-position)) - (t - (defun gnus-point-at-eol () - "Return point at the end of the line." - (let ((p (point))) - (end-of-line) - (prog1 - (point) - (goto-char p)))))) +(fset 'gnus-point-at-bol + (if (fboundp 'point-at-bol) + 'point-at-bol + 'line-beginning-position)) + +(fset 'gnus-point-at-eol + (if (fboundp 'point-at-eol) + 'point-at-eol + 'line-end-position)) (defun gnus-delete-first (elt list) "Delete by side effect the first occurrence of ELT as a member of LIST." @@ -547,7 +529,7 @@ Timezone package is used." (erase-buffer)) (set-buffer (gnus-get-buffer-create gnus-work-buffer)) (kill-all-local-variables) - (buffer-disable-undo (current-buffer)))) + (mm-enable-multibyte))) (defmacro gnus-group-real-name (group) "Find the real name of a foreign newsgroup." diff --git a/lisp/gnus.el b/lisp/gnus.el index 46d1469..ecc0eb4 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -250,7 +250,7 @@ is restarted, and sometimes reloaded." :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) -(defconst gnus-version-number "0.10" +(defconst gnus-version-number "0.13" "Version number for this version of Gnus.") (defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number) @@ -1346,12 +1346,16 @@ face." (defcustom gnus-article-display-hook (if (and (string-match "XEmacs" emacs-version) (featurep 'xface)) - '(gnus-article-hide-headers-if-wanted + '(gnus-article-decode-charset + gnus-article-decode-rfc1522 + gnus-article-hide-headers-if-wanted gnus-article-hide-boring-headers gnus-article-treat-overstrike gnus-article-maybe-highlight gnus-article-display-x-face) - '(gnus-article-hide-headers-if-wanted + '(gnus-article-decode-charset + gnus-article-decode-rfc1522 + gnus-article-hide-headers-if-wanted gnus-article-hide-boring-headers gnus-article-treat-overstrike gnus-article-maybe-highlight)) @@ -2001,14 +2005,13 @@ If ARG, insert string at point." (string-to-number (if (zerop major) (format "%s00%02d%02d" - (cond - ((member alpha '("(ding)" "d")) "4.99") - ((member alpha '("September" "s")) "5.01") - ((member alpha '("Red" "r")) "5.03") - ((member alpha '("Quassia" "q")) "5.05") - ((member alpha '("Pterodactyl" "p")) "5.07") - ((member alpha '("o")) "5.09") - ((member alpha '("n")) "5.11")) + (if (member alpha '("(ding)" "d")) + "4.99" + (+ 5 (* 0.02 + (abs + (- (char-int (aref (downcase alpha) 0)) + (char-int ?t)))) + -0.01)) minor least) (format "%d.%02d%02d" major minor least)))))) diff --git a/lisp/message.el b/lisp/message.el index 24cbee5..70ef73c 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -40,6 +40,7 @@ (require 'mail-abbrevs) (require 'mailabbrev)) (require 'rfc2047) +(require 'mm-bodies) (defgroup message '((user-mail-address custom-variable) (user-full-name custom-variable)) @@ -1067,7 +1068,7 @@ The cdr of ech entry is a function for applying the face to a region.") (erase-buffer)) (set-buffer (get-buffer-create " *message work*")) (kill-all-local-variables) - (buffer-disable-undo (current-buffer)))) + (mm-enable-multibyte))) (defun message-functionp (form) "Return non-nil if FORM is funcallable." @@ -1386,8 +1387,7 @@ C-c C-r message-caesar-buffer-body (rot13 the message body)." (setq adaptive-fill-first-line-regexp (concat "[ \t]*[-a-z0-9A-Z]*>+[ \t]*\\|" adaptive-fill-first-line-regexp)) - (when (fboundp 'set-buffer-multibyte) - (set-buffer-multibyte t)) + (mm-enable-multibyte) (run-hooks 'text-mode-hook 'message-mode-hook)) @@ -2025,6 +2025,7 @@ the user from the mailer." (rfc2047-encode-message-header) ;; Let the user do all of the above. (run-hooks 'message-header-hook)) + (message-encode-message-body) (unwind-protect (save-excursion (set-buffer tembuf) @@ -2196,6 +2197,7 @@ to find out how to use this." (rfc2047-encode-message-header) ;; Let the user do all of the above. (run-hooks 'message-header-hook)) + (message-encode-message-body) (message-cleanup-headers) (if (not (message-check-news-syntax)) (progn @@ -2489,7 +2491,7 @@ to find out how to use this." (y-or-n-p "Empty article. Really post? ")))) ;; Check for control characters. (message-check 'control-chars - (if (re-search-forward "[\000-\007\013\015-\037\200-\237]" nil t) + (if (re-search-forward "[\000-\007\013\015-\032\034-\037\200-\237]" nil t) (y-or-n-p "The article contains control characters. Really post? ") t)) @@ -4023,6 +4025,32 @@ regexp varstr." (setq idx (1+ idx))) string)) +;;; +;;; MIME functions +;;; + +(defun message-encode-message-body () + "Examine the message body, encode it, and add the requisite headers." + (when (featurep 'mule) + (save-excursion + (save-restriction + (message-narrow-to-headers) + (message-remove-header + "^Content-Transfer-Encoding:\\|^Content-Type:\\|^Mime-Version:" t) + (goto-char (point-max)) + (widen) + (narrow-to-region (point) (point-max)) + (let* ((charset (mm-encode-body)) + (encoding (mm-body-encoding))) + (when (consp charset) + (error "Can't encode messages with multiple charsets (yet)")) + (widen) + (message-narrow-to-headers) + (goto-char (point-max)) + (mm-insert-rfc822-headers + (or charset (mm-mule-charset-to-mime-charset 'ascii)) + encoding)))))) + (run-hooks 'message-load-hook) (provide 'message) diff --git a/lisp/mm-bodies.el b/lisp/mm-bodies.el new file mode 100644 index 0000000..5b33ac9 --- /dev/null +++ b/lisp/mm-bodies.el @@ -0,0 +1,101 @@ +;;; mm-bodies.el --- Functions for decoding MIME things +;; Copyright (C) 1998 Free Software Foundation, Inc. + +;; Author: Lars Magne Ingebrigtsen +;; MORIOKA Tomohiko +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;; Commentary: + +;;; Code: + +(require 'mm-util) + +(defun mm-encode-body () + "Encode a body. +Should be called narrowed to the body that is to be encoded. +If there is more than one non-ASCII MULE charset, then list of found +MULE charsets are returned. +If successful, the MIME charset is returned. +If no encoding was done, nil is returned." + (save-excursion + (goto-char (point-min)) + (let ((charsets + (delq 'ascii (find-charset-region (point-min) (point-max)))) + charset) + (cond + ;; No encoding. + ((null charsets) + nil) + ;; Too many charsets. + ((> (length charsets) 1) + charsets) + ;; We encode. + (t + (let ((mime-charset (mm-mule-charset-to-mime-charset (car charsets))) + start) + (when (not (mm-coding-system-equal + mime-charset buffer-file-coding-system)) + (while (not (eobp)) + (if (eq (char-charset (following-char)) 'ascii) + (when start + (mm-encode-coding-region start (point) mime-charset) + (setq start nil)) + (unless start + (setq start (point)))) + (forward-char 1)) + (when start + (mm-encode-coding-region start (point) mime-charset) + (setq start nil))) + mime-charset)))))) + +(defun mm-body-encoding () + "Return the encoding of the current buffer." + (if (null (delq 'ascii (find-charset-region (point-min) (point-max)))) + '7bit + '8bit)) + +;;; +;;; Functions for decoding +;;; + +(defun mm-decode-body (charset encoding) + "Decode the current article that has been encoded with ENCODING. +The characters in CHARSET should then be decoded." + (save-excursion + (when encoding + (cond + ((eq encoding 'quoted-printable) + (quoted-printable-decode-region (point-min) (point-max))) + ((eq encoding 'base64) + (base64-decode-region (point-min) (point-max))) + ((memq encoding '(7bit 8bit binary)) + ) + (t + (error "Can't decode encoding %s" encoding)))) + (when (featurep 'mule) + (let (mule-charset) + (when (and charset + (setq mule-charset (mm-charset-to-coding-system charset)) + (not (mm-coding-system-equal + buffer-file-coding-system mule-charset))) + (mm-decode-coding-region (point-min) (point-max) mule-charset)))))) + +(provide 'mm-bodies) + +;; mm-bodies.el ends here diff --git a/lisp/mm-util.el b/lisp/mm-util.el index 67018f4..48ad195 100644 --- a/lisp/mm-util.el +++ b/lisp/mm-util.el @@ -35,10 +35,25 @@ (fset 'mm-encode-coding-string (lambda (s a) s)))) (eval-and-compile + (if (fboundp 'encode-coding-region) + (fset 'mm-encode-coding-region 'encode-coding-region) + (fset 'mm-encode-coding-string 'ignore))) + +(eval-and-compile + (if (fboundp 'decode-coding-region) + (fset 'mm-decode-coding-region 'decode-coding-region) + (fset 'mm-decode-coding-string 'ignore))) + +(eval-and-compile (if (fboundp 'coding-system-list) (fset 'mm-coding-system-list 'coding-system-list) (fset 'mm-coding-system-list 'ignore))) +(eval-and-compile + (if (fboundp 'coding-system-equal) + (fset 'mm-coding-system-equal 'coding-system-equal) + (fset 'mm-coding-system-equal 'equal))) + (defvar mm-mime-mule-charset-alist '((us-ascii ascii) (iso-8859-1 latin-iso8859-1) @@ -139,6 +154,30 @@ used as the line break code type of the coding system." (setq idx (1+ idx))) string)) +(defun mm-enable-multibyte () + "Enable multibyte in the current buffer." + (when (fboundp 'set-buffer-multibyte) + (set-buffer-multibyte t))) + +(defun mm-insert-rfc822-headers (charset encoding) + "Insert text/plain headers with CHARSET and ENCODING." + (insert "MIME-Version: 1.0\n") + (insert "Content-Type: text/plain; charset=\"" + (downcase (symbol-name charset)) "\"\n") + (insert "Content-Transfer-Encoding: " + (downcase (symbol-name encoding)) "\n")) + +(defun mm-content-type-charset (header) + "Return the charset parameter from HEADER." + (when (string-match "charset *= *\"? *\\([-0-9a-zA-Z_]+\\)\"? *$" header) + (intern (downcase (match-string 1 header))))) + +(defun mm-read-coding-system (prompt) + "Prompt the user for a coding system." + (completing-read + prompt (mapcar (lambda (s) (list (symbol-name (car s)))) + mm-mime-mule-charset-alist))) + (provide 'mm-util) ;;; mm-util.el ends here diff --git a/lisp/nnheader.el b/lisp/nnheader.el index bbeba0f..98da659 100644 --- a/lisp/nnheader.el +++ b/lisp/nnheader.el @@ -399,7 +399,6 @@ the line could be found." (unless (gnus-buffer-live-p nntp-server-buffer) (setq nntp-server-buffer (get-buffer-create " *nntpd*"))) (set-buffer nntp-server-buffer) - (buffer-disable-undo (current-buffer)) (erase-buffer) (kill-all-local-variables) (setq case-fold-search t) ;Should ignore case. diff --git a/lisp/nnmail.el b/lisp/nnmail.el index 3124586..c4165d3 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -408,7 +408,7 @@ Example: :group 'nnmail-split :type '(repeat (cons :format "%v" symbol regexp))) -(defcustom nnmail-delete-incoming t +(defcustom nnmail-delete-incoming nil "*If non-nil, the mail backends will delete incoming files after splitting." :group 'nnmail-retrieve diff --git a/lisp/rfc2047.el b/lisp/rfc2047.el index 81241c2..a85f6a5 100644 --- a/lisp/rfc2047.el +++ b/lisp/rfc2047.el @@ -184,10 +184,7 @@ Should be called narrowed to the head of the message." (downcase (symbol-name encoding)) "?"))) (save-restriction (narrow-to-region b e) - (insert - (prog1 - (mm-encode-coding-string (buffer-string) mime-charset) - (delete-region (point-min) (point-max)))) + (mm-encode-coding-region b e mime-charset) (funcall (cdr (assq encoding rfc2047-encoding-function-alist)) (point-min) (point-max)) (goto-char (point-min)) @@ -249,6 +246,7 @@ Should be called narrowed to the head of the message." (defun rfc2047-decode-string (string) "Decode the quoted-printable-encoded STRING and return the results." (with-temp-buffer + (mm-enable-multibyte) (insert string) (inline (rfc2047-decode-region (point-min) (point-max))) @@ -269,7 +267,7 @@ Return WORD if not." word))) (defun rfc2047-decode (charset encoding string) - "Decode STRING as an encoded text. + "Decode STRING that uses CHARSET with ENCODING. Valid ENCODINGs are \"B\" and \"Q\". If your Emacs implementation can't decode CHARSET, it returns nil." (let ((cs (mm-charset-to-coding-system charset))) diff --git a/texi/ChangeLog b/texi/ChangeLog index 56fc5d3..14c5a15 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,6 +1,8 @@ 1998-08-31 11:46:57 Lars Magne Ingebrigtsen * gnus.texi (Mail Folders): Addition. + (Group Parameters): Addition. + (MIME Commands): New. 1998-08-27 07:29:17 Lars Magne Ingebrigtsen diff --git a/texi/gnus.texi b/texi/gnus.texi index c91ced7..7368230 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Pterodactyl Gnus 0.10 Manual +@settitle Pterodactyl Gnus 0.13 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -318,7 +318,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Pterodactyl Gnus 0.10 Manual +@title Pterodactyl Gnus 0.13 Manual @author by Lars Magne Ingebrigtsen @page @@ -354,7 +354,7 @@ can be gotten by any nefarious means you can think of---@sc{nntp}, local spool or your mbox file. All at the same time, if you want to push your luck. -This manual corresponds to Pterodactyl Gnus 0.10. +This manual corresponds to Pterodactyl Gnus 0.13. @end ifinfo @@ -2120,6 +2120,11 @@ are arbitrary comments on the group. They are currently ignored by Gnus, but provide a place for you to store information on particular groups. +@item charset +Elements that look like @code{(charset . iso-8859-1)} will make +@code{iso-8859-1} the default charset; that is, the charset that will be +used for all articles that do not specify a charset. + @item @var{(variable form)} You can use the group parameters to set variables local to the group you are entering. If you want to turn threading off in @samp{news.answers}, @@ -3193,6 +3198,7 @@ You can have as many summary buffers open as you wish. * Saving Articles:: Ways of customizing article saving. * Decoding Articles:: Gnus can treat series of (uu)encoded articles. * Article Treatment:: The article buffer can be mangled at will. +* MIME Commands:: Doing MIMEy things with the articles. * Article Commands:: Doing various things with the article buffer. * Summary Sorting:: Sorting the summary buffer in various ways. * Finding the Parent:: No child support? Get the parent. @@ -6759,6 +6765,31 @@ the regular expression @samp{^---*Forwarded article}, then it isn't a signature after all. +@node MIME Commands +@section MIME Commands +@cindex MIME decoding + +@table @kbd +@item W M w +@kindex W M w (Summary) +Decode RFC2047-encoded words in the article headers +(@code{gnus-article-decode-mime-words}). + +@item W M c +@kindex W M c (Summary) +Decode encoded article bodies as well as charsets +(@code{gnus-article-decode-charset}). + +This command looks in the @code{Content-Type} header to determine the +charset. If there is no such header in the article, you can give it a +prefix, which will prompt for the charset to decode as. In regional +groups where people post using some common encoding (but do not include +MIME headers), you can set the @code{charset} group/topic parameter to +the required charset (@pxref{Group Parameters}). + +@end table + + @node Article Commands @section Article Commands @@ -14358,7 +14389,8 @@ Do highlights in the group buffer. @item summary-highlight Do highlights in the summary buffer. @item article-highlight -Do highlights in the article buffer. +Do highlights according to @code{gnus-article-display-hook} in the +article buffer. @item highlight Turn on highlighting in all buffers. @item group-menu diff --git a/texi/message.texi b/texi/message.texi index 66c3ff3..2293858 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Pterodactyl Message 0.10 Manual +@settitle Pterodactyl Message 0.13 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -42,7 +42,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Pterodactyl Message 0.10 Manual +@title Pterodactyl Message 0.13 Manual @author by Lars Magne Ingebrigtsen @page @@ -83,7 +83,7 @@ Message mode buffers. * Key Index:: List of Message mode keys. @end menu -This manual corresponds to Pterodactyl Message 0.10. Message is +This manual corresponds to Pterodactyl Message 0.13. Message is distributed with the Gnus distribution bearing the same version number as this manual has. -- 1.7.10.4