From: shuhei-k Date: Wed, 24 Jun 1998 18:26:07 +0000 (+0000) Subject: Synch up with Chao-gnus 6.7.1. X-Git-Tag: semi-mule-199811302358~59 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6cc8214d53ee41b2fbfc0407b301e804024ca0d4;p=elisp%2Fgnus.git- Synch up with Chao-gnus 6.7.1. --- diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 507a8c3..6a4782e 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -3034,7 +3034,7 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns nil otherwise." (defsubst gnus-nov-parse-line (number dependencies &optional force-new) (let ((eol (gnus-point-at-eol)) (buffer (current-buffer)) - header rawtext) + header rawtext decoded) ;; overview: [num subject from date id refs chars lines misc] (unwind-protect diff --git a/lisp/gnus-uu.el b/lisp/gnus-uu.el index 7b28e53..3a0bf91 100644 --- a/lisp/gnus-uu.el +++ b/lisp/gnus-uu.el @@ -54,8 +54,8 @@ ;; Default viewing action rules (defcustom gnus-uu-default-view-rules - '(("\\.te?xt$\\|\\.doc$\\|read.*me\\|\\.c?$\\|\\.h$\\|\\.bat$\\|\\.asm$\\|makefile" "cat %s | sed s/\r//g") - ("\\.pas$" "cat %s | sed s/\r//g") + '(("\\.te?xt$\\|\\.doc$\\|read.*me\\|\\.c?$\\|\\.h$\\|\\.bat$\\|\\.asm$\\|makefile" "cat %s | sed 's/\r$//'") + ("\\.pas$" "cat %s | sed 's/\r$//'") ("\\.[1-9]$" "groff -mandoc -Tascii %s | sed s/\b.//g") ("\\.\\(jpe?g\\|gif\\|tiff?\\|p[pgb]m\\|xwd\\|xbm\\|pcx\\)$" "xv") ("\\.tga$" "tgatoppm %s | xv -") diff --git a/lisp/gnus.el b/lisp/gnus.el index 58d2c56..3f1cdc0 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -250,11 +250,11 @@ is restarted, and sometimes reloaded." :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) -(defconst gnus-version-number "6.5.0" +(defconst gnus-version-number "6.7.1" "Version number for this version of gnus.") (defconst gnus-version - (format "Semi-gnus %s (based on Gnus 5.6.11; for SEMI 1.7)" + (format "Chao-gnus %s (based on Gnus 5.6.13; for SEMI 1.8)" gnus-version-number) "Version string for this version of gnus.") diff --git a/lisp/message.el b/lisp/message.el index c966dd5..fa713c0 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -33,7 +33,7 @@ (eval-when-compile (require 'cl) - (require 'smtp) + (require 'std10) ) (require 'mailheader) @@ -293,7 +293,7 @@ nil means let mailer mail back a message to report errors." :type 'boolean) (defcustom message-generate-new-buffers t - "*Non-nil means that a new message buffer will be created whenever `mail-setup' is called. + "*Non-nil means that a new message buffer will be created whenever `message-setup' is called. If this is a function, call that function with three parameters: The type, the to address and the group name. (Any of these may be nil.) The function should return the new buffer name." @@ -1006,6 +1006,7 @@ The cdr of ech entry is a function for applying the face to a region.") (Lines) (Expires) (Message-ID) + ;; (References . message-shorten-references) (References . message-fill-header) (User-Agent)) "Alist used for formatting headers.") @@ -2241,8 +2242,8 @@ to find out how to use this." (message-narrow-to-headers) (setq recipients ;; XXX: Should be replaced by better one. - (smtp-deduce-address-list (current-buffer) - (point-min) (point-max))) + (std10-deduce-address-list (current-buffer) + (point-min) (point-max))) ;; Remove BCC lines. (message-remove-header "bcc")) ;; replace the header delimiter with a blank line. @@ -2253,9 +2254,8 @@ to find out how to use this." (backward-char 1) (run-hooks 'message-send-mail-hook) (if recipients - (let ((result (smtp-via-smtp user-mail-address - recipients - (current-buffer)))) + (let ((result (std10-send-buffer user-mail-address recipients + nil t))) (unless (eq result t) (error "Sending failed; " result))) (error "Sending failed; no recipients")))) @@ -3174,6 +3174,24 @@ Headers already prepared in the buffer are not modified." (replace-match " " t t)) (goto-char (point-max))))) +(defun message-shorten-references (header references) + "Limit REFERENCES to be shorter than 988 characters." + (let ((max 988) + (cut 4) + refs) + (nnheader-temp-write nil + (insert references) + (goto-char (point-min)) + (while (re-search-forward "<[^>]+>" nil t) + (push (match-string 0) refs)) + (setq refs (nreverse refs)) + (while (> (length (mapconcat 'identity refs " ")) max) + (when (< (length refs) (1+ cut)) + (decf cut)) + (setcdr (nthcdr cut refs) (cddr (nthcdr cut refs))))) + (insert (capitalize (symbol-name header)) ": " + (mapconcat 'identity refs " ") "\n"))) + (defun message-position-point () "Move point to where the user probably wants to find it." (message-narrow-to-headers) @@ -3938,7 +3956,8 @@ you." (same-window-buffer-names nil) (same-window-regexps nil)) (message-pop-to-buffer (message-buffer-name "mail" to))) - (message-setup `((To . ,(or to "")) (Subject . ,(or subject ""))))) + (let ((message-this-is-mail t)) + (message-setup `((To . ,(or to "")) (Subject . ,(or subject "")))))) ;;;###autoload (defun message-mail-other-frame (&optional to subject) @@ -3950,7 +3969,8 @@ you." (same-window-buffer-names nil) (same-window-regexps nil)) (message-pop-to-buffer (message-buffer-name "mail" to))) - (message-setup `((To . ,(or to "")) (Subject . ,(or subject ""))))) + (let ((message-this-is-mail t)) + (message-setup `((To . ,(or to "")) (Subject . ,(or subject "")))))) ;;;###autoload (defun message-news-other-window (&optional newsgroups subject) @@ -3962,8 +3982,9 @@ you." (same-window-buffer-names nil) (same-window-regexps nil)) (message-pop-to-buffer (message-buffer-name "news" nil newsgroups))) - (message-setup `((Newsgroups . ,(or newsgroups "")) - (Subject . ,(or subject ""))))) + (let ((message-this-is-news t)) + (message-setup `((Newsgroups . ,(or newsgroups "")) + (Subject . ,(or subject "")))))) ;;;###autoload (defun message-news-other-frame (&optional newsgroups subject) @@ -3975,8 +3996,9 @@ you." (same-window-buffer-names nil) (same-window-regexps nil)) (message-pop-to-buffer (message-buffer-name "news" nil newsgroups))) - (message-setup `((Newsgroups . ,(or newsgroups "")) - (Subject . ,(or subject ""))))) + (let ((message-this-is-news t)) + (message-setup `((Newsgroups . ,(or newsgroups "")) + (Subject . ,(or subject "")))))) ;;; underline.el diff --git a/lisp/nngateway.el b/lisp/nngateway.el index 909e4f8..168d5f4 100644 --- a/lisp/nngateway.el +++ b/lisp/nngateway.el @@ -75,6 +75,13 @@ parameter -- the gateway address.") (insert "To: " (nnheader-replace-chars-in-string newsgroups ?. ?-) "@" gateway "\n"))) +(defun nngateway-mail2news-header-transformation (gateway) + "Transform the headers for sending to a mail2news gateway." + (message-remove-header "to") + (message-remove-header "cc") + (goto-char (point-min)) + (insert "To: mail2news@" gateway "\n")) + (nnoo-define-skeleton nngateway) (provide 'nngateway) diff --git a/lisp/nnkiboze.el b/lisp/nnkiboze.el index 0df788d..b122d3e 100644 --- a/lisp/nnkiboze.el +++ b/lisp/nnkiboze.el @@ -158,9 +158,7 @@ (let ((files (nconc (nnkiboze-score-file group) (list (nnkiboze-nov-file-name) - (concat nnkiboze-directory - (nnheader-translate-file-chars - (concat group ".newsrc"))))))) + (nnkiboze-nov-file-name ".newsrc"))))) (while files (and (file-exists-p (car files)) (file-writable-p (car files)) @@ -358,10 +356,11 @@ Finds out what articles are to be part of the nnkiboze groups." (goto-char (1+ (match-beginning 0))) (insert prefix))))) -(defun nnkiboze-nov-file-name () +(defun nnkiboze-nov-file-name (&optional suffix) (concat (file-name-as-directory nnkiboze-directory) (nnheader-translate-file-chars - (concat (nnkiboze-prefixed-name nnkiboze-current-group) ".nov")))) + (concat (nnkiboze-prefixed-name nnkiboze-current-group) + (or suffix ".nov"))))) (provide 'nnkiboze) diff --git a/lisp/nnmail.el b/lisp/nnmail.el index 516e8b1..7880e2f 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -722,7 +722,7 @@ is a spool. If not using procmail, return GROUP." (file-name-as-directory nnmail-procmail-directory))) "\\([^/]*\\)" - (regexp-quote nnmail-procmail-suffix) "$") + nnmail-procmail-suffix "$") (expand-file-name file)) (let ((procmail-group (substring (expand-file-name file) (match-beginning 1) @@ -1069,7 +1069,18 @@ FUNC will be called with the group name to determine the article number." (goto-char (point-min)) (while (re-search-forward "\\(\r?\n[ \t]+\\)+" nil t) (replace-match " " t t)) + ;; Nuke pathologically long headers. Since Gnus applies + ;; pathologically complex regexps to the buffer, lines + ;; that are looong will take longer than the Universe's + ;; existence to process. + (goto-char (point-min)) + (while (not (eobp)) + (end-of-line) + (if (> (current-column) 1024) + (gnus-delete-line) + (forward-line 1))) ;; Allow washing. + (goto-char (point-min)) (run-hooks 'nnmail-split-hook) (if (and (symbolp nnmail-split-methods) (fboundp nnmail-split-methods)) diff --git a/lisp/nntp.el b/lisp/nntp.el index 1d8cfd1..67eafb7 100644 --- a/lisp/nntp.el +++ b/lisp/nntp.el @@ -211,7 +211,8 @@ server there that you can connect to. See also (defvoo nntp-server-list-active-group 'try) (eval-and-compile - (autoload 'nnmail-read-passwd "nnmail")) + (autoload 'nnmail-read-passwd "nnmail") + (autoload 'open-ssl-stream "ssl")) @@ -845,6 +846,16 @@ password contained in '~/.nntp-authinfo'." (defun nntp-open-network-stream (buffer) (open-network-stream "nntpd" buffer nntp-address nntp-port-number)) +(defun nntp-open-ssl-stream (buffer) + (let* ((ssl-program-arguments '("-connect" (concat host ":" service))) + (proc (open-ssl-stream "nntpd" buffer nntp-address nntp-port-number))) + (save-excursion + (set-buffer buffer) + (nntp-wait-for-string "^\r*20[01]") + (beginning-of-line) + (delete-region (point-min) (point)) + proc))) + (defun nntp-read-server-type () "Find out what the name of the server we have connected to is." ;; Wait for the status string to arrive. diff --git a/lisp/nnvirtual.el b/lisp/nnvirtual.el index df61450..d83356d 100644 --- a/lisp/nnvirtual.el +++ b/lisp/nnvirtual.el @@ -399,7 +399,7 @@ to virtual article number.") (replace-match "" t t)) (goto-char (point-min)) (when (re-search-forward - (concat (gnus-group-real-name group) ":[0-9]+") + (concat (regexp-quote (gnus-group-real-name group)) ":[0-9]+") nil t) (replace-match "" t t)) (unless (= (point) (point-max)) diff --git a/texi/ChangeLog b/texi/ChangeLog index 1e7d48d..d48080a 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,9 @@ +Wed Jun 24 00:37:32 1998 Lars Magne Ingebrigtsen + + * gnus.texi (Auto Save): Addition. + (Mail-To-News Gateways): Addition. + (NNTP): Addition. + Wed Jun 3 03:30:47 1998 Lars Magne Ingebrigtsen * message.texi (Message Headers): Addition. diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 811c94e..d06b99c 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -7718,14 +7718,14 @@ Gnus $B$O%X%C%@!<$NJB$YBX$((B(sort)$B$b9T$$$^$9!J$3$l$O%G%#%U%)%k%H$G9T$o$l$^ $B3J9%$N5-;v$GKd$a9~$`$3$H$5$(2DG=$K$7$^$9!#(B @vindex gnus-show-mime -@vindex gnus-show-mime-method +@vindex gnus-article-display-method-for-mime @vindex gnus-strict-mime -@findex metamail-buffer -Gnus $B$O(B @code{gnus-show-mime-method} $B$K5-;v$r2!$7IU$1$k$3$H$G(B @sc{mime} $B$r(B -$B07$$$^$9!#$3$l$O%G%#%U%)%k%H$G$O(B @code{gnus-show-mime-method} $B$G$9!#$3$N4X(B -$B?t$O(B SEMI MIME-View $B%W%m%0%i%`$r8F$S=P$7$F\$7$$>pJs$O!"%^%K%e%"%k$r;2>H$7$F$/$@$5$$!J$^$@$J$$$1$I(B -(;_;)$B!K!#(B +@findex gnus-article-display-mime-message +Gnus $B$O(B @code{gnus-article-display-method-for-mime} $B$K5-;v$r2!$7IU$1$k$3(B +$B$H$G(B @sc{mime} $B$r07$$$^$9!#$3$N=i4|CM$O(B +@code{gnus-article-display-mime-message} $B$G$9!#$3$N4X?t$O(B SEMI MIME-View +$B%W%m%0%i%`$r8F$S=P$7$F\$7(B +$B$$>pJs$O!"%^%K%e%"%k$r;2>H$7$F$/$@$5$$!J$^$@$J$$$1$I(B(;_;)$B!K!#(B @sc{mime} $B$r>o$K;HMQ$7$?$1$l$P!"(B@code{gnus-show-mime} $B$r(B @code{t} $B$K@_Dj$7$F$/$@$5$$!#$7$+$7!"(B@code{gnus-strict-mime} $B$,(B diff --git a/texi/gnus.texi b/texi/gnus.texi index 1c66d0d..b2a477f 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Semi-gnus 6.4.0 Manual +@settitle Semi-gnus 6.7.1 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -316,7 +316,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Semi-gnus 6.4.0 Manual +@title Semi-gnus 6.7.1 Manual @author by Lars Magne Ingebrigtsen @page @@ -359,7 +359,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.4.0. +This manual corresponds to Semi-gnus 6.7.1. @end ifinfo @@ -941,6 +941,10 @@ into the directory where the @file{.newsrc} file is located. (This is normally the user's home directory.) The dribble file will get the same file permissions as the @code{.newsrc} file. +@vindex gnus-always-read-dribble-file +If @code{gnus-always-read-dribble-file} is non-@code{nil}, Gnus will +read the dribble file on startup without querying the user. + @node The Active File @section The Active File @@ -7817,14 +7821,15 @@ of the characters, and it also makes it possible to embed pictures and other naughty stuff in innocent-looking articles. @vindex gnus-show-mime -@vindex gnus-show-mime-method +@vindex gnus-article-display-method-for-mime @vindex gnus-strict-mime -@findex metamail-buffer +@findex gnus-article-display-mime-message Gnus handles @sc{mime} by pushing the articles through -@code{gnus-show-mime-method}, which is @code{gnus-show-mime-method} by -default. This function calls the SEMI MIME-View program to actually do -the work. For more information on SEMI MIME-View, see its manual page -(however it is not existed yet, sorry). +@code{gnus-article-display-method-for-mime}, which is +@code{gnus-article-display-mime-message} by default. This function +calls the SEMI MIME-View program to actually do the work. For more +information on SEMI MIME-View, see its manual page (however it is not +existed yet, sorry). Set @code{gnus-show-mime} to @code{t} if you want to use @sc{mime} all the time. However, if @code{gnus-strict-mime} is @@ -9029,14 +9034,18 @@ server. @findex nntp-open-network-stream @item nntp-open-connection-function @vindex nntp-open-connection-function -This function is used to connect to the remote system. Three pre-made -functions are @code{nntp-open-network-stream}, which is the default, and -simply connects to some port or other on the remote system. The other -two are @code{nntp-open-rlogin}, which does an @samp{rlogin} on the +This function is used to connect to the remote system. Four pre-made +functions are supplied: + +@table @code +@item nntp-open-network-stream +This is the default, and simply connects to some port or other on the +remote system. + +@item nntp-open-rlogin +Does an @samp{rlogin} on the remote system, and then does a @samp{telnet} to the @sc{nntp} server -available there, and @code{nntp-open-telnet}, which does a @samp{telnet} -to the remote system and then another @samp{telnet} to get to the -@sc{nntp} server. +available there. @code{nntp-open-rlogin}-related variables: @@ -9057,6 +9066,10 @@ User name on the remote system. @end table +@item nntp-open-telnet +Does a @samp{telnet} to the remote system and then another @samp{telnet} +to get to the @sc{nntp} server. + @code{nntp-open-telnet}-related variables: @table @code @@ -9094,6 +9107,27 @@ This works for Solaris @code{telnet}, for instance. @end table +@findex nntp-open-ssl-stream +@item nntp-open-ssl-stream +Opens a connection to a server over a @dfn{secure} channel. To use this +you must have SSLay installed +(@file{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL}, and you also need +@file{ssl.el} (from the W3 distributeion, for instance). You then +define a server as follows: + +@lisp +;; Type `C-c C-c' after you've finished editing. +;; +;; "snews" is port 563 and is predefined in our /etc/services +;; +(nntp "snews.bar.com" + (nntp-open-connection-function nntp-open-ssl-stream) + (nntp-port-number "snews") + (nntp-address "snews.bar.com")) +@end lisp + +@end table + @item nntp-end-of-line @vindex nntp-end-of-line String to use as end-of-line marker when talking to the @sc{nntp} @@ -11019,6 +11053,24 @@ will get this @code{From} header inserted: To: alt-religion-emacs@@GATEWAY @end example +The following pre-defined functions exist: + +@findex nngateway-simple-header-transformation +@table @code + +@item nngateway-simple-header-transformation +Creates a @code{To} header that looks like +@var{newsgroup}@@@code{nngateway-address}. + +@findex nngateway-mail2news-header-transformation + +@item nngateway-mail2news-header-transformation +Creates a @code{To} header that looks like +@samp{mail2news}@@@code{nngateway-address}. + +@end table + + @end table So, to use this, simply say something like: @@ -15728,7 +15780,7 @@ actually are people who are using Gnus. Who'd'a thunk it! * ding Gnus:: New things in Gnus 5.0/5.1, the first new Gnus. * September Gnus:: The Thing Formally Known As Gnus 5.3/5.3. * Red Gnus:: Third time best---Gnus 5.4/5.5. -* Quassia Gnus:: Two times two is four, or Gnus 5.6.11. +* Quassia Gnus:: Two times two is four, or Gnus 5.6.13. @end menu These lists are, of course, just @emph{short} overviews of the @@ -16263,7 +16315,7 @@ Emphasized text can be properly fontisized: @node Quassia Gnus @subsubsection Quassia Gnus -New features in Gnus 5.6.11: +New features in Gnus 5.6.13: @itemize @bullet @@ -17559,6 +17611,10 @@ New spec: %~(tab 56) to put point on column 56 Allow Gnus Agent scoring to use normal score files. @item +Rething the Agent active file thing. `M-g' doesn't update the active +file, for instance. + +@item Solve the halting problem. @c TODO diff --git a/texi/message.texi b/texi/message.texi index cdb63f4..7c076b9 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Message 5.6.11 Manual +@settitle Message 5.6.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 Message 5.6.11 Manual +@title Message 5.6.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 Message 5.6.11. Message is distributed with +This manual corresponds to Message 5.6.13. Message is distributed with the Gnus distribution bearing the same version number as this manual has.