From: ichikawa Date: Fri, 25 Sep 1998 12:08:19 +0000 (+0000) Subject: Importing pgnus-0.33 X-Git-Tag: pgnus-0_33~1 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a414e3562d72f3f0c677acf65003ca339171dcc2;p=elisp%2Fgnus.git- Importing pgnus-0.33 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0b45042..0555050 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,49 @@ +Thu Sep 24 20:28:31 1998 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.33 is released. + +1998-09-24 18:47:31 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-insert-mime-button): Get buffer size. + + * mm-decode.el (mm-display-external): Don't switch for externals. + (mm-dissect-multipart): Don't include end-sep. + + * mm-util.el (mm-get-coding-system-list): New function. + (mm-coding-system-list): New variable. + +Thu Sep 24 02:08:10 1998 ZHU Shenghuo + + * gnus-cus.el (gnus-group-parameters): Add charset as a parameter + +Thu Sep 24 02:05:48 1998 ZHU Shenghuo + + * gnus-cus.el (gnus-group-customize): Use variable as cons not as + group + +Thu Sep 24 01:41:03 1998 ZHU Shenghuo + + * base64.el (base64-run-command-on-region): External base64 + decoder do not use coding system + +Thu Sep 24 01:39:44 1998 ZHU Shenghuo + + * mm-decode.el (mm-interactively-view-part): Typo. + +Thu Sep 24 01:37:30 1998 ZHU Shenghuo + + * mm-decode.el (mm-dissect-multipart): Display last part when the + article has no close-delimiter + +Thu Sep 24 01:28:54 1998 ZHU Shenghuo + + * mm-decode.el (mm-dissect-buffer): Display parts which have no + content-type. + +Thu Sep 24 01:23:57 1998 ZHU Shenghuo + + * gnus-art.el (gnus-display-mime): Typo. + Thu Sep 24 02:29:57 1998 Lars Magne Ingebrigtsen * gnus.el: Pterodactyl Gnus v0.32 is released. diff --git a/lisp/base64.el b/lisp/base64.el index 093673e..c874b22 100644 --- a/lisp/base64.el +++ b/lisp/base64.el @@ -75,7 +75,7 @@ base64-encoder-program.") (defun base64-run-command-on-region (start end output-buffer command &rest arg-list) - (let ((tempfile nil) status errstring) + (let ((tempfile nil) status errstring default-process-coding-system) (unwind-protect (progn (setq tempfile (make-temp-name "base64")) diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index 0fe6d68..b4654fd 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -92,7 +92,7 @@ If nil, only read articles will be expired." (defvar gnus-agent-spam-hashtb nil) (defvar gnus-agent-file-name nil) (defvar gnus-agent-send-mail-function nil) -(defvar gnus-agent-article-file-coding-system 'no-conversion) +(defvar gnus-agent-file-coding-system 'no-conversion) (defconst gnus-agent-scoreable-headers (list @@ -524,7 +524,7 @@ the actual number of articles toggled is returned." (let* ((gnus-command-method method) (file (gnus-agent-lib-file "active"))) (gnus-make-directory (file-name-directory file)) - (let ((coding-system-for-write gnus-agent-article-file-coding-system)) + (let ((coding-system-for-write gnus-agent-file-coding-system)) (write-region (point-min) (point-max) file nil 'silent)) (when (file-exists-p (gnus-agent-lib-file "groups")) (delete-file (gnus-agent-lib-file "groups")))))) @@ -533,9 +533,10 @@ the actual number of articles toggled is returned." (let* ((gnus-command-method method) (file (gnus-agent-lib-file "groups"))) (gnus-make-directory (file-name-directory file)) - (write-region (point-min) (point-max) file nil 'silent)) + (let ((coding-system-for-write gnus-agent-file-coding-system)) + (write-region (point-min) (point-max) file nil 'silent)) (when (file-exists-p (gnus-agent-lib-file "active")) - (delete-file (gnus-agent-lib-file "active")))) + (delete-file (gnus-agent-lib-file "active"))))) (defun gnus-agent-save-group-info (method group active) (when (gnus-agent-method-p method) @@ -554,7 +555,7 @@ the actual number of articles toggled is returned." (concat "^" (regexp-quote group) " ") nil t) (gnus-delete-line)) (insert group " " (number-to-string (cdr active)) " " - (number-to-string (car active)) "\n")) + (number-to-string (car active)) " y\n")) (when (re-search-forward (concat (regexp-quote group) " ") nil t) (gnus-delete-line)) (insert-buffer-substring nntp-server-buffer)))))) @@ -604,8 +605,9 @@ the actual number of articles toggled is returned." (save-excursion (set-buffer gnus-agent-current-history) (gnus-make-directory (file-name-directory gnus-agent-file-name)) - (write-region (1+ (point-min)) (point-max) - gnus-agent-file-name nil 'silent))) + (let ((coding-system-for-write gnus-agent-file-coding-system)) + (write-region (1+ (point-min)) (point-max) + gnus-agent-file-name nil 'silent)))) (defun gnus-agent-close-history () (when (gnus-buffer-live-p gnus-agent-current-history) @@ -703,7 +705,7 @@ the actual number of articles toggled is returned." (setq id "No-Message-ID-in-article") (setq id (buffer-substring (match-beginning 1) (match-end 1)))) (let ((coding-system-for-write - gnus-agent-article-file-coding-system)) + gnus-agent-file-coding-system)) (write-region (point-min) (point-max) (concat dir (number-to-string (caar pos))) nil 'silent)) @@ -746,10 +748,12 @@ the actual number of articles toggled is returned." (save-excursion (while gnus-agent-buffer-alist (set-buffer (cdar gnus-agent-buffer-alist)) - (write-region (point-min) (point-max) - (gnus-agent-article-name ".overview" - (caar gnus-agent-buffer-alist)) - nil 'silent) + (let ((coding-system-for-write + gnus-agent-file-coding-system)) + (write-region (point-min) (point-max) + (gnus-agent-article-name ".overview" + (caar gnus-agent-buffer-alist)) + nil 'silent)) (pop gnus-agent-buffer-alist)) (while gnus-agent-group-alist (with-temp-file (caar gnus-agent-group-alist) @@ -780,7 +784,9 @@ the actual number of articles toggled is returned." (gnus-agent-braid-nov group articles file)) (gnus-make-directory (nnheader-translate-file-chars (file-name-directory file))) - (write-region (point-min) (point-max) file nil 'silent) + (let ((coding-system-for-write + gnus-agent-file-coding-system)) + (write-region (point-min) (point-max) file nil 'silent)) (gnus-agent-save-alist group articles nil) (gnus-agent-enter-history "last-header-fetched-for-session" @@ -1386,7 +1392,9 @@ The following commands are available: ;; Schedule the history line for nuking. (push (cdr elem) histories))) (gnus-make-directory (file-name-directory nov-file)) - (write-region (point-min) (point-max) nov-file nil 'silent) + (let ((coding-system-for-write + gnus-agent-file-coding-system)) + (write-region (point-min) (point-max) nov-file nil 'silent)) ;; Delete the unwanted entries in the alist. (setq gnus-agent-article-alist (sort gnus-agent-article-alist 'car-less-than-car)) diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 3fd48a1..6d1bc02 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -2219,8 +2219,9 @@ If ALL-HEADERS is non-nil, no headers are hidden." (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 (with-temp-buffer (mm-handle-buffer handle) - (buffer-size))) + (gnus-tmp-length (save-excursion + (set-buffer (mm-handle-buffer handle)) + (buffer-size))) b e) (setq gnus-tmp-name (if gnus-tmp-name @@ -2253,29 +2254,29 @@ If ALL-HEADERS is non-nil, no headers are hidden." (mail-narrow-to-head) (when (setq ct (mail-fetch-field "content-type")) (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)))))))) + (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)) diff --git a/lisp/gnus-cus.el b/lisp/gnus-cus.el index 025273b..501d27d 100644 --- a/lisp/gnus-cus.el +++ b/lisp/gnus-cus.el @@ -159,7 +159,11 @@ An arbitrary comment on the group.") (visible (const :tag "Permanently visible" t) "\ Always display this group, even when there are no unread articles -in it..")) +in it..") + + (charset (string :tag "Charset") "\ +The default charset to use in the group.") +) "Alist of valid group parameters. Each entry has the form (NAME TYPE DOC), where NAME is the parameter @@ -232,7 +236,7 @@ like. If you want to hear a beep when you enter a group, you could put something like `(dummy-variable (ding))' in the parameters of that group. `dummy-variable' will be set to the result of the `(ding)' form, but who cares?" - (group :value (nil nil) + (cons :format "%v" :value (nil . nil) (symbol :tag "Variable") (sexp :tag "Value"))) diff --git a/lisp/gnus-draft.el b/lisp/gnus-draft.el index 2c87c31..a05245b 100644 --- a/lisp/gnus-draft.el +++ b/lisp/gnus-draft.el @@ -95,6 +95,8 @@ (let ((article (gnus-summary-article-number))) (gnus-summary-mark-as-read article gnus-canceled-mark) (gnus-draft-setup article gnus-newsgroup-name) + (set-buffer-modified-p t) + (save-buffer) (let ((gnus-verbose-backends nil)) (gnus-request-expire-articles (list article) gnus-newsgroup-name t)) (push diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 3823afe..23d1fed 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -7108,7 +7108,7 @@ re-spool using this method." (defcustom gnus-summary-respool-default-method nil "Default method for respooling an article. If nil, use to the current newsgroup method." - :type `(choice (gnus-select-method :value (nnml "")) + :type '(choice (gnus-select-method :value (nnml "")) (const nil)) :group 'gnus-summary-mail) diff --git a/lisp/gnus.el b/lisp/gnus.el index 1322cd0..bb0f4b9 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.32" +(defconst gnus-version-number "0.33" "Version number for this version of Gnus.") (defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number) @@ -1659,7 +1659,10 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.") gnus-summary-mail-forward gnus-summary-mail-other-window gnus-summary-resend-message gnus-summary-resend-bounced-mail gnus-summary-wide-reply gnus-summary-followup-to-mail - gnus-summary-followup-to-mail-with-original gnus-bug) + gnus-summary-followup-to-mail-with-original gnus-bug + gnus-summary-wide-reply-with-original + gnus-summary-post-forward gnus-summary-wide-reply-with-original + gnus-summary-post-forward) ("gnus-picon" :interactive t gnus-article-display-picons gnus-group-display-picons gnus-picons-article-display-x-face gnus-picons-display-x-face) diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index 487b63e..7090855 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -102,7 +102,8 @@ cd (mail-fetch-field "content-disposition") description (mail-fetch-field "content-description") id (mail-fetch-field "content-id")))) - (when ctl + (if (not ctl) + (mm-dissect-singlepart '("text/plain") nil no-strict-mime nil nil) (setq type (split-string (car ctl) "/")) (setq subtype (cadr type) type (pop type)) @@ -140,9 +141,15 @@ (defun mm-dissect-multipart (ctl) (goto-char (point-min)) - (let ((boundary (concat "\n--" (mail-content-type-get ctl 'boundary))) - start parts end) - (while (search-forward boundary nil t) + (let* ((boundary (concat "\n--" (mail-content-type-get ctl 'boundary))) + (close-delimiter (concat boundary "--[ \t]*$")) + start parts + (end (save-excursion + (goto-char (point-max)) + (if (re-search-backward close-delimiter nil t) + (match-beginning 0) + (point-max))))) + (while (search-forward boundary end t) (goto-char (match-beginning 0)) (when start (save-excursion @@ -151,6 +158,11 @@ (setq parts (nconc (mm-dissect-buffer t) parts))))) (forward-line 2) (setq start (point))) + (when start + (save-excursion + (save-restriction + (narrow-to-region start end) + (setq parts (nconc (mm-dissect-buffer t) parts))))) (nreverse parts))) (defun mm-copy-to-buffer () @@ -217,10 +229,7 @@ (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) + (start-process "*display*" (generate-new-buffer "*mm*") shell-file-name "-c" (format method file)))) (mm-handle-set-undisplayer handle (cons file process)) @@ -367,7 +376,7 @@ This overrides entries in the mailcap file." "Display HANDLE using METHOD." (let* ((type (car (mm-handle-type handle))) (methods - (mapcar (lambda (i) (list (cdr (assoc "viewer" i)))) + (mapcar (lambda (i) (list (cdr (assoc 'viewer i)))) (mailcap-mime-info type 'all))) (method (completing-read "Viewer: " methods))) (mm-display-external (copy-sequence handle) method))) diff --git a/lisp/mm-util.el b/lisp/mm-util.el index fecab8e..1db5d60 100644 --- a/lisp/mm-util.el +++ b/lisp/mm-util.el @@ -78,8 +78,8 @@ '((decode-coding-string . (lambda (s a) s)) (encode-coding-string . (lambda (s a) s)) (encode-coding-region . ignore) - (decode-coding-region . ignore) (coding-system-list . ignore) + (decode-coding-region . ignore) (char-int . identity) (device-type . ignore) (coding-system-equal . equal) @@ -95,12 +95,18 @@ prompt (mapcar (lambda (s) (list (symbol-name (car s)))) mm-mime-mule-charset-alist))))))) +(defvar mm-coding-system-list nil) +(defun mm-get-coding-system-list () + "Get the coding system list." + (or mm-coding-system-list + (setq mm-coding-system-list (mm-coding-system-list)))) + (defvar mm-charset-coding-system-alist (let ((rest '((gb2312 . cn-gb-2312) (iso-2022-jp-2 . iso-2022-7bit-ss2) (x-ctext . ctext))) - (systems (mm-coding-system-list)) + (systems (mm-get-coding-system-list)) dest) (while rest (let ((pair (car rest))) @@ -110,7 +116,6 @@ dest) "Charset/coding system alist.") - (defun mm-mule-charset-to-mime-charset (charset) "Return the MIME charset corresponding to MULE CHARSET." (let ((alist mm-mime-mule-charset-alist) @@ -136,14 +141,14 @@ used as the line break code type of the coding system." (setq charset (intern (format "%s-%s" charset lbt)))) (cond ;; Running in a non-MULE environment. - ((and (null (mm-coding-system-list)) + ((and (null (mm-get-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)) + ((memq charset (mm-get-coding-system-list)) charset) ;; Nope. (t diff --git a/texi/gnus.texi b/texi/gnus.texi index bc86265..affbed6 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Pterodactyl Gnus 0.32 Manual +@settitle Pterodactyl Gnus 0.33 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.32 Manual +@title Pterodactyl Gnus 0.33 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.32. +This manual corresponds to Pterodactyl Gnus 0.33. @end ifinfo @@ -13100,11 +13100,11 @@ 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". +@vindex gnus-adaptive-word-no-group-words +If @code{gnus-adaptive-word-no-group-words} is set to @code{t}, gnus +won't adaptively word score any of the words in the group name. Useful +for groups like @samp{comp.editors.emacs}, where most of the subject +lines contain the word @samp{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 @@ -18147,7 +18147,7 @@ gnus-ignored-mime-types to avoid seeing buttons for Vcards and the like. @item -Boucing articles should do MIME. +Bouncing articles should do MIME. @item Solve the halting problem. diff --git a/texi/message.texi b/texi/message.texi index 5d0f178..a0dc854 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Pterodactyl Message 0.32 Manual +@settitle Pterodactyl Message 0.33 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.32 Manual +@title Pterodactyl Message 0.33 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.32. Message is +This manual corresponds to Pterodactyl Message 0.33. Message is distributed with the Gnus distribution bearing the same version number as this manual.