From f02a47aff393ee1726a1f120cfa0d377d191b900 Mon Sep 17 00:00:00 2001 From: morioka Date: Wed, 24 Jun 1998 12:58:24 +0000 Subject: [PATCH] Gnus v5.6.12. --- lisp/ChangeLog | 68 +++++++++++++++++++++++++++++++++++++++++++++++ lisp/gnus-art.el | 2 +- lisp/gnus-picon.el | 5 ++-- lisp/gnus-start.el | 8 +++--- lisp/gnus-sum.el | 67 +++++++++++++++++++++------------------------- lisp/gnus-topic.el | 61 +++++++++++++++++++++++++----------------- lisp/gnus-uu.el | 4 +-- lisp/gnus.el | 2 +- lisp/message.el | 38 ++++++++++++++++++++------ lisp/nngateway.el | 7 +++++ lisp/nnkiboze.el | 9 +++---- lisp/nnmail.el | 13 ++++++++- lisp/nntp.el | 13 ++++++++- texi/ChangeLog | 6 +++++ texi/gnus.texi | 75 +++++++++++++++++++++++++++++++++++++++++++--------- texi/message.texi | 6 ++--- 16 files changed, 284 insertions(+), 100 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7054db5..eeae864 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,71 @@ +Wed Jun 24 03:27:44 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.12 is released. + +Wed Jun 10 11:06:35 1998 Andreas Schwab + + * message.el (message-mail-other-window): Bind message-this-is-mail. + (message-mail-other-frame): Likewise. + (message-news-other-window): Bind message-this-is-news. + (message-news-other-frame): Likewise. + +1998-06-09 Sam Steingold + + * gnus-uu.el (gnus-uu-default-view-rules): make sed kill ^M only + at the end of line. + +1998-06-05 Hrvoje Niksic + + * nnmail.el (nnmail-get-split-group): Don't regexp-quote + nnmail-procmail-suffix. + +Wed Jun 24 03:04:05 1998 Kim-Minh Kaplan + + * gnus-sum.el (gnus-build-get-header): Fix obarray. + +Wed Jun 24 02:49:57 1998 Castor + + * nntp.el (nntp-open-ssl-stream): + +Wed Jun 24 02:31:46 1998 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-nov-parse-line): Cleaned up. + (gnus-build-all-threads): Put things in the wrong obarray. + +Wed Jun 24 01:43:26 1998 Decklin Foster + + * nngateway.el (nngateway-mail2news-header-transformation): New + function. + +Wed Jun 24 00:25:45 1998 Lars Magne Ingebrigtsen + + * message.el (message-shorten-references): New function. + (message-header-format-alist): Use it. + + * gnus-start.el (gnus-always-read-dribble-file): Customized. + + * message.el (message-generate-new-buffers): Dox fox. + +Tue Jun 23 23:58:48 1998 Lars Magne Ingebrigtsen + + * gnus-topic.el (gnus-topic-prepare-topic): Respect visible topic + param. + (gnus-topic-hierarchical-parameters): New function. + +1998-06-02 Didier Verna + + * gnus-picon.el (gnus-get-buffer-name): use get-buffer-create + instead of get-buffer + +Wed Jun 3 04:41:45 1998 Lars Magne Ingebrigtsen + + * nnkiboze.el (nnkiboze-request-delete-group): Delete .newsrc + file. + + * nnmail.el (nnmail-article-group): Nuke looong lines. + + * gnus-art.el (gnus-button-alist): Buggy default. + Wed Jun 3 04:03:37 1998 Lars Magne Ingebrigtsen * gnus.el: Gnus v5.6.11 is released. diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index dd29db6..dd19652 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -2720,7 +2720,7 @@ groups." ("\\bin\\( +article\\| +message\\)? +\\(<\\([^\n @<>]+@[^\n @<>]+\\)>\\)" 2 t gnus-button-message-id 3) ("\\( \n\t]+\\)>" 0 t gnus-url-mailto 2) - ("mailto:\\([a-zA-Z.-@_+0-9%]+\\)" 0 t gnus-url-mailto 2) + ("mailto:\\([a-zA-Z.-@_+0-9%]+\\)" 0 t gnus-url-mailto 1) ("\\bmailto:\\([^ \n\t]+\\)" 0 t gnus-url-mailto 1) ;; This is how URLs _should_ be embedded in text... ("]*\\)>" 0 t gnus-button-embedded-url 1) diff --git a/lisp/gnus-picon.el b/lisp/gnus-picon.el index 7579b0c..be64979 100644 --- a/lisp/gnus-picon.el +++ b/lisp/gnus-picon.el @@ -184,8 +184,9 @@ arguments necessary for the job.") (defun gnus-get-buffer-name (variable) "Returns the buffer name associated with the contents of a variable." - (let ((buf (get-buffer (gnus-window-to-buffer-helper - (cdr (assq variable gnus-window-to-buffer)))))) + (let ((buf (get-buffer-create (gnus-window-to-buffer-helper + (cdr + (assq variable gnus-window-to-buffer)))))) (and buf (buffer-name buf)))) diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index d83f15f..29b6b04 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -383,10 +383,12 @@ Can be used to turn version control on or off." :group 'gnus-newsrc :type 'hook) -;;; Internal variables +(defcustom gnus-always-read-dribble-file nil + "Uncoditionally read the dribble file." + :group 'gnus-newsrc + :type 'boolean) -(defvar gnus-always-read-dribble-file nil - "Uncoditionally read the dribble file.") +;;; Internal variables (defvar gnus-newsrc-file-version nil) (defvar gnus-override-subscribe-method nil) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 52eeb55..677bea3 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -2860,25 +2860,24 @@ If NO-DISPLAY, don't generate a summary buffer." (defun gnus-dependencies-add-header (header dependencies force-new) "Enter HEADER into the DEPENDENCIES table if it is not already there. -If FORCE-NEW is not NIL, enter HEADER into the DEPENDENCIES table even +If FORCE-NEW is not nil, enter HEADER into the DEPENDENCIES table even if it was already present. -If `gnus-summary-ignore-duplicates' is NIL then duplicate Message-IDs +If `gnus-summary-ignore-duplicates' is nil then duplicate Message-IDs will not be entered in the DEPENDENCIES table. Otherwise duplicate Message-IDs will be renamed be renamed to a unique Message-ID before being entered. -Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise." - +Returns HEADER if it was entered in the DEPENDENCIES. Returns nil otherwise." (let* ((id (mail-header-id header)) (id-dep (and id (intern id dependencies))) ref ref-dep ref-header) - ;; Enter this `header' in the `dependencies' table + ;; Enter this `header' in the `dependencies' table. (cond ((not id-dep) (setq header nil)) - ;; The first two cases do the normal part : enter a new `header' - ;; in the `dependencies' table, + ;; The first two cases do the normal part: enter a new `header' + ;; in the `dependencies' table. ((not (boundp id-dep)) (set id-dep (list header))) ((null (car (symbol-value id-dep))) @@ -2886,10 +2885,9 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise." ;; From here the `header' was already present in the ;; `dependencies' table. - (force-new - ;; Overrides an existing entry, - ;; Just set the header part of the entry. + ;; Overrides an existing entry; + ;; just set the header part of the entry. (setcar (symbol-value id-dep) header)) ;; Renames the existing `header' to a unique Message-ID. @@ -2900,11 +2898,11 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise." (list header)) (mail-header-set-id header id)) - ;; - The last case ignores an existing entry, except it adds - ;; any additional Xrefs (in case the two articles came from - ;; different servers. - ;; Also sets `header' to `nil' meaning that the - ;; `dependencies' table was *not* modified. + ;; The last case ignores an existing entry, except it adds any + ;; additional Xrefs (in case the two articles came from different + ;; servers. + ;; Also sets `header' to `nil' meaning that the `dependencies' + ;; table was *not* modified. (t (mail-header-set-xref (car (symbol-value id-dep)) @@ -2921,9 +2919,10 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise." (boundp ref-dep) (setq ref-header (car (symbol-value ref-dep)))) (if (string= id ref) - ;; Yuk ! This is a reference loop. Make the article be a + ;; Yuk! This is a reference loop. Make the article be a ;; root article. (progn + (debug) (mail-header-set-references (car (symbol-value id-dep)) "none") (setq ref nil)) (setq ref (gnus-parent-id (mail-header-references ref-header))))) @@ -3003,7 +3002,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise." ;; Look through the buffer of NOV lines and find the header to ;; ID. Enter this line into the dependencies hash table, and return ;; the id of the parent article (if any). - (let (found header) + (let ((deps gnus-newsgroup-dependencies) + found header) (prog1 (save-excursion (set-buffer nntp-server-buffer) @@ -3019,8 +3019,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise." (when found (beginning-of-line) (and - (setq header (gnus-nov-parse-line (read (current-buffer)) - gnus-newsgroup-dependencies)) + (setq header (gnus-nov-parse-line + (read (current-buffer)) deps)) (gnus-parent-id (mail-header-references header)))))) (when header (let ((number (mail-header-number header))) @@ -3036,6 +3036,7 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise." (defun gnus-build-all-threads () "Read all the headers." (let ((gnus-summary-ignore-duplicates t) + (dependencies gnus-newsgroup-dependencies) found header article) (save-excursion (set-buffer nntp-server-buffer) @@ -3043,9 +3044,9 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise." (goto-char (point-min)) (while (not (eobp)) (ignore-errors - (setq article (read (current-buffer))) - (setq header (gnus-nov-parse-line article - gnus-newsgroup-dependencies))) + (setq article (read (current-buffer)) + header (gnus-nov-parse-line + article dependencies))) (when header (push header gnus-newsgroup-headers) (if (memq (setq article (mail-header-number header)) @@ -4391,10 +4392,10 @@ The resulting hash table is returned, or nil if no Xrefs were found." (setq id (mail-header-id header) ref (gnus-parent-id (mail-header-references header)))) - (setq header - (gnus-dependencies-add-header header dependencies force-new)) - (if header - (push header headers)) + (when (setq header + (gnus-dependencies-add-header + header dependencies force-new)) + (push header headers)) (goto-char (point-max)) (widen)) (nreverse headers))))) @@ -4417,14 +4418,12 @@ The resulting hash table is returned, or nil if no Xrefs were found." (defmacro gnus-nov-field () '(buffer-substring (point) (if (gnus-nov-skip-field) (1- (point)) eol))) -;; (defvar gnus-nov-none-counter 0) - ;; This function has to be called with point after the article number ;; on the beginning of the line. -(defun gnus-nov-parse-line (number dependencies &optional force-new) +(defsubst gnus-nov-parse-line (number dependencies &optional force-new) (let ((eol (gnus-point-at-eol)) (buffer (current-buffer)) - header ref id id-dep ref-dep) + header) ;; overview: [num subject from date id refs chars lines misc] (unwind-protect @@ -4453,13 +4452,7 @@ The resulting hash table is returned, or nil if no Xrefs were found." (when gnus-alter-header-function (funcall gnus-alter-header-function header)) - - (setq id (mail-header-id header) - ref (gnus-parent-id (mail-header-references header))) - - (gnus-dependencies-add-header header dependencies force-new) - - header)) + (gnus-dependencies-add-header header dependencies force-new))) ;; Goes through the xover lines and returns a list of vectors (defun gnus-get-newsgroup-headers-xover (sequence &optional diff --git a/lisp/gnus-topic.el b/lisp/gnus-topic.el index 249367d..c726db0 100644 --- a/lisp/gnus-topic.el +++ b/lisp/gnus-topic.el @@ -166,9 +166,10 @@ with some simple extensions. (when result (symbol-name result)))) -(defun gnus-current-topics () - "Return a list of all current topics, lowest in hierarchy first." - (let ((topic (gnus-current-topic)) +(defun gnus-current-topics (&optional topic) + "Return a list of all current topics, lowest in hierarchy first. +If TOPIC, start with that topic." + (let ((topic (or topic (gnus-current-topic))) topics) (while topic (push topic topics) @@ -199,7 +200,8 @@ with some simple extensions. active (- (1+ (cdr active)) (car active)))) clevel (or (gnus-info-level info) - (if (member group gnus-zombie-list) gnus-level-zombie gnus-level-killed)))) + (if (member group gnus-zombie-list) + gnus-level-zombie gnus-level-killed)))) (and unread ; nil means that the group is dead. (<= clevel level) @@ -324,27 +326,32 @@ with some simple extensions. (defun gnus-group-topic-parameters (group) "Compute the group parameters for GROUP taking into account inheritance from topics." - (let ((params-list (list (gnus-group-get-parameter group))) - topics params param out) + (let ((params-list (list (gnus-group-get-parameter group)))) (save-excursion (gnus-group-goto-group group) - (setq topics (gnus-current-topics)) - (while topics - (push (gnus-topic-parameters (pop topics)) params-list)) - ;; We probably have lots of nil elements here, so - ;; we remove them. Probably faster than doing this "properly". - (setq params-list (delq nil params-list)) - ;; Now we have all the parameters, so we go through them - ;; and do inheritance in the obvious way. - (while (setq params (pop params-list)) - (while (setq param (pop params)) - (when (atom param) - (setq param (cons param t))) - ;; Override any old versions of this param. - (setq out (delq (assq (car param) out) out)) - (push param out))) - ;; Return the resulting parameter list. - out))) + (nconc params-list + (gnus-topic-hierarchical-parameters (gnus-current-topic)))))) + +(defun gnus-topic-hierarchical-parameters (topic) + "Return a topic list computed for TOPIC." + (let ((topics (gnus-current-topics topic)) + params-list param out params) + (while topics + (push (gnus-topic-parameters (pop topics)) params-list)) + ;; We probably have lots of nil elements here, so + ;; we remove them. Probably faster than doing this "properly". + (setq params-list (delq nil params-list)) + ;; Now we have all the parameters, so we go through them + ;; and do inheritance in the obvious way. + (while (setq params (pop params-list)) + (while (setq param (pop params)) + (when (atom param) + (setq param (cons param t))) + ;; Override any old versions of this param. + (setq out (delq (assq (car param) out) out)) + (push param out))) + ;; Return the resulting parameter list. + out)) ;;; General utility functions @@ -406,7 +413,13 @@ If LOWEST is non-nil, list all newsgroups of level LOWEST or higher." If SILENT, don't insert anything. Return the number of unread articles in the topic and its subtopics." (let* ((type (pop topicl)) - (entries (gnus-topic-find-groups (car type) list-level all lowest)) + (entries (gnus-topic-find-groups + (car type) list-level + (or all + (cdr (assq 'visible + (gnus-topic-hierarchical-parameters + (car type))))) + lowest)) (visiblep (and (eq (nth 1 type) 'visible) (not silent))) (gnus-group-indentation (make-string (* gnus-topic-indent-level level) ? )) 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 17aaaae..d2d9680 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 "5.6.11" +(defconst gnus-version-number "5.6.12" "Version number for this version of Gnus.") (defconst gnus-version (format "Gnus v%s" gnus-version-number) diff --git a/lisp/message.el b/lisp/message.el index e64ad70..db77bcc 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -241,7 +241,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." @@ -915,7 +915,7 @@ The cdr of ech entry is a function for applying the face to a region.") (Lines) (Expires) (Message-ID) - (References . message-fill-header) + (References . message-shorten-references) (X-Mailer) (X-Newsreader)) "Alist used for formatting headers.") @@ -2999,6 +2999,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) @@ -3655,7 +3673,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) @@ -3667,7 +3686,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) @@ -3679,8 +3699,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) @@ -3692,8 +3713,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 ccb00f7..9942658 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/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.texi b/texi/gnus.texi index 104e4c2..5c65731 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Gnus 5.6.11 Manual +@settitle Gnus 5.6.12 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 Gnus 5.6.11 Manual +@title Gnus 5.6.12 Manual @author by Lars Magne Ingebrigtsen @page @@ -352,7 +352,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 Gnus 5.6.11. +This manual corresponds to Gnus 5.6.12. @end ifinfo @@ -931,6 +931,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 @@ -9029,14 +9033,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 +9065,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 +9106,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 +11052,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 +15779,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.12. @end menu These lists are, of course, just @emph{short} overviews of the @@ -16263,7 +16314,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.12: @itemize @bullet diff --git a/texi/message.texi b/texi/message.texi index cdb63f4..3efd407 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.12 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.12 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.12. Message is distributed with the Gnus distribution bearing the same version number as this manual has. -- 1.7.10.4