From b426e91aa147782523fb56cedb1232df6c323fa5 Mon Sep 17 00:00:00 2001 From: ichikawa Date: Thu, 24 Sep 1998 14:23:44 +0000 Subject: [PATCH] Sync up with pgnus-0.32 --- ChangeLog | 6 +++ lisp/ChangeLog | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++ lisp/gnus-agent.el | 18 ++++---- lisp/gnus-art.el | 97 +++++++++++++++++++++++------------------ lisp/gnus-bcklg.el | 2 +- lisp/gnus-ems.el | 1 + lisp/gnus-group.el | 4 +- lisp/gnus-int.el | 7 ++- lisp/gnus-kill.el | 8 ++-- lisp/gnus-mailcap.el | 29 +++++++++---- lisp/gnus-salt.el | 7 +-- lisp/gnus-score.el | 6 +-- lisp/gnus-soup.el | 4 +- lisp/gnus-srvr.el | 6 +-- lisp/gnus-start.el | 8 ++-- lisp/gnus-sum.el | 8 ++-- lisp/gnus-util.el | 55 +++++++++++++++++++++++ lisp/gnus-uu.el | 4 +- lisp/gnus-xmas.el | 2 + lisp/gnus.el | 7 ++- lisp/lpath.el | 12 +++-- lisp/message.el | 46 +++++++++++--------- lisp/mm-bodies.el | 7 ++- lisp/mm-decode.el | 38 +++++++++++++--- lisp/mm-util.el | 7 ++- lisp/nnbabyl.el | 2 +- lisp/nndoc.el | 1 + lisp/nneething.el | 2 +- lisp/nnfolder.el | 2 +- lisp/nnheader.el | 2 +- lisp/nnmail.el | 4 +- lisp/nnmbox.el | 6 ++- lisp/nnml.el | 2 +- lisp/nnsoup.el | 2 +- lisp/rfc2047.el | 6 ++- texi/gnus.texi | 21 +++++++-- texi/message.texi | 6 +-- 37 files changed, 419 insertions(+), 144 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2b76db3..f6e31b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +1998-09-24 Tatsuya Ichikawa + + * lisp/gnus.el (gnus-version-number): Update to 6.10.021. + + * Sync up with Pterodactyl Gnus 0.31. + 1998-09-23 Katsumi Yamaoka * lisp/message.el (message-make-user-agent): Add extended version diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7a63038..0b45042 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,121 @@ +Thu Sep 24 02:29:57 1998 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.32 is released. + +1998-09-24 00:27:11 Lars Magne Ingebrigtsen + + * gnus-kill.el (gnus-batch-score): Protect against errors. + + * gnus-art.el: Protect against broken headers. + + * mm-decode.el (mm-display-external): Respect needsterm. + (mm-display-external): Create buffer for external commands. + +1998-09-23 22:04:05 Lars Magne Ingebrigtsen + + * mailcap.el (mailcap-mime-info): Return the proper viewer. + + * mm-decode.el (mm-display-external): Use file name. + +1998-09-22 Markus Rost + + * gnus-util.el (gnus-output-to-rmail): adjust to + `rmail-output-to-rmail-file' + +1998-09-23 20:07:00 Lars Magne Ingebrigtsen + + * gnus-util.el (gnus-output-to-rmail): Reinstated function. + + * gnus-sum.el (gnus-select-newsgroup): Set global variables before + headers. + + * gnus-art.el (article-decode-charset): Fold case. + +1998-09-17 15:49:10 Simon Josefsson + + * mailcap.el (mailcap-save-binary-file): Goto point-min. + +1998-09-23 19:48:52 Aaron M. Ucko + + * nnmail.el (nnmail-check-duplication): Enter into duplicate list + after being stored. + +Tue Sep 15 16:15:16 1998 Kurt Swanson + + * gnus-salt.el (gnus-pick-setup-message): Return from whence ye + come. + +1998-09-23 19:42:03 Lars Magne Ingebrigtsen + + * gnus-xmas.el (wid-edit): Required. + + * gnus-ems.el (gnus-widget-button-keymap): New variable. + +Sun Sep 20 00:27:55 1998 ZHU Shenghuo + + * gnus-art.el (gnus-mime-inline-part): remove part if necessary + +1998-09-23 19:30:52 Matt Armstrong + + * gnus-art.el (article-decode-charset): Narrow to the correct + region. + + * mm-bodies.el: Fix autoload. + +1998-09-22 18:35:12 Lee Willis + + * gnus-art.el (gnus-mime-button-line-format): Doc fix. + +1998-09-22 14:53:35 Lars Magne Ingebrigtsen + + * rfc2047.el (rfc2047-decode): Use rfc2047-default-charset. + +1998-09-19 13:58:35 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-insert-mime-button): Specify keymap. + (gnus-article-add-button): Ditto. + + * gnus-sum.el (gnus-summary-insert-pseudos): Use mm. + + * gnus-art.el (gnus-article-prepare-display): Make article mode. + (gnus-article-prepare-display): Bind url-standalone-mode. + + * mm-decode.el (mm-remove-part): Also delete directory. + (mm-display-external): Create a private sub-dir. + + * mailcap.el (mailcap-binary-suffixes): New variable. + (mailcap-command-p): Use it. + +1998-09-16 10:38:21 Lars Magne Ingebrigtsen + + * nnmbox.el (nnmbox-request-group): Change server. + (nnmbox-possibly-change-newsgroup): Enable multibyte. + + * message.el (message-encode-message-body): Don't stomp MIME + headers. + + * gnus-sum.el (gnus-summary-edit-article-done): Don't encode + unless useful. + (gnus-summary-exit): Check for a live article buffer. + (gnus-summary-exit-no-update): Ditto. + + * gnus-int.el (gnus-request-replace-article): Accept no-encode + param. + + * gnus-sum.el (gnus-article-decoded-p): New variable. + + * mm-decode.el (mm-display-external): Use no-conv. + + * rfc2047.el (rfc2047-q-encode-region): Bound properly. + (rfc2047-charset-encoding-alist): Use B encoding for koi8-r. + + * gnus-art.el (gnus-article-mode-map): Bind button2 to + mouse-click. + +1998-09-15 14:38:02 Lars Magne Ingebrigtsen + + * gnus-agent.el (gnus-agent-expire): Protect against nil infos. + Mon Sep 14 18:55:38 1998 Lars Magne Ingebrigtsen * gnus.el: Pterodactyl Gnus v0.31 is released. diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index 4a7ca17..e9ef2a0 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -1085,7 +1085,7 @@ The following commands are available: (gnus-set-default-directory) (setq mode-line-process nil) (use-local-map gnus-category-mode-map) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (setq truncate-lines t) (setq buffer-read-only t) (gnus-run-hooks 'gnus-category-mode-hook)) @@ -1433,13 +1433,15 @@ The following commands are available: ;; Maybe everything has been expired from `gnus-article-alist' ;; and so the above marking as read could not be conducted, ;; or there are expired article within the range of the alist. - (if expired - (when (or (not (caar gnus-agent-article-alist)) - (> (car expired) (caar gnus-agent-article-alist))) - (setcar (nthcdr 2 info) - (gnus-add-to-range - (nth 2 info) - (nreverse expired))))) + (when (and info + expired + (or (not (caar gnus-agent-article-alist)) + (> (car expired) + (caar gnus-agent-article-alist)))) + (setcar (nthcdr 2 info) + (gnus-add-to-range + (nth 2 info) + (nreverse expired)))) (gnus-dribble-enter (concat "(gnus-group-set-info '" (gnus-prin1-to-string info) diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 521cd03..78ce1cf 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -983,6 +983,7 @@ If PROMPT (the prefix), prompt for a coding system to use." (save-restriction (message-narrow-to-head) (let* ((inhibit-point-motion-hooks t) + (case-fold-search t) (ct (message-fetch-field "Content-Type" t)) (cte (message-fetch-field "Content-Transfer-Encoding" t)) (ctl (and ct (condition-case () @@ -999,6 +1000,7 @@ If PROMPT (the prefix), prompt for a coding system to use." buffer-read-only) (goto-char (point-max)) (widen) + (forward-line 1) (narrow-to-region (point) (point-max)) (when (or (not ct) (equal (car ctl) "text/plain")) @@ -1893,6 +1895,8 @@ If variable `gnus-use-long-file-name' is non-nil, it is "\C-c\C-i" gnus-info-find-node "\C-c\C-b" gnus-bug + gnus-mouse-2 'widget-button-click + "\C-d" gnus-article-read-summary-keys "\M-*" gnus-article-read-summary-keys "\M-#" gnus-article-read-summary-keys @@ -1963,7 +1967,7 @@ commands: (make-local-variable 'gnus-button-marker-list) (make-local-variable 'gnus-article-current-summary) (gnus-set-default-directory) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (setq buffer-read-only t) (set-syntax-table gnus-article-mode-syntax-table) (gnus-run-hooks 'gnus-article-mode-hook)) @@ -1993,7 +1997,7 @@ commands: (if (get-buffer name) (save-excursion (set-buffer name) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (setq buffer-read-only t) (unless (eq major-mode 'gnus-article-mode) (gnus-article-mode)) @@ -2190,7 +2194,7 @@ If ALL-HEADERS is non-nil, no headers are hidden." "The following specs can be used: %t The MIME type %n The `name' parameter -%n The description, if any +%d The description, if any %l The length of the encoded part") (defvar gnus-mime-button-line-format-alist @@ -2226,7 +2230,8 @@ If ALL-HEADERS is non-nil, no headers are hidden." (defun gnus-mime-view-part () "Interactively choose a view method for the MIME part under point." (interactive) - (let ((data (get-text-property (point) 'gnus-data))) + (let ((data (get-text-property (point) 'gnus-data)) + (url-standalone-mode (not gnus-plugged))) (mm-interactively-view-part data))) (defun gnus-mime-copy-part () @@ -2243,28 +2248,30 @@ If ALL-HEADERS is non-nil, no headers are hidden." (interactive) (let* ((data (get-text-property (point) 'gnus-data)) (contents (mm-get-part data)) + (url-standalone-mode (not gnus-plugged)) (b (point)) buffer-read-only) - (forward-line 2) - (mm-insert-inline data contents) - (goto-char b))) + (if (mm-handle-undisplayer data) + (mm-remove-part data) + (forward-line 2) + (mm-insert-inline data contents) + (goto-char b)))) (defun gnus-insert-mime-button (handle) (let ((gnus-tmp-name (mail-content-type-get (mm-handle-type handle) 'name)) (gnus-tmp-type (car (mm-handle-type handle))) (gnus-tmp-description (mm-handle-description handle)) - (gnus-tmp-length (save-excursion - (set-buffer (mm-handle-buffer handle)) - (buffer-size))) + (gnus-tmp-length (with-temp-buffer (mm-handle-buffer handle) + (buffer-size))) b e) (setq gnus-tmp-name - (if gnus-tmp-name - (concat " (" gnus-tmp-name ")") - "")) + (if gnus-tmp-name + (concat " (" gnus-tmp-name ")") + "")) (setq gnus-tmp-description - (if gnus-tmp-description - (concat " (" gnus-tmp-description ")") - "")) + (if gnus-tmp-description + (concat " (" gnus-tmp-description ")") + "")) (setq b (point)) (gnus-eval-format gnus-mime-button-line-format gnus-mime-button-line-format-alist @@ -2273,11 +2280,13 @@ If ALL-HEADERS is non-nil, no headers are hidden." gnus-callback mm-display-part gnus-data ,handle)) (setq e (point)) - (widget-convert-button 'link b e :action 'gnus-widget-press-button))) + (widget-convert-button 'link from to :action 'gnus-widget-press-button + :button-keymap gnus-widget-button-keymap))) (defun gnus-widget-press-button (elems el) (goto-char (widget-get elems :from)) - (gnus-article-press-button)) + (let ((url-standalone-mode (not gnus-plugged))) + (gnus-article-press-button))) (defun gnus-display-mime () "Insert MIME buttons in the buffer." @@ -2285,28 +2294,30 @@ If ALL-HEADERS is non-nil, no headers are hidden." (save-restriction (mail-narrow-to-head) (when (setq ct (mail-fetch-field "content-type")) - (setq ctl (mail-header-parse-content-type ct)))) - (let* ((handles (mm-dissect-buffer)) - handle name type b e) - (mapcar 'mm-destroy-part gnus-article-mime-handles) - (setq gnus-article-mime-handles handles) - (when handles - (goto-char (point-min)) - (search-forward "\n\n" nil t) - (delete-region (point) (point-max)) - (if (not (equal (car ctl) "multipart/alternative")) - (while (setq handle (pop handles)) - (gnus-insert-mime-button handle) - (insert "\n\n") - (when (and (mm-automatic-display-p (car (mm-handle-type handle))) - (or (not (mm-handle-disposition handle)) - (equal (car (mm-handle-disposition handle)) - "inline"))) - (forward-line -2) - (mm-display-part handle t) - (goto-char (point-max)))) - ;; Here we have multipart/alternative - (gnus-mime-display-alternative handles)))))) + (setq ctl (condition-case () + (mail-header-parse-content-type ct) (error nil))) + (let* ((handles (mm-dissect-buffer)) + handle name type b e) + (mapcar 'mm-destroy-part gnus-article-mime-handles) + (setq gnus-article-mime-handles handles) + (when handles + (goto-char (point-min)) + (search-forward "\n\n" nil t) + (delete-region (point) (point-max)) + (if (not (equal (car ctl) "multipart/alternative")) + (while (setq handle (pop handles)) + (gnus-insert-mime-button handle) + (insert "\n\n") + (when (and (mm-automatic-display-p + (car (mm-handle-type handle))) + (or (not (mm-handle-disposition handle)) + (equal (car (mm-handle-disposition handle)) + "inline"))) + (forward-line -2) + (mm-display-part handle t) + (goto-char (point-max)))) + ;; Here we have multipart/alternative + (gnus-mime-display-alternative handles)))))))) (defun gnus-mime-display-alternative (handles &optional preferred) (let* ((preferred (mm-preferred-alternative handles preferred)) @@ -2737,7 +2748,7 @@ If given a prefix, show the hidden text instead." (if (get-buffer gnus-original-article-buffer) (set-buffer gnus-original-article-buffer) (set-buffer (gnus-get-buffer-create gnus-original-article-buffer)) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (setq major-mode 'gnus-original-article-mode) (setq buffer-read-only t)) (let (buffer-read-only) @@ -2746,7 +2757,9 @@ If given a prefix, show the hidden text instead." (setq gnus-original-article (cons group article))) ;; Decode charsets. - (run-hooks 'gnus-article-decode-hook)) + (run-hooks 'gnus-article-decode-hook) + ;; Mark article as decoded or not. + (setq gnus-article-decoded-p gnus-article-decode-hook)) ;; Update sparse articles. (when (and do-update-line diff --git a/lisp/gnus-bcklg.el b/lisp/gnus-bcklg.el index d370673..51c6e7f 100644 --- a/lisp/gnus-bcklg.el +++ b/lisp/gnus-bcklg.el @@ -42,7 +42,7 @@ (or (get-buffer gnus-backlog-buffer) (save-excursion (set-buffer (gnus-get-buffer-create gnus-backlog-buffer)) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (setq buffer-read-only t) (get-buffer gnus-backlog-buffer)))) diff --git a/lisp/gnus-ems.el b/lisp/gnus-ems.el index 5970c3b..68c4716 100644 --- a/lisp/gnus-ems.el +++ b/lisp/gnus-ems.el @@ -35,6 +35,7 @@ (defvar gnus-mouse-2 [mouse-2]) (defvar gnus-down-mouse-2 [down-mouse-2]) +(defvar gnus-widget-button-keymap nil) (defvar gnus-mode-line-modified (if (or gnus-xemacs (< emacs-major-version 20)) diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index 51ca68c..1ec6d40 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -764,7 +764,7 @@ The following commands are available: (gnus-group-set-mode-line) (setq mode-line-process nil) (use-local-map gnus-group-mode-map) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (setq truncate-lines t) (setq buffer-read-only t) (gnus-set-default-directory) @@ -3064,7 +3064,7 @@ to use." ;; Print out all the groups. (save-excursion (pop-to-buffer "*Gnus Help*") - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (erase-buffer) (setq groups (sort groups 'string<)) (while groups diff --git a/lisp/gnus-int.el b/lisp/gnus-int.el index 5cf432a..48ea531 100644 --- a/lisp/gnus-int.el +++ b/lisp/gnus-int.el @@ -442,7 +442,12 @@ If GROUP is nil, all groups on GNUS-COMMAND-METHOD are scanned." (cadr gnus-command-method) last))) -(defun gnus-request-replace-article (article group buffer) +(defun gnus-request-replace-article (article group buffer &optional no-encode) + (unless no-encode + (save-restriction + (message-narrow-to-head) + (mail-encode-encoded-word-buffer)) + (message-encode-message-body)) (let ((func (car (gnus-group-name-to-method group)))) (funcall (intern (format "%s-request-replace-article" func)) article (gnus-group-real-name group) buffer))) diff --git a/lisp/gnus-kill.el b/lisp/gnus-kill.el index 02ee66e..2e3b064 100644 --- a/lisp/gnus-kill.el +++ b/lisp/gnus-kill.el @@ -429,7 +429,7 @@ Returns the number of articles marked as read." (defun gnus-score-insert-help (string alist idx) (save-excursion (pop-to-buffer "*Score Help*") - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (erase-buffer) (insert string ":\n\n") (while alist @@ -566,7 +566,7 @@ COMMAND must be a lisp expression or a string representing a key sequence." (concat "\n" (gnus-prin1-to-string object)) (save-excursion (set-buffer (gnus-get-buffer-create "*Gnus PP*")) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (erase-buffer) (insert (format "\n(%S %S\n '(" (nth 0 object) (nth 1 object))) (let ((klist (cadr (nth 2 object))) @@ -702,7 +702,9 @@ Usage: emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score" (and (car entry) (or (eq (car entry) t) (not (zerop (car entry)))))) - (gnus-summary-read-group group nil t nil t) + (condition-case () + (gnus-summary-read-group group nil t nil t) + (error nil)) (when (eq (current-buffer) (get-buffer gnus-summary-buffer)) (gnus-summary-exit)))) ;; Exit Emacs. diff --git a/lisp/gnus-mailcap.el b/lisp/gnus-mailcap.el index 0cf68b2..c5249f3 100644 --- a/lisp/gnus-mailcap.el +++ b/lisp/gnus-mailcap.el @@ -271,6 +271,7 @@ not.") (expand-file-name fname mailcap-temporary-directory)))) (defun mailcap-save-binary-file () + (goto-char (point-min)) (let ((file (read-file-name "Filename to save as: " (or mailcap-download-directory "~/"))) @@ -299,7 +300,7 @@ not.") (defun mailcap-parse-mailcaps (&optional path force) "Parse out all the mailcaps specified in a unix-style path string PATH. If FORCE, re-parse even if already parsed." - (interactive) + (interactive (list nil t)) (when (or (not mailcap-parsed-p) force) (cond @@ -631,7 +632,7 @@ this type is returned." (if (mailcap-viewer-passes-test (car viewers) info) (setq passed (cons (car viewers) passed))) (setq viewers (cdr viewers))) - (setq passed (sort (nreverse passed) 'mailcap-viewer-lessp)) + (setq passed (sort passed 'mailcap-viewer-lessp)) (setq viewer (car passed)))) (when (and (stringp (cdr (assq 'viewer viewer))) passed) @@ -820,16 +821,26 @@ correspond to.") (setq extn (concat "." extn))) (cdr (assoc (downcase extn) mailcap-mime-extensions))) +(defvar mailcap-binary-suffixes + (if (memq system-type '(ms-dos windows-nt)) + '(".exe" ".com" ".bat" ".cmd" ".btm" "") + '(""))) + (defun mailcap-command-p (command) - "Say whether COMMAND is in the exec path." + "Say whether COMMAND is in the exec path. +The path of COMMAND will be returned iff COMMAND is a command." (let ((path (if (file-name-absolute-p command) '(nil) exec-path)) - file) + file dir) (catch 'found - (while path - (when (and (file-executable-p - (setq file (expand-file-name command (pop path)))) - (not (file-directory-p file))) - (throw 'found file)))))) + (while (setq dir (pop path)) + (let ((suffixes mailcap-binary-suffixes)) + (while suffixes + (when (and (file-executable-p + (setq file (expand-file-name + (concat command (pop suffixes)) + dir))) + (not (file-directory-p file))) + (throw 'found file)))))))) (provide 'mailcap) diff --git a/lisp/gnus-salt.el b/lisp/gnus-salt.el index 9a73698..68d0f3c 100644 --- a/lisp/gnus-salt.el +++ b/lisp/gnus-salt.el @@ -131,7 +131,8 @@ It accepts the same format specs that `gnus-summary-line-format' does." (set-buffer gnus-summary-buffer) gnus-pick-mode)) (message-add-action - '(gnus-configure-windows 'pick t) 'send 'exit 'postpone 'kill))) + '(gnus-configure-windows ,gnus-current-window-configuration t) + 'send 'exit 'postpone 'kill))) (defvar gnus-pick-line-number 1) (defun gnus-pick-line-number () @@ -468,7 +469,7 @@ Two predefined functions are available: (setq mode-name "Tree") (setq major-mode 'gnus-tree-mode) (use-local-map gnus-tree-mode-map) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (setq buffer-read-only t) (setq truncate-lines t) (save-excursion @@ -969,7 +970,7 @@ The following commands are available: (setq mode-name "Gnus Carpal") (setq mode-line-process nil) (use-local-map gnus-carpal-mode-map) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (setq buffer-read-only t) (make-local-variable 'gnus-carpal-attached-buffer) (gnus-run-hooks 'gnus-carpal-mode-hook)) diff --git a/lisp/gnus-score.el b/lisp/gnus-score.el index 23c041c..0ab923b 100644 --- a/lisp/gnus-score.el +++ b/lisp/gnus-score.el @@ -672,7 +672,7 @@ used as score." (setq gnus-score-help-winconf (current-window-configuration)) (save-excursion (set-buffer (gnus-get-buffer-create "*Score Help*")) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (delete-windows-on (current-buffer)) (erase-buffer) (insert string ":\n\n") @@ -1406,7 +1406,7 @@ SCORE is the score to add." (save-excursion (set-buffer (gnus-get-buffer-create "*Headers*")) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (when (gnus-buffer-live-p gnus-summary-buffer) (message-clone-locals gnus-summary-buffer)) @@ -2507,7 +2507,7 @@ GROUP using BNews sys file syntax." ofiles not-match regexp) (save-excursion (set-buffer (gnus-get-buffer-create "*gnus score files*")) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) ;; Go through all score file names and create regexp with them ;; as the source. (while sfiles diff --git a/lisp/gnus-soup.el b/lisp/gnus-soup.el index 39236e5..7b7b50e 100644 --- a/lisp/gnus-soup.el +++ b/lisp/gnus-soup.el @@ -374,7 +374,7 @@ though the two last may be nil if they are missing." (when (file-exists-p file) (save-excursion (set-buffer (nnheader-find-file-noselect file 'force)) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (goto-char (point-min)) (while (not (eobp)) (push (vector (gnus-soup-field) @@ -397,7 +397,7 @@ file. The vector contain three strings, [prefix name encoding]." (let (replies) (save-excursion (set-buffer (nnheader-find-file-noselect file)) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (goto-char (point-min)) (while (not (eobp)) (push (vector (gnus-soup-field) (gnus-soup-field) diff --git a/lisp/gnus-srvr.el b/lisp/gnus-srvr.el index 21abf17..849a2da 100644 --- a/lisp/gnus-srvr.el +++ b/lisp/gnus-srvr.el @@ -161,7 +161,7 @@ The following commands are available: (gnus-set-default-directory) (setq mode-line-process nil) (use-local-map gnus-server-mode-map) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (setq truncate-lines t) (setq buffer-read-only t) (gnus-run-hooks 'gnus-server-mode-hook)) @@ -575,7 +575,7 @@ The following commands are available: (when gnus-carpal (gnus-carpal-setup-buffer 'browse)) (gnus-configure-windows 'browse) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (let ((buffer-read-only nil)) (erase-buffer)) (gnus-browse-mode) @@ -636,7 +636,7 @@ buffer. (setq mode-name "Browse Server") (setq mode-line-process nil) (use-local-map gnus-browse-mode-map) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (setq truncate-lines t) (gnus-set-default-directory) (setq buffer-read-only t) diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index 3d21773..da6ea7f 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -783,7 +783,7 @@ prompt the user for the name of an NNTP server to use." (erase-buffer) (setq buffer-file-name dribble-file) (auto-save-mode t) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (bury-buffer (current-buffer)) (set-buffer-modified-p nil) (let ((auto (make-auto-save-file-name)) @@ -1875,7 +1875,7 @@ If FORCE is non-nil, the .newsrc file is read." (save-excursion (gnus-message 5 "Reading %s..." newsrc-file) (set-buffer (nnheader-find-file-noselect newsrc-file)) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (gnus-newsrc-to-gnus-format) (kill-buffer (current-buffer)) (gnus-message 5 "Reading %s...done" newsrc-file))) @@ -2272,7 +2272,7 @@ If FORCE is non-nil, the .newsrc file is read." (setq buffer-file-name (concat gnus-current-startup-file ".eld")) (setq default-directory (file-name-directory buffer-file-name)) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (erase-buffer) (gnus-message 5 "Saving %s.eld..." gnus-current-startup-file) (gnus-gnus-to-quick-newsrc-format) @@ -2336,7 +2336,7 @@ If FORCE is non-nil, the .newsrc file is read." info ranges range method) (setq buffer-file-name gnus-current-startup-file) (setq default-directory (file-name-directory buffer-file-name)) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (erase-buffer) ;; Write options. (when gnus-newsrc-options diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 28e87da..041782e 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -1896,7 +1896,7 @@ The following commands are available: (setq mode-name "Summary") (make-local-variable 'minor-mode-alist) (use-local-map gnus-summary-mode-map) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (setq buffer-read-only t) ;Disable modification (setq truncate-lines t) (setq selective-display t) @@ -3940,6 +3940,7 @@ If SELECT-ARTICLES, only select those articles from GROUP." ;; Init the dependencies hash table. (setq gnus-newsgroup-dependencies (gnus-make-hashtable (length articles))) + (gnus-set-global-variables) ;; Retrieve the headers and read them in. (gnus-message 5 "Fetching headers for %s..." gnus-newsgroup-name) (setq gnus-newsgroup-headers @@ -7386,7 +7387,8 @@ groups." (if (and (not read-only) (not (gnus-request-replace-article (cdr gnus-article-current) (car gnus-article-current) - (current-buffer)))) + (current-buffer) + (not gnus-article-decoded-p)))) (error "Couldn't replace article") ;; Update the summary buffer. (if (and references @@ -8737,7 +8739,7 @@ save those articles instead." (lambda (f) (if (equal f " ") f - (gnus-quote-arg-for-sh-or-csh f))) + (mm-quote-arg f))) files " "))))) (setq ps (cdr ps))))) (if (and gnus-view-pseudos (not not-view)) diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index 2b54057..3e80289 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -644,6 +644,61 @@ with potentially long computations." ;;; Functions for saving to babyl/mail files. +(defvar rmail-default-rmail-file) +(defun gnus-output-to-rmail (filename &optional ask) + "Append the current article to an Rmail file named FILENAME." + (require 'rmail) + ;; Most of these codes are borrowed from rmailout.el. + (setq filename (expand-file-name filename)) + (setq rmail-default-rmail-file filename) + (let ((artbuf (current-buffer)) + (tmpbuf (gnus-get-buffer-create " *Gnus-output*"))) + (save-excursion + (or (get-file-buffer filename) + (file-exists-p filename) + (if (or (not ask) + (gnus-yes-or-no-p + (concat "\"" filename "\" does not exist, create it? "))) + (let ((file-buffer (create-file-buffer filename))) + (save-excursion + (set-buffer file-buffer) + (rmail-insert-rmail-file-header) + (let ((require-final-newline nil)) + (gnus-write-buffer filename))) + (kill-buffer file-buffer)) + (error "Output file does not exist"))) + (set-buffer tmpbuf) + (erase-buffer) + (insert-buffer-substring artbuf) + (gnus-convert-article-to-rmail) + ;; Decide whether to append to a file or to an Emacs buffer. + (let ((outbuf (get-file-buffer filename))) + (if (not outbuf) + (append-to-file (point-min) (point-max) filename) + ;; File has been visited, in buffer OUTBUF. + (set-buffer outbuf) + (let ((buffer-read-only nil) + (msg (and (boundp 'rmail-current-message) + (symbol-value 'rmail-current-message)))) + ;; If MSG is non-nil, buffer is in RMAIL mode. + (when msg + (widen) + (narrow-to-region (point-max) (point-max))) + (insert-buffer-substring tmpbuf) + (when msg + (goto-char (point-min)) + (widen) + (search-backward "\n\^_") + (narrow-to-region (point) (point-max)) + (rmail-count-new-messages t) + (when (rmail-summary-exists) + (rmail-select-summary + (rmail-update-summary))) + (rmail-count-new-messages t) + (rmail-show-message msg)) + (save-buffer))))) + (kill-buffer tmpbuf))) + (defun gnus-output-to-mail (filename &optional ask) "Append the current article to a mail file named FILENAME." (setq filename (expand-file-name filename)) diff --git a/lisp/gnus-uu.el b/lisp/gnus-uu.el index 19929f3..0cc00a6 100644 --- a/lisp/gnus-uu.el +++ b/lisp/gnus-uu.el @@ -1024,7 +1024,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time." ;; finally just replaces the next to last number with "[0-9]+". (save-excursion (set-buffer (gnus-get-buffer-create gnus-uu-output-buffer-name)) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (erase-buffer) (insert (regexp-quote string)) @@ -1124,7 +1124,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time." string) (save-excursion (set-buffer (gnus-get-buffer-create gnus-uu-output-buffer-name)) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (while string-list (erase-buffer) (insert (caar string-list)) diff --git a/lisp/gnus-xmas.el b/lisp/gnus-xmas.el index ac5c95d..8ff098e 100644 --- a/lisp/gnus-xmas.el +++ b/lisp/gnus-xmas.el @@ -28,6 +28,7 @@ (require 'text-props) (defvar menu-bar-mode (featurep 'menubar)) (require 'messagexmas) +(require 'wid-edit) (defgroup gnus-xmas nil "XEmacsoid support for Gnus" @@ -400,6 +401,7 @@ call it with the value of the `gnus-data' text property." (defun gnus-xmas-define () (setq gnus-mouse-2 [button2]) + (setq gnus-widget-button-keymap widget-button-keymap) (unless (memq 'underline (face-list)) (and (fboundp 'make-face) diff --git a/lisp/gnus.el b/lisp/gnus.el index 2e3c1b3..e021f52 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -253,10 +253,10 @@ is restarted, and sometimes reloaded." (defconst gnus-product-name "T-gnus" "Product name of this version of gnus.") -(defconst gnus-version-number "6.10.020" +(defconst gnus-version-number "6.10.021" "Version number for this version of gnus.") -(defconst gnus-original-version-number "0.31" +(defconst gnus-original-version-number "0.32" "Version number for this version of Gnus.") (defconst gnus-original-product-name "Pterodactyl Gnus" @@ -1664,8 +1664,7 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.") gnus-uu-decode-unshar-and-save-view gnus-uu-decode-save-view gnus-uu-decode-binhex-view gnus-uu-unmark-thread gnus-uu-mark-over) - ("gnus-uu" gnus-uu-delete-work-dir gnus-quote-arg-for-sh-or-csh - gnus-uu-unmark-thread) + ("gnus-uu" gnus-uu-delete-work-dir gnus-uu-unmark-thread) ("gnus-msg" (gnus-summary-send-map keymap) gnus-article-mail gnus-copy-article-buffer gnus-extended-version) ("gnus-msg" :interactive t diff --git a/lisp/lpath.el b/lisp/lpath.el index ca8dc7a..8fa9e28 100644 --- a/lisp/lpath.el +++ b/lisp/lpath.el @@ -42,7 +42,10 @@ find-charset-region base64-decode-string base64-encode-string find-coding-systems-region get-charset-property - coding-system-get w3-region)) + coding-system-get w3-region + rmail-summary-exists rmail-select-summary + rmail-update-summary + )) (maybe-bind '(global-face-data mark-active transient-mark-mode mouse-selection-click-count mouse-selection-click-count-buffer buffer-display-table @@ -72,9 +75,10 @@ url-view-url w3-prepare-buffer char-int annotationp delete-annotation make-image-specifier - make-annotation base64-decode-string base64-encode-string - w3-do-setup w3-region))) - + make-annotation base64-decode-string base64-encode-region + w3-do-setup w3-region + rmail-summary-exists rmail-select-summary rmail-update-summary + ))) (setq load-path (cons "." load-path)) (require 'custom) diff --git a/lisp/message.el b/lisp/message.el index 24fbac0..f414d1f 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -2419,7 +2419,7 @@ to find out how to use this." (unwind-protect (save-excursion (set-buffer tembuf) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (erase-buffer) (insert-buffer message-encoding-buffer) ;; Remove some headers. @@ -4426,7 +4426,7 @@ Do a `tab-to-tab-stop' if not in those headers." (message "No matching groups") (save-selected-window (pop-to-buffer "*Completions*") - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (let ((buffer-read-only nil)) (erase-buffer) (let ((standard-output (current-buffer))) @@ -4552,27 +4552,31 @@ regexp varstr." (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-or-head) - (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) + (let (old-headers) + (save-excursion + (save-restriction (message-narrow-to-headers-or-head) + (unless (setq old-headers (message-fetch-field "mime-version")) + (message-remove-header + "^Content-Transfer-Encoding:\\|^Content-Type:\\|^Mime-Version:" t)) (goto-char (point-max)) - (setq charset (or charset (mm-mule-charset-to-mime-charset 'ascii))) - ;; We don't insert MIME headers if they only say the default. - (unless (and (eq charset 'us-ascii) - (eq encoding '7bit)) - (mm-insert-rfc822-headers charset encoding)) - (mm-encode-body)))))) + (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-or-head) + (goto-char (point-max)) + (setq charset (or charset + (mm-mule-charset-to-mime-charset 'ascii))) + ;; We don't insert MIME headers if they only say the default. + (when (and (not old-headers) + (not (and (eq charset 'us-ascii) + (eq encoding '7bit)))) + (mm-insert-rfc822-headers charset encoding)) + (mm-encode-body))))))) (run-hooks 'message-load-hook) diff --git a/lisp/mm-bodies.el b/lisp/mm-bodies.el index a2699f5..135b974 100644 --- a/lisp/mm-bodies.el +++ b/lisp/mm-bodies.el @@ -25,7 +25,7 @@ ;;; Code: (eval-and-compile - (or (fboundp 'base64-encode-region) + (or (fboundp 'base64-decode-region) (autoload 'base64-decode-region "base64" nil t))) (require 'mm-util) (require 'rfc2047) @@ -120,9 +120,8 @@ The characters in CHARSET should then be decoded." (when (and charset (setq mule-charset (mm-charset-to-coding-system charset)) buffer-file-coding-system - ;;(not (mm-coding-system-equal - ;; buffer-file-coding-system mule-charset)) - ) + (or (not (eq mule-charset 'ascii)) + (setq mule-charset rfc2047-default-charset))) (mm-decode-coding-region (point-min) (point-max) mule-charset)))))) (provide 'mm-bodies) diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index 027a46a..487b63e 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -192,16 +192,37 @@ (if (functionp method) (let ((cur (current-buffer))) (switch-to-buffer (generate-new-buffer "*mm*")) + (buffer-disable-undo) + (mm-set-buffer-file-coding-system 'no-conversion) (insert-buffer-substring cur) (funcall method) (mm-handle-set-undisplayer handle (current-buffer))) - (let* ((file (make-temp-name (expand-file-name "emm." mm-tmp-directory))) - process) + (let* ((dir (make-temp-name (expand-file-name "emm." mm-tmp-directory))) + (filename (mail-content-type-get + (mm-handle-disposition handle) 'filename)) + (needsterm (assoc "needsterm" + (mailcap-mime-info + (car (mm-handle-type handle)) t))) + process file) + ;; We create a private sub-directory where we store our files. + (make-directory dir) + (set-file-modes dir 448) + (if filename + (setq file (expand-file-name (or filename "mm.") dir)) + (setq file (make-temp-name (expand-file-name "mm." dir)))) (write-region (point-min) (point-max) file nil 'nomesg nil 'no-conversion) (setq process - (start-process "*display*" nil shell-file-name - "-c" (format method file))) + (if needsterm + (start-process "*display*" nil + "xterm" + "-e" (format method file)) + (switch-to-buffer (generate-new-buffer "*mm*")) + (buffer-disable-undo) + (mm-set-buffer-file-coding-system 'no-conversion) + (start-process "*display*" (current-buffer) + shell-file-name + "-c" (format method file)))) (mm-handle-set-undisplayer handle (cons file process)) (message "Displaying %s..." (format method file)))))) @@ -223,6 +244,9 @@ (delete-file (car object)) (error nil)) (condition-case () + (delete-directory (file-name-directory (car object))) + (error nil)) + (condition-case () (kill-process (cdr object)) (error nil))) ((bufferp object) @@ -305,6 +329,8 @@ This overrides entries in the mailcap file." (mm-decode-content-transfer-encoding (mm-handle-encoding handle)) (buffer-string))) +(defvar mm-default-directory nil) + (defun mm-save-part (handle) "Write HANDLE to a file." (let* ((name (mail-content-type-get (mm-handle-type handle) 'name)) @@ -316,7 +342,9 @@ This overrides entries in the mailcap file." (setq file (read-file-name "Save MIME part to: " (expand-file-name - (or filename name "") default-directory))) + (or filename name "") + (or mm-default-directory default-directory)))) + (setq mm-default-directory (file-name-directory file)) (mm-with-unibyte-buffer (insert-buffer-substring (mm-handle-buffer handle)) (mm-decode-content-transfer-encoding (mm-handle-encoding handle)) diff --git a/lisp/mm-util.el b/lisp/mm-util.el index c8e21b3..fecab8e 100644 --- a/lisp/mm-util.el +++ b/lisp/mm-util.el @@ -84,6 +84,7 @@ (device-type . ignore) (coding-system-equal . equal) (annotationp . ignore) + (set-buffer-file-coding-system . ignore) (make-char . (lambda (charset int) (int-to-char int))) @@ -96,8 +97,7 @@ (defvar mm-charset-coding-system-alist (let ((rest - '((us-ascii . iso-8859-1) - (gb2312 . cn-gb-2312) + '((gb2312 . cn-gb-2312) (iso-2022-jp-2 . iso-2022-7bit-ss2) (x-ctext . ctext))) (systems (mm-coding-system-list)) @@ -139,6 +139,9 @@ used as the line break code type of the coding system." ((and (null (mm-coding-system-list)) (memq charset mm-known-charsets)) charset) + ;; ascii + ((eq charset 'us-ascii) + 'ascii) ;; Check to see whether we can handle this charset. ((memq charset (mm-coding-system-list)) charset) diff --git a/lisp/nnbabyl.el b/lisp/nnbabyl.el index def1e0c..5615341 100644 --- a/lisp/nnbabyl.el +++ b/lisp/nnbabyl.el @@ -574,7 +574,7 @@ (cons (cons (point-min) (point-max)) major-mode)) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (widen) (setq buffer-read-only nil) (fundamental-mode) diff --git a/lisp/nndoc.el b/lisp/nndoc.el index f417484..221b77c 100644 --- a/lisp/nndoc.el +++ b/lisp/nndoc.el @@ -290,6 +290,7 @@ from the document.") (setq nndoc-dissection-alist nil) (save-excursion (set-buffer nndoc-current-buffer) + (mm-enable-multibyte) (erase-buffer) (if (stringp nndoc-address) (nnheader-insert-file-contents nndoc-address) diff --git a/lisp/nneething.el b/lisp/nneething.el index 6aaa529..700dad8 100644 --- a/lisp/nneething.el +++ b/lisp/nneething.el @@ -314,7 +314,7 @@ If this variable is nil, no files will be excluded.") (save-excursion (set-buffer (get-buffer-create nneething-work-buffer)) (setq case-fold-search nil) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (erase-buffer) (cond ((not (file-exists-p file)) diff --git a/lisp/nnfolder.el b/lisp/nnfolder.el index 6613193..587a378 100644 --- a/lisp/nnfolder.el +++ b/lisp/nnfolder.el @@ -704,7 +704,7 @@ deleted. Point is left where the deleted region was." (minid (lsh -1 -1)) maxid start end newscantime buffer-read-only) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (setq maxid (cdr active)) (goto-char (point-min)) diff --git a/lisp/nnheader.el b/lisp/nnheader.el index 978893f..222f090 100644 --- a/lisp/nnheader.el +++ b/lisp/nnheader.el @@ -492,7 +492,7 @@ the line could be found." (defun nnheader-set-temp-buffer (name &optional noerase) "Set-buffer to an empty (possibly new) buffer called NAME with undo disabled." (set-buffer (get-buffer-create name)) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (unless noerase (erase-buffer)) (current-buffer)) diff --git a/lisp/nnmail.el b/lisp/nnmail.el index a75cd3d..d72b638 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -1507,9 +1507,9 @@ See the documentation for the variable `nnmail-split-fancy' for documentation." ;; Let the backend save the article (or not). (cond ((not duplication) - (nnmail-cache-insert message-id) (funcall func (setq group-art - (nreverse (nnmail-article-group artnum-func))))) + (nreverse (nnmail-article-group artnum-func)))) + (nnmail-cache-insert message-id)) ((eq action 'delete) (setq group-art nil)) ((eq action 'warn) diff --git a/lisp/nnmbox.el b/lisp/nnmbox.el index b0f3c21..c38193a 100644 --- a/lisp/nnmbox.el +++ b/lisp/nnmbox.el @@ -166,6 +166,7 @@ (nnmbox-article-group-number))))))) (deffoo nnmbox-request-group (group &optional server dont-check) + (nnmbox-possibly-change-newsgroup nil server) (let ((active (cadr (assoc group nnmbox-group-alist)))) (cond ((or (null active) @@ -426,7 +427,8 @@ (set-buffer (setq nnmbox-mbox-buffer (nnheader-find-file-noselect nnmbox-mbox-file nil 'raw))) - (buffer-disable-undo (current-buffer)))) + (mm-enable-multibyte) + (buffer-disable-undo))) (when (not nnmbox-group-alist) (nnmail-activate 'nnmbox)) (if newsgroup @@ -513,7 +515,7 @@ (set-buffer (setq nnmbox-mbox-buffer (nnheader-find-file-noselect nnmbox-mbox-file nil 'raw))) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) ;; Go through the group alist and compare against ;; the mbox file. diff --git a/lisp/nnml.el b/lisp/nnml.el index a8f1e48..dd1c312 100644 --- a/lisp/nnml.el +++ b/lisp/nnml.el @@ -771,7 +771,7 @@ all. This may very well take some time.") (save-excursion ;; Init the nov buffer. (set-buffer nov-buffer) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (erase-buffer) (set-buffer nntp-server-buffer) ;; Delete the old NOV file. diff --git a/lisp/nnsoup.el b/lisp/nnsoup.el index 253557e..4931808 100644 --- a/lisp/nnsoup.el +++ b/lisp/nnsoup.el @@ -530,7 +530,7 @@ backend for the messages.") (when (file-exists-p (concat nnsoup-directory file)) (save-excursion ; Load the file. (set-buffer (get-buffer-create buffer-name)) - (buffer-disable-undo (current-buffer)) + (buffer-disable-undo) (push (cons nnsoup-current-group (current-buffer)) nnsoup-buffers) (nnheader-insert-file-contents (concat nnsoup-directory file)) (current-buffer)))))) diff --git a/lisp/rfc2047.el b/lisp/rfc2047.el index 8878a78..ea36d60 100644 --- a/lisp/rfc2047.el +++ b/lisp/rfc2047.el @@ -59,7 +59,7 @@ The values can be: (iso-8859-3 . Q) (iso-8859-4 . Q) (iso-8859-5 . B) - (koi8-r . Q) + (koi8-r . B) (iso-8859-7 . Q) (iso-8859-8 . Q) (iso-8859-9 . Q) @@ -232,7 +232,7 @@ Should be called narrowed to the head of the message." (goto-char (point-min)) (while (not (eobp)) (goto-char (min (point-max) (+ 64 (point)))) - (search-backward "=" nil (- (point) 2)) + (search-backward "=" (- (point) 2) t) (unless (eobp) (insert "\n"))))))) @@ -304,6 +304,8 @@ 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))) (when cs + (when (eq cs 'ascii) + (setq cs rfc2047-default-charset)) (mm-decode-coding-string (cond ((equal "B" encoding) diff --git a/texi/gnus.texi b/texi/gnus.texi index abc4dbd..abb72ac 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Semi-gnus 6.10.020 Manual +@settitle Semi-gnus 6.10.021 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 Semi-gnus 6.10.020 Manual +@title Semi-gnus 6.10.021 Manual @author by Lars Magne Ingebrigtsen @page @@ -361,7 +361,7 @@ internationalization/localization and multiscript features based on MULE API. So Semi-gnus does not discriminate various language communities. Oh, if you are a Klingon, please wait Unicode Next Generation. -This manual corresponds to Semi-gnus 6.10.020. +This manual corresponds to Semi-gnus 6.10.021. @end ifinfo @@ -13087,6 +13087,12 @@ If @code{gnus-adaptive-word-minimum} is set to a number, the adaptive word scoring process will never bring down the score of an article to below this number. The default is @code{nil}. +@vindex gnus-adative-word-no-group-words +If @code{gnus-adative-word-no-group-words} is set to t, gnus won't +adaptively word score any of the words in the group name. Useful for +groups like comp.editors.emacs, where most of the subject lines contain +the word "emacs". + After using this scheme for a while, it might be nice to write a @code{gnus-psychoanalyze-user} command to go through the rules and see what words you like and what words you don't like. Or perhaps not. @@ -16112,6 +16118,7 @@ Luc Van Eycken, Sam Falkner, Nelson Jose dos Santos Ferreira, Sigbjorn Finne, +Paul Fisher, Decklin Foster, Gary D. Foster, Paul Franklin, @@ -16196,6 +16203,7 @@ Jason Rumney, Wolfgang Rupprecht, Jay Sachs, Dewey M. Sasser, +Conrad Sauerwald, Loren Schall, Dan Schmidt, Ralph Schleicher, @@ -18122,6 +18130,13 @@ exits the group. The jingle is only played on the second invocation of Gnus. @item +gnus-ignored-mime-types to avoid seeing buttons for Vcards and the +like. + +@item +Boucing articles should do MIME. + +@item Solve the halting problem. @c TODO diff --git a/texi/message.texi b/texi/message.texi index a048867..ec14254 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Pterodactyl Message 0.31 Manual +@settitle Pterodactyl Message 0.32 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.31 Manual +@title Pterodactyl Message 0.32 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.31. Message is +This manual corresponds to Pterodactyl Message 0.32. Message is distributed with the Gnus distribution bearing the same version number as this manual. -- 1.7.10.4