From 4b6f69f991382030f306ba3ff9e00c8f62f45f72 Mon Sep 17 00:00:00 2001 From: ichikawa Date: Sun, 5 Apr 1998 09:26:00 +0000 Subject: [PATCH] *** empty log message *** --- ChangeLog | 4 ++ lisp/ChangeLog | 41 ++++++++++++++++ lisp/gnus-agent.el | 136 ++++++++++++++++++++++++++-------------------------- lisp/gnus-int.el | 29 +++++++++-- lisp/gnus-score.el | 8 ++-- lisp/gnus-sum.el | 2 +- lisp/gnus-util.el | 6 +-- lisp/gnus.el | 4 +- lisp/message.el | 1 + lisp/nnkiboze.el | 14 +++--- lisp/nntp.el | 19 +++++--- texi/ChangeLog | 8 ++++ texi/gnus.texi | 42 +++++++++++++--- texi/message.texi | 6 +-- 14 files changed, 216 insertions(+), 104 deletions(-) diff --git a/ChangeLog b/ChangeLog index 25fdc8a..79549fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +1998-04-05 Tatsuya Ichikawa + + * Sync up with Gnus 5.6.4. + 1998-03-20 Shuhei KOBAYASHI * lisp/gnus.el (gnus-version-number): Update to 6.1.1. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6aa0dae..97b7710 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,44 @@ +Sun Mar 29 09:56:00 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.4 is released. + +Sun Mar 29 09:47:58 1998 Lars Magne Ingebrigtsen + + * nnkiboze.el (nnkiboze-request-delete-group): Would bug out when + deleting files. + +Sat Mar 28 08:48:31 1998 Lars Magne Ingebrigtsen + + * nntp.el (nntp-encode-text): Use `nntp-end-of-line'. + +Thu Mar 26 15:29:51 1998 Lars Magne Ingebrigtsen + + * gnus-agent.el (gnus-agent-expire): Check size of history file. + + * message.el (message-mode): Doc fix. + +Mon Mar 23 14:21:34 1998 Mike McEwan + + * gnus-score.el (gnus-score-default-type): Doc fix. + +Mon Mar 23 14:12:01 1998 Lars Magne Ingebrigtsen + + * gnus-int.el (gnus-request-body): Do the same as HEAD. + + * gnus-art.el (gnus-article-edit-article-hook): Removed. + +Mon Mar 23 14:09:56 1998 jari aalto + + * gnus-art.el (gnus-article-edit-article-hook): New hook. + +1998-03-19 Jan Vroonhof + + * nntp.el (nntp-open-rlogin): Wrap in save-excursion + +Thu Mar 19 16:43:59 1998 Joe Buehler + + * gnus-util.el (gnus-date-iso8601): Use simple string. + Thu Mar 19 15:18:00 1998 Lars Magne Ingebrigtsen * gnus.el: Gnus v5.6.3 is released. diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index 6d5d5eb..6984702 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -1244,73 +1244,75 @@ The following commands are available: (set-buffer (setq gnus-agent-current-history (setq history (gnus-agent-history-buffer)))) - (goto-char (point-min)) - (while (not (eobp)) - (skip-chars-forward "^\t") - (if (> (read (current-buffer)) day) - ;; New article; we don't expire it. - (forward-line 1) - ;; Old article. Schedule it for possible nuking. - (while (not (eolp)) - (setq sym (let ((obarray expiry-hashtb)) - (read (current-buffer)))) - (if (boundp sym) - (set sym (cons (cons (read (current-buffer)) (point)) - (symbol-value sym))) - (set sym (list (cons (read (current-buffer)) (point))))) - (skip-chars-forward " ")) - (forward-line 1))) - ;; We now have all articles that can possibly be expired. - (mapatoms - (lambda (sym) - (setq group (symbol-name sym) - articles (sort (symbol-value sym) 'car-less-than-car) - low (car (gnus-active group)) - info (gnus-get-info group) - unreads (ignore-errors (gnus-list-of-unread-articles group)) - marked (nconc (gnus-uncompress-range - (cdr (assq 'ticked (gnus-info-marks info)))) - (gnus-uncompress-range - (cdr (assq 'dormant (gnus-info-marks info))))) - nov-file (gnus-agent-article-name ".overview" group)) - (gnus-message 5 "Expiring articles in %s" group) - (set-buffer overview) - (erase-buffer) - (when (file-exists-p nov-file) - (insert-file-contents nov-file)) - (goto-char (point-min)) - (while (setq elem (pop articles)) - (setq article (car elem)) - (when (or (null low) - (< article low) - gnus-agent-expire-all - (and (not (memq article unreads)) - (not (memq article marked)))) - ;; Find and nuke the NOV line. - (while (and (not (eobp)) - (< (setq art (read (current-buffer))) article)) - (forward-line 1)) - (if (or (eobp) - (/= art article)) - (beginning-of-line) - (gnus-delete-line)) - ;; Nuke the article. - (when (file-exists-p (setq file (gnus-agent-article-name - (number-to-string article) - group))) - (delete-file file)) - ;; Schedule the history line for nuking. - (push (cdr elem) histories))) - (write-region (point-min) (point-max) nov-file nil 'silent)) - expiry-hashtb) - (set-buffer history) - (setq histories (nreverse (sort histories '<))) - (while histories - (goto-char (pop histories)) - (gnus-delete-line)) - (gnus-agent-save-history) - (gnus-agent-close-history)) - (gnus-message 4 "Expiry...done")))) + (unless (zerop (buffer-size)) + (goto-char (point-min)) + (while (not (eobp)) + (skip-chars-forward "^\t") + (if (> (read (current-buffer)) day) + ;; New article; we don't expire it. + (forward-line 1) + ;; Old article. Schedule it for possible nuking. + (while (not (eolp)) + (setq sym (let ((obarray expiry-hashtb)) + (read (current-buffer)))) + (if (boundp sym) + (set sym (cons (cons (read (current-buffer)) (point)) + (symbol-value sym))) + (set sym (list (cons (read (current-buffer)) (point))))) + (skip-chars-forward " ")) + (forward-line 1))) + ;; We now have all articles that can possibly be expired. + (mapatoms + (lambda (sym) + (setq group (symbol-name sym) + articles (sort (symbol-value sym) 'car-less-than-car) + low (car (gnus-active group)) + info (gnus-get-info group) + unreads (ignore-errors (gnus-list-of-unread-articles group)) + marked (nconc (gnus-uncompress-range + (cdr (assq 'ticked (gnus-info-marks info)))) + (gnus-uncompress-range + (cdr (assq 'dormant + (gnus-info-marks info))))) + nov-file (gnus-agent-article-name ".overview" group)) + (gnus-message 5 "Expiring articles in %s" group) + (set-buffer overview) + (erase-buffer) + (when (file-exists-p nov-file) + (insert-file-contents nov-file)) + (goto-char (point-min)) + (while (setq elem (pop articles)) + (setq article (car elem)) + (when (or (null low) + (< article low) + gnus-agent-expire-all + (and (not (memq article unreads)) + (not (memq article marked)))) + ;; Find and nuke the NOV line. + (while (and (not (eobp)) + (< (setq art (read (current-buffer))) article)) + (forward-line 1)) + (if (or (eobp) + (/= art article)) + (beginning-of-line) + (gnus-delete-line)) + ;; Nuke the article. + (when (file-exists-p (setq file (gnus-agent-article-name + (number-to-string article) + group))) + (delete-file file)) + ;; Schedule the history line for nuking. + (push (cdr elem) histories))) + (write-region (point-min) (point-max) nov-file nil 'silent)) + expiry-hashtb) + (set-buffer history) + (setq histories (nreverse (sort histories '<))) + (while histories + (goto-char (pop histories)) + (gnus-delete-line)) + (gnus-agent-save-history) + (gnus-agent-close-history)) + (gnus-message 4 "Expiry...done"))))) ;;;###autoload (defun gnus-agent-batch () diff --git a/lisp/gnus-int.el b/lisp/gnus-int.el index 78a943a..f8acea9 100644 --- a/lisp/gnus-int.el +++ b/lisp/gnus-int.el @@ -353,10 +353,31 @@ If BUFFER, insert the article in that group." (defun gnus-request-body (article group) "Request the body of ARTICLE in GROUP." - (let ((gnus-command-method (gnus-find-method-for-group group))) - (funcall (gnus-get-function gnus-command-method 'request-body) - article (gnus-group-real-name group) - (nth 1 gnus-command-method)))) + (let* ((gnus-command-method (gnus-find-method-for-group group)) + (head (gnus-get-function gnus-command-method 'request-body t)) + res clean-up) + (cond + ;; Check the cache. + ((and gnus-use-cache + (numberp article) + (gnus-cache-request-article article group)) + (setq res (cons group article) + clean-up t)) + ;; Use `head' function. + ((fboundp head) + (setq res (funcall head article (gnus-group-real-name group) + (nth 1 gnus-command-method)))) + ;; Use `article' function. + (t + (setq res (gnus-request-article article group) + clean-up t))) + (when clean-up + (save-excursion + (set-buffer nntp-server-buffer) + (goto-char (point-min)) + (when (search-forward "\n\n" nil t) + (delete-region (point-min) (1- (point)))))) + res)) (defun gnus-request-post (gnus-command-method) "Post the current buffer using GNUS-COMMAND-METHOD." diff --git a/lisp/gnus-score.el b/lisp/gnus-score.el index 48709b7..435b288 100644 --- a/lisp/gnus-score.el +++ b/lisp/gnus-score.el @@ -330,7 +330,7 @@ Should be one of the following symbols. f: fuzzy string r: regexp string b: before date - a: at date + a: after date n: this date <: less than number >: greater than number @@ -343,7 +343,7 @@ If nil, the user will be asked for a match type." (const :tag "fuzzy string" f) (const :tag "regexp string" r) (const :tag "before date" b) - (const :tag "at date" a) + (const :tag "after date" a) (const :tag "this date" n) (const :tag "less than number" <) (const :tag "greater than number" >) @@ -509,8 +509,8 @@ used as score." (?z s "substring" body-string) (?p r "regexp string" body-string) (?b before "before date" date) - (?a at "at date" date) - (?n now "this date" date) + (?a after "after date" date) + (?n at "this date" date) (?< < "less than number" number) (?> > "greater than number" number) (?= = "equal to number" number))) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 7fcd080..af56783 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -830,7 +830,7 @@ which it may alter in any way.") (?x ,(macroexpand '(mail-header-xref gnus-tmp-header)) ?s) (?D ,(macroexpand '(mail-header-date gnus-tmp-header)) ?s) (?d (gnus-dd-mmm (mail-header-date gnus-tmp-header)) ?s) - (?o (gnus-date-iso8601 gnus-tmp-header) ?s) + (?o (gnus-date-iso8601 (mail-header-date gnus-tmp-header)) ?s) (?M ,(macroexpand '(mail-header-id gnus-tmp-header)) ?s) (?r ,(macroexpand '(mail-header-references gnus-tmp-header)) ?s) (?c (or (mail-header-chars gnus-tmp-header) 0) ?d) diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index 34f0e93..a98f9e5 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -376,10 +376,10 @@ Cache the result as a text property stored in DATE." "Return a string of TIME in YYMMDDTHHMMSS format." (format-time-string "%Y%m%dT%H%M%S" time)) -(defun gnus-date-iso8601 (header) - "Convert the date field in HEADER to YYMMDDTHHMMSS" +(defun gnus-date-iso8601 (date) + "Convert the DATE to YYMMDDTHHMMSS" (condition-case () - (gnus-time-iso8601 (gnus-date-get-time (mail-header-date header))) + (gnus-time-iso8601 (gnus-date-get-time date)) (error ""))) (defun gnus-mode-string-quote (string) diff --git a/lisp/gnus.el b/lisp/gnus.el index 9104200..2f51678 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -246,11 +246,11 @@ is restarted, and sometimes reloaded." :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) -(defconst gnus-version-number "6.1.1" +(defconst gnus-version-number "6.1.2" "Version number for this version of gnus.") (defconst gnus-version - (format "Semi-gnus %s (based on Gnus 5.6.3; for SEMI 1.1)" + (format "Semi-gnus %s (based on Gnus 5.6.4; for SEMI 1.1)" gnus-version-number) "Version string for this version of gnus.") diff --git a/lisp/message.el b/lisp/message.el index 3b2921c..63cdc3e 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -1270,6 +1270,7 @@ C-c C-w message-insert-signature (insert `message-signature-file' file). C-c C-y message-yank-original (insert current message, if any). C-c C-q message-fill-yanked-message (fill what was yanked). C-c C-e message-elide-region (elide the text between point and mark). +C-c C-z message-kill-to-signature (kill the text up to the signature). C-c C-r message-caesar-buffer-body (rot13 the message body)." (interactive) (kill-all-local-variables) diff --git a/lisp/nnkiboze.el b/lisp/nnkiboze.el index 54c3ee0..7f3d927 100644 --- a/lisp/nnkiboze.el +++ b/lisp/nnkiboze.el @@ -153,17 +153,19 @@ (deffoo nnkiboze-request-delete-group (group &optional force server) (nnkiboze-possibly-change-group group) (when force - (let ((files (list (nnkiboze-nov-file-name) - (concat nnkiboze-directory - (nnheader-translate-file-chars - (concat group ".newsrc"))) - (nnkiboze-score-file group)))) + (let ((files (nconc + (nnkiboze-score-file group) + (list (nnkiboze-nov-file-name) + (concat nnkiboze-directory + (nnheader-translate-file-chars + (concat group ".newsrc"))))))) (while files (and (file-exists-p (car files)) (file-writable-p (car files)) (delete-file (car files))) (setq files (cdr files))))) - (setq nnkiboze-current-group nil)) + (setq nnkiboze-current-group nil) + t) (nnoo-define-skeleton nnkiboze) diff --git a/lisp/nntp.el b/lisp/nntp.el index bb43a3d..78ccb16 100644 --- a/lisp/nntp.el +++ b/lisp/nntp.el @@ -984,8 +984,12 @@ password contained in '~/.nntp-authinfo'." (goto-char (point-min)) (while (not (eobp)) (end-of-line) - (insert "\r") - (forward-line 1)))) + (delete-char 1) + (insert nntp-end-of-line) + (forward-line 1)) + (forward-char -1) + (unless (eq (char-after (1- (point))) ?\r) + (insert "\r")))) (defun nntp-retrieve-headers-with-xover (articles &optional fetch-old) (set-buffer nntp-server-buffer) @@ -1192,11 +1196,12 @@ password contained in '~/.nntp-authinfo'." (apply 'start-process "nntpd" buffer nntp-rlogin-program nntp-address nntp-rlogin-parameters)))) - (set-buffer buffer) - (nntp-wait-for-string "^\r*20[01]") - (beginning-of-line) - (delete-region (point-min) (point)) - proc)) + (save-excursion + (set-buffer buffer) + (nntp-wait-for-string "^\r*20[01]") + (beginning-of-line) + (delete-region (point-min) (point)) + proc))) (defun nntp-find-group-and-number () (save-excursion diff --git a/texi/ChangeLog b/texi/ChangeLog index 683bef5..4eb4dd4 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,11 @@ +Sat Mar 28 08:57:46 1998 Lars Magne Ingebrigtsen + + * gnus.texi (Example Methods): Addition. + +Thu Mar 26 15:47:54 1998 Lars Magne Ingebrigtsen + + * gnus.texi (Limiting): Mention `/ *'. + Thu Mar 19 13:02:20 1998 Lars Magne Ingebrigtsen * gnus.texi (NNTP): Addition. diff --git a/texi/gnus.texi b/texi/gnus.texi index fee4109..4069212 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Gnus 5.6.3 Manual +@settitle Gnus 5.6.4 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.3 Manual +@title Gnus 5.6.4 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.3. +This manual corresponds to Gnus 5.6.4. @end ifinfo @@ -4484,6 +4484,11 @@ Display all expunged articles @findex gnus-summary-limit-include-dormant Display all dormant articles (@code{gnus-summary-limit-include-dormant}). +@item / * +@kindex / * (Summary) +@findex gnus-summary-limit-include-cached +Display all cached articles (@code{gnus-summary-limit-include-cached}). + @item / d @kindex / d (Summary) @findex gnus-summary-limit-exclude-dormant @@ -8676,6 +8681,24 @@ should probably look something like this: ("telnet" "the.real.nntp.host" "nntp"))) @end lisp +If you want to use the wonderful @code{ssh} program to provide a +compressed connection over the modem line, you could create a virtual +server that would look something like this: + +@lisp +(nntp "news" + (nntp-address "copper.uio.no") + (nntp-rlogin-program "ssh") + (nntp-open-connection-function nntp-open-rlogin) + (nntp-end-of-line "\n") + (nntp-rlogin-parameters + ("telnet" "news.uio.no" "nntp"))) +@end lisp + +This means that you have to have set up @code{ssh-agent} correctly to +provide automatic authorization, of course. And to get a compressed +connection, you have to have the @samp{Compression} option in the +@code{ssh} @file{config} file. @node Creating a Virtual Server @@ -11911,7 +11934,7 @@ Regexp matching Before date. @item a -At date. +After date. @item n This date. @@ -15642,8 +15665,9 @@ Pete Ware, Barry A. Warsaw, Christoph Wedler, Joe Wells, +Katsumi Yamaoka, @c Yamaoka and -Katsumi Yamaoka. @c Yamaoka +Shenghuo Zhu. @c Zhu For a full overview of what each person has done, the ChangeLogs included in the Gnus alpha distributions should give ample reading @@ -15664,7 +15688,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.3. +* Quassia Gnus:: Two times two is four, or Gnus 5.6.4. @end menu These lists are, of course, just @emph{short} overviews of the @@ -16199,7 +16223,7 @@ Emphasized text can be properly fontisized: @node Quassia Gnus @subsubsection Quassia Gnus -New features in Gnus 5.6.3: +New features in Gnus 5.6.4: @itemize @bullet @@ -17485,6 +17509,10 @@ in a special, unique buffer. A command to send a mail to the admin-address group param. @item +A Date scoring type that will match if the article +is less than a certain number of days old. + +@item Solve the halting problem. @c TODO diff --git a/texi/message.texi b/texi/message.texi index 648c800..8b5b43e 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Message 5.6.3 Manual +@settitle Message 5.6.4 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.3 Manual +@title Message 5.6.4 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.3. Message is distributed with +This manual corresponds to Message 5.6.4. Message is distributed with the Gnus distribution bearing the same version number as this manual has. -- 1.7.10.4