*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Sun, 29 Mar 1998 07:56:24 +0000 (07:56 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Sun, 29 Mar 1998 07:56:24 +0000 (07:56 +0000)
13 files changed:
lisp/ChangeLog
lisp/gnus-agent.el
lisp/gnus-int.el
lisp/gnus-score.el
lisp/gnus-sum.el
lisp/gnus-util.el
lisp/gnus.el
lisp/message.el
lisp/nnkiboze.el
lisp/nntp.el
texi/ChangeLog
texi/gnus.texi
texi/message.texi

index 6aa0dae..97b7710 100644 (file)
@@ -1,3 +1,44 @@
+Sun Mar 29 09:56:00 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.6.4 is released.
+
+Sun Mar 29 09:47:58 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * nnkiboze.el (nnkiboze-request-delete-group): Would bug out when
+       deleting files.
+
+Sat Mar 28 08:48:31 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * nntp.el (nntp-encode-text): Use `nntp-end-of-line'.
+
+Thu Mar 26 15:29:51 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * 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  <mike@lotusland.demon.co.uk>
+
+       * gnus-score.el (gnus-score-default-type): Doc fix.
+
+Mon Mar 23 14:12:01 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * 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  <jari.aalto@poboxes.com>
+
+       * gnus-art.el (gnus-article-edit-article-hook): New hook.
+
+1998-03-19  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * nntp.el (nntp-open-rlogin): Wrap in save-excursion
+
+Thu Mar 19 16:43:59 1998  Joe Buehler  <jhpb@hekimian.com>
+
+       * gnus-util.el (gnus-date-iso8601): Use simple string.
+
 Thu Mar 19 15:18:00 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Gnus v5.6.3 is released.
index 868ba89..3abe47e 100644 (file)
@@ -1233,73 +1233,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 ()
index 78a943a..f8acea9 100644 (file)
@@ -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."
index 48709b7..435b288 100644 (file)
@@ -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)))
index cb5476b..5cd57e1 100644 (file)
@@ -816,7 +816,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)
index 34f0e93..a98f9e5 100644 (file)
@@ -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)
index 1a5ac7e..866a374 100644 (file)
@@ -246,7 +246,7 @@ is restarted, and sometimes reloaded."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "5.6.3"
+(defconst gnus-version-number "5.6.4"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Gnus v%s" gnus-version-number)
index fad9df7..9b679be 100644 (file)
@@ -1258,6 +1258,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)
index 54c3ee0..7f3d927 100644 (file)
 (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)
 
index bb43a3d..78ccb16 100644 (file)
@@ -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
index 683bef5..4eb4dd4 100644 (file)
@@ -1,3 +1,11 @@
+Sat Mar 28 08:57:46 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus.texi (Example Methods): Addition.
+
+Thu Mar 26 15:47:54 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus.texi (Limiting): Mention `/ *'.
+
 Thu Mar 19 13:02:20 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus.texi (NNTP): Addition.
index fee4109..4069212 100644 (file)
@@ -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
 
@@ -17484,6 +17508,10 @@ in a special, unique buffer.
 @item
 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.
 
index 648c800..8b5b43e 100644 (file)
@@ -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.