From: yamaoka Date: Fri, 11 Sep 1998 12:24:43 +0000 (+0000) Subject: * lisp/gnus.el (gnus-version-number): Update to 6.10.018. X-Git-Tag: pgnus-ichikawa-199811302358~217 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7bf4a10a9b4d73d28b5802e748e519a9659de3c4;p=elisp%2Fgnus.git- * lisp/gnus.el (gnus-version-number): Update to 6.10.018. * Sync up with Pterodactyl Gnus 0.26. A snapshot is available from ftp://ftp.jpl.org/pub/tmp/semi-gnus-pgnus-ichikawa-19980911-3.tar.gz --- diff --git a/ChangeLog b/ChangeLog index 0107831..0f9762c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 1998-09-11 Katsumi Yamaoka + * lisp/gnus.el (gnus-version-number): Update to 6.10.018. + + * Sync up with Pterodactyl Gnus 0.26. + +1998-09-11 Katsumi Yamaoka + * lisp/gnus.el (gnus-version-number): Update to 6.10.017. * lisp/gnus-art.el (gnus-show-mime) (gnus-summary-toggle-mime): diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f088f06..5c71c81 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,49 @@ +Fri Sep 11 12:32:50 1998 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.26 is released. + +1998-09-11 08:25:33 Lars Magne Ingebrigtsen + + * mm-decode.el (mm-interactively-view-part): New function. + + * gnus-art.el (gnus-mime-view-part): New command. + + * mm-decode.el (mm-last-shell-command): New variable. + + * mailcap.el (mailcap-mime-info): Allow returning all matches. + + * mm-decode.el (mm-save-part): New function. + + * gnus-art.el (article-decode-charset): Protect against buggy + content-types. + (gnus-mime-pipe-part): New command. + (gnus-mime-save-part): New command. + (gnus-mime-button-map): New keymap. + (gnus-mime-button-line-format): New variable. + (gnus-insert-mime-button): New function. + (gnus-display-mime): Use it. + + * gnus-util.el (gnus-dd-mmm): Removed length spec. + + * mm-decode.el (mm-inline-text): Decode charsets. + + * gnus-art.el (gnus-article-save): Comment fix. + + * gnus-int.el (gnus-start-news-server): When in batch, don't + prompt. + + * gnus-cache.el (gnus-cache-possibly-enter-article): Don't + decode. + + * mm-decode.el (mm-inline-media-tests): Add audio. + (mm-inline-audio): New function. + +1998-09-11 08:19:22 Katsumi Yamaoka + + * gnus-art.el (article-make-date-line): Didn't work. + + * parse-time.el (parse-time-string): One too many nils. + Fri Sep 11 08:09:40 1998 Lars Magne Ingebrigtsen * gnus.el: Pterodactyl Gnus v0.25 is released. diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 6fb1f84..a9650d0 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -1485,7 +1485,7 @@ This format is defined by the `gnus-article-time-format' variable." (if (not gnus-default-article-saver) (error "No default saver is defined") ;; !!! Magic! The saving functions all save - ;; `gnus-original-article-buffer' (or so they think), but we + ;; `gnus-save-article-buffer' (or so they think), but we ;; bind that variable to our save-buffer. (set-buffer gnus-article-buffer) (let* ((gnus-save-article-buffer save-buffer) diff --git a/lisp/gnus-cache.el b/lisp/gnus-cache.el index 45acb20..c8fa58b 100644 --- a/lisp/gnus-cache.el +++ b/lisp/gnus-cache.el @@ -176,7 +176,8 @@ it's not cached." t ; The article already is saved. (save-excursion (set-buffer nntp-server-buffer) - (let ((gnus-use-cache nil)) + (let ((gnus-use-cache nil) + (gnus-article-decode-hook nil)) (gnus-request-article-this-buffer number group)) (when (> (buffer-size) 0) (let ((coding-system-for-write diff --git a/lisp/gnus-int.el b/lisp/gnus-int.el index 21ef876..5cf432a 100644 --- a/lisp/gnus-int.el +++ b/lisp/gnus-int.el @@ -91,6 +91,7 @@ If CONFIRM is non-nil, the user will be asked for an NNTP server." ;; gnus-open-server-hook might have opened it (gnus-server-opened gnus-select-method) (gnus-open-server gnus-select-method) + gnus-batch-mode (gnus-y-or-n-p (format "%s (%s) open error: '%s'. Continue? " diff --git a/lisp/gnus-mailcap.el b/lisp/gnus-mailcap.el index d401499..a38bee3 100644 --- a/lisp/gnus-mailcap.el +++ b/lisp/gnus-mailcap.el @@ -602,16 +602,16 @@ If FORCE, re-parse even if already parsed." (t nil)))) (defun mailcap-mime-info (string &optional request) - "Get the mime viewer command for HEADERLINE, return nil if none found. -Expects a complete content-type header line as its argument. This can -be simple like text/html, or complex like text/plain; charset=blah; foo=bar + "Get the MIME viewer command for STRING, return nil if none found. +Expects a complete content-type header line as its argument. Second argument REQUEST specifies what information to return. If it is nil or the empty string, the viewer (second field of the mailcap entry) will be returned. If it is a string, then the mailcap field corresponding to that string will be returned (print, description, whatever). If a number, then all the information for this specific -viewer is returned." +viewer is returned. If `all', then all possible viewers for +this type is returned." (let ( major ; Major encoding (text, etc) minor ; Minor encoding (html, etc) @@ -652,6 +652,8 @@ viewer is returned." (if (or (string= request "test") (string= request "viewer")) (mailcap-unescape-mime-test (cdr-safe (assoc request viewer)) info))) + ((eq request 'all) + passed) (t ;; MUST make a copy *sigh*, else we modify mailcap-mime-data (setq viewer (copy-tree viewer)) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 0aed40d..d74e249 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -4571,10 +4571,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 43facf4..2b54057 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -297,7 +297,7 @@ (defun gnus-dd-mmm (messy-date) "Return a string like DD-MMM from a big messy string." - (format-time-string "%2d-%b" (safe-date-to-time messy-date))) + (format-time-string "%d-%b" (safe-date-to-time messy-date))) (defmacro gnus-date-get-time (date) "Convert DATE string to Emacs time. diff --git a/lisp/gnus.el b/lisp/gnus.el index 29e6152..0b7f0d7 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.017" +(defconst gnus-version-number "6.10.018" "Version number for this version of gnus.") -(defconst gnus-original-version-number "0.25" +(defconst gnus-original-version-number "0.26" "Version number for this version of Gnus.") (defconst gnus-original-product-name "Pterodactyl Gnus" diff --git a/lisp/message.el b/lisp/message.el index 7996747..2efbd56 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -1,4 +1,3 @@ - ;;; message.el --- composing mail and news messages ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. @@ -2158,10 +2157,11 @@ the user from the mailer." (unless (bolp) (insert "\n")) ;; Delete all invisible text. - (when (text-property-any (point-min) (point-max) 'invisible t) - (put-text-property (point-min) (point-max) 'invisible nil) - (unless (yes-or-no-p "Invisible text found and made visible; continue posting?") - (error "Invisible text found and made visible")))) + (message-check 'invisible-text + (when (text-property-any (point-min) (point-max) 'invisible t) + (put-text-property (point-min) (point-max) 'invisible nil) + (unless (yes-or-no-p "Invisible text found and made visible; continue posting?") + (error "Invisible text found and made visible"))))) (defun message-add-action (action &rest types) "Add ACTION to be performed when doing an exit of type TYPES." @@ -2400,9 +2400,7 @@ to find out how to use this." (run-hooks 'message-header-hook)) (message-cleanup-headers) (if (not (message-check-news-syntax)) - (progn - ;;(message "Posting not performed") - nil) + nil (unwind-protect (save-excursion (set-buffer tembuf) diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index 48b0496..4c4d23f 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -35,9 +35,15 @@ ("image/tiff" mm-inline-image (featurep 'tiff)) ("image/xbm" mm-inline-image (eq (device-type) 'x)) ("image/xpm" mm-inline-image (featurep 'xpm)) + ("image/bmp" mm-inline-image (featurep 'bmp)) ("text/plain" mm-inline-text t) ("text/html" mm-inline-text (featurep 'w3)) - ) + ("audio/wav" mm-inline-audio + (and (or (featurep 'nas-sound) (featurep 'native-sound)) + (device-sound-enabled-p))) + ("audio/au" mm-inline-audio + (and (or (featurep 'nas-sound) (featurep 'native-sound)) + (device-sound-enabled-p)))) "Alist of media types/test that say whether the media types can be displayed inline.") (defvar mm-user-display-methods @@ -53,6 +59,7 @@ ;;; Internal variables. (defvar mm-dissection-list nil) +(defvar mm-last-shell-command "") (defun mm-dissect-buffer (&optional no-strict-mime) "Dissect the current buffer and return a list of MIME handles." @@ -267,14 +274,58 @@ This overrides entries in the mailcap file." ((equal type "plain") (let ((b (point))) (insert text) - (setcar - (nthcdr 3 handle) - `(lambda () - (let (buffer-read-only) - (delete-region ,(set-marker (make-marker) b) - ,(set-marker (make-marker) (point))))))))))) - - + (save-restriction + (narrow-to-region b (point)) + (let ((charset (drums-content-type-get (nth 1 handle) 'charset))) + (when charset + (mm-decode-body charset nil))) + (setcar + (nthcdr 3 handle) + `(lambda () + (let (buffer-read-only) + (delete-region ,(set-marker (make-marker) (point-min)) + ,(set-marker (make-marker) (point-max))))))))) + ))) + +(defun mm-inline-audio (handle) + (message "Not implemented")) + +;;; +;;; Functions for outputting parts +;;; + +(defun mm-save-part (handle) + "Write HANDLE to a file." + (let* ((name (drums-content-type-get (cadr handle) 'name)) + (file (read-file-name "Save MIME part to: " + (expand-file-name + (or name "") default-directory)))) + (mm-with-unibyte-buffer + (insert-buffer-substring (car handle)) + (mm-decode-content-transfer-encoding (nth 2 handle)) + (when (or (not (file-exists-p file)) + (yes-or-no-p (format "File %s already exists; overwrite? "))) + (write-region (point-min) (point-max) file))))) + +(defun mm-pipe-part (handle) + "Pipe HANDLE to a process." + (let* ((name (drums-content-type-get (cadr handle) 'name)) + (command + (read-string "Shell command on MIME part: " mm-last-shell-command))) + (mm-with-unibyte-buffer + (insert-buffer-substring (car handle)) + (mm-decode-content-transfer-encoding (nth 2 handle)) + (shell-command-on-region (point-min) (point-max) command nil)))) + +(defun mm-interactively-view-part (handle) + "Display HANDLE using METHOD." + (let* ((type (caadr handle)) + (methods + (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))) + (provide 'mm-decode) ;; mm-decode.el ends here diff --git a/lisp/mm-util.el b/lisp/mm-util.el index 01ef03c..bcba15b 100644 --- a/lisp/mm-util.el +++ b/lisp/mm-util.el @@ -201,6 +201,9 @@ See also `with-temp-file' and `with-output-to-string'." (and (buffer-name ,temp-buffer) (kill-buffer ,temp-buffer)) (setq-default enable-multibyte-characters ,multibyte)))))) +(put 'mm-with-unibyte-buffer 'lisp-indent-function 0) +(put 'mm-with-unibyte-buffer 'edebug-form-spec '(body)) + (provide 'mm-util) diff --git a/lisp/nnagent.el b/lisp/nnagent.el index 714a07a..e77eb72 100644 --- a/lisp/nnagent.el +++ b/lisp/nnagent.el @@ -110,7 +110,7 @@ (deffoo nnagent-request-post (&optional server) (gnus-agent-insert-meta-information 'news gnus-command-method) - (gnus-request-accept-article "nndraft:queue")) + (gnus-request-accept-article "nndraft:queue" nil t t)) ;; Use nnml functions for just about everything. (nnoo-import nnagent diff --git a/texi/ChangeLog b/texi/ChangeLog index 30a8b29..11bcbde 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,9 @@ +1998-09-11 08:52:50 Lars Magne Ingebrigtsen + + * gnus.texi (Group Score Commands): Fix. + (Saving Articles): Fix. + (Agent Expiry): Fix. + 1998-09-10 03:19:14 Lars Magne Ingebrigtsen * gnus.texi (Windows Configuration): Addition. diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 6333eb2..7fffd95 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus-ja -@settitle Semi-gnus 6.10.017 Manual +@settitle Semi-gnus 6.10.018 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -345,7 +345,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Semi-gnus 6.10.017 Manual +@title Semi-gnus 6.10.018 Manual @author by Lars Magne Ingebrigtsen @author by members of Semi-gnus mailing-list @@ -399,7 +399,7 @@ Semi-gnus は、大きな絵が入っていたりさまざまな形式を用いたりしているちょっ な言語圏を差別しません。ああ、クリンゴンの方は Unicode Next Generationを お待ちください。 -この説明書は Semi-gnus 6.10.017 に対応します。 +この説明書は Semi-gnus 6.10.018 に対応します。 @end ifinfo diff --git a/texi/gnus.texi b/texi/gnus.texi index f2e4f41..1ebbabf 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Semi-gnus 6.10.017 Manual +@settitle Semi-gnus 6.10.018 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.017 Manual +@title Semi-gnus 6.10.018 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.017. +This manual corresponds to Semi-gnus 6.10.018. @end ifinfo @@ -12041,16 +12041,16 @@ Agent (@code{gnus-agent-remove-server}). @node Agent Expiry @subsection Agent Expiry -@vindex gnus-agent-expiry-days -@findex gnus-agent-expiry -@kindex M-x gnus-agent-expiry +@vindex gnus-agent-expire-days +@findex gnus-agent-expire +@kindex M-x gnus-agent-expire @cindex Agent expiry @cindex Gnus Agent expiry @cindex expiry @code{nnagent} doesn't handle expiry. Instead, there's a special -@code{gnus-agent-expiry} command that will expire all read articles that -are older than @code{gnus-agent-expiry-days} days. It can be run +@code{gnus-agent-expire} command that will expire all read articles that +are older than @code{gnus-agent-expire-days} days. It can be run whenever you feel that you're running out of space. It's not particularly fast or efficient, and it's not a particularly good idea to interrupt it (with @kbd{C-g} or anything else) once you've started it. @@ -12468,7 +12468,7 @@ You can do scoring from the command line by saying something like: @findex gnus-batch-score @cindex batch scoring @example -$ emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score +$ emacs -batch -l ~/.emacs -l ~/.gnus.el -f gnus-batch-score @end example diff --git a/texi/message.texi b/texi/message.texi index ba7c0d9..a6a5188 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Pterodactyl Message 0.25 Manual +@settitle Pterodactyl Message 0.26 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.25 Manual +@title Pterodactyl Message 0.26 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.25. Message is +This manual corresponds to Pterodactyl Message 0.26. Message is distributed with the Gnus distribution bearing the same version number as this manual. @@ -957,6 +957,8 @@ Check whether the article has an @code{Approved} header, which is something only moderators should include. @item empty Check whether the article is empty. +@item invisible-text +Check whether there is any invisible text in the buffer. @item empty-headers Check whether any of the headers are empty. @item existing-newsgroups