+Tue Sep 16 00:18:11 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Quassia Gnus v0.5 is released.
+
+Mon Sep 15 00:53:50 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-sum.el (gnus-alter-header-function): New variable.
+ (gnus-nov-parse-line): Use it.
+ (gnus-get-newsgroup-headers): Ditto.
+
+ * gnus-draft.el (gnus-group-send-drafts): Don't send when
+ unplugged.
+
+ * gnus-sum.el (gnus-summary-read-group): Don't show-all when
+ skipping groups.
+
+ * gnus-start.el (gnus-start-draft-setup): Changed name.
+
Mon Sep 15 00:40:09 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Quassia Gnus v0.4 is released.
'("Agent"
["Toggle plugged" gnus-agent-toggle-plugged t]
["List categories" gnus-enter-category-buffer t]
+ ["Send drafts" gnus-group-send-drafts gnus-plugged]
("Fetch"
- ["Group" gnus-agent-fetch-group t])))))
+ ["All" gnus-agent-fetch-session gnus-plugged]
+ ["Group" gnus-agent-fetch-group gnus-plugged])))))
(defvar gnus-agent-summary-mode-map (make-sparse-keymap))
(gnus-define-keys gnus-agent-summary-mode-map
;;; Utility functions
-(defun gnus-draft-setup (article &optional group)
+(defun gnus-draft-setup (article)
(gnus-setup-message 'forward
(message-mail)
(erase-buffer)
;; Do the actual startup.
(gnus-setup-news nil level dont-connect)
- (gnus-draft-setup)
+ (gnus-start-draft-setup)
;; Generate the group buffer.
(gnus-group-list-groups level)
(gnus-group-first-unread-group)
(gnus-group-set-mode-line)
(run-hooks 'gnus-started-hook))))))
-(defun gnus-draft-setup ()
+(defun gnus-start-draft-setup ()
"Make sure the draft group exists."
(unless (gnus-gethash "nndraft:draft" gnus-newsrc-hashtb)
(gnus-request-create-group "draft" '(nndraft ""))
:type '(repeat (cons (sexp :tag "Form" nil)
face)))
+(defcustom gnus-alter-header-function nil
+ "Function called to allow alteration of article header structures.
+The function is called with one parameter, the article header vector,
+which it may alter in any way.")
;;; Internal variables
(while (and group
(null (setq result
(let ((gnus-auto-select-next nil))
- (gnus-summary-read-group-1
- group show-all no-article
- kill-buffer no-display))))
+ (or (gnus-summary-read-group-1
+ group show-all no-article
+ kill-buffer no-display)
+ (setq show-all nil)))))
(eq gnus-auto-select-next 'quietly))
(set-buffer gnus-group-buffer)
(if (not (equal group (gnus-group-group-name)))
(nnheader-header-value)))))
(when (equal id ref)
(setq ref nil))
+
+ (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))))
+
;; We do the threading while we read the headers. The
;; message-id and the last reference are both entered into
;; the same hash table. Some tippy-toeing around has to be
(setq header
(vector
number ; number
- ;; 1997/5/4 by MORIOKA Tomohiko <morioka@jaist.ac.jp>
(funcall
gnus-unstructured-field-decoder (gnus-nov-field)) ; subject
(funcall
- gnus-structured-field-decoder (gnus-nov-field)) ; from
+ gnus-structured-field-decoder (gnus-nov-field)) ; from
(gnus-nov-field) ; date
(setq id (or (gnus-nov-field)
(nnheader-generate-fake-message-id))) ; id
(widen))
+ (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))))
+
;; We build the thread tree.
(when (equal id ref)
;; This article refers back to itself. Naughty, naughty.
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "0.4"
+(defconst gnus-version-number "0.5"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Quassia Gnus v%s" gnus-version-number)
+Mon Sep 15 23:10:05 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.texi (Customizing Threading): Addition.
+
Sun Sep 14 21:59:07 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus.texi (Outgoing Messages): New.
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Quassia Gnus 0.4 Manual
+@settitle Quassia Gnus 0.5 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Quassia Gnus 0.4 Manual
+@title Quassia Gnus 0.5 Manual
@author by Lars Magne Ingebrigtsen
@page
spool or your mbox file. All at the same time, if you want to push your
luck.
-This manual corresponds to Quassia Gnus 0.4.
+This manual corresponds to Quassia Gnus 0.5.
@end ifinfo
slightly decoded in a hackish way. This is likely to change in the
future when Gnus becomes @sc{MIME}ified.
+@item gnus-alter-header-function
+@vindex gnus-alter-header-function
+If non-@code{nil}, this function will be called to allow alteration of
+article header structures. The function is called with one parameter,
+the article header vector, which it may alter in any way. For instance,
+if you have a mail-to-news gateway which alters the @code{Message-ID}s
+in systematic ways (by adding prefixes and such), you can use this
+variable to un-scramble the @code{Message-ID}s so that they are more
+meaningful. Here's one example:
+
+@lisp
+(setq gnus-alter-header-function 'my-alter-message-id)
+
+(defun my-alter-message-id (header)
+ (let ((id (mail-header-id header)))
+ (when (string-match
+ "\\(<[^<>@]*\\)\\.?cygnus\\..*@\\([^<>@]*>\\)" id)
+ (mail-header-set-id
+ (concat (match-string 1 id) "@" (match-string 2 id))
+ header))))
+@end lisp
+
@end table
\input texinfo @c -*-texinfo-*-
@setfilename message
-@settitle Message 0.4 Manual
+@settitle Message 0.5 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Message 0.4 Manual
+@title Message 0.5 Manual
@author by Lars Magne Ingebrigtsen
@page
* Key Index:: List of Message mode keys.
@end menu
-This manual corresponds to Message 0.4. Message is distributed with
+This manual corresponds to Message 0.5. Message is distributed with
the Gnus distribution bearing the same version number as this manual
has.