+Tue Jan 6 07:45:39 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Quassia Gnus v0.22 is released.
+
+Tue Jan 6 07:32:02 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * message.el (message-kill-to-signature): Don't use mark.
+
+Tue Jan 6 07:30:46 1998 Russ Allbery <rra@stanford.edu>
+
+ * message.el (message-kill-to-signature): New command and keystroke.
+
+Tue Jan 6 06:39:29 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-sum.el (gnus-summary-print-article): New defaults for
+ headers and stuff.
+
+ * gnus-agent.el (gnus-agent-batch): New command.
+
+ * nnoo.el (nnoo-execute): Copy vars from parent into child.
+ (nnoo-parent-function): Ditto.
+
+ * gnus-draft.el (gnus-draft-setup): Removed message.
+
+ * gnus-start.el (gnus-read-descriptions-file): Naked muleism.
+
+Mon Jan 5 05:20:16 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * nnml.el (nnml-generate-nov-databases-1): Fix lower bound on
+ empty groups.
+
Sun Jan 4 14:38:36 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Quassia Gnus v0.21 is released.
(delete-file file))))))
(gnus-agent-save-alist nil nil nil dir))))
+;;;###autoload
+(defun gnus-agent-batch ()
+ (interactive)
+ (let ((init-file-user "")
+ (gnus-always-read-dribble-file t))
+ (gnus))
+ (gnus-group-send-drafts)
+ (gnus-agent-fetch-session))
+
(provide 'gnus-agent)
;;; gnus-agent.el ends here
(let ((article narticle))
(message-mail)
(erase-buffer)
- (message "%s %s" group article)
(if (not (gnus-request-restore-buffer article group))
(error "Couldn't restore the article")
;; Insert the separator.
(fset 'gnus-summary-set-display-table 'ignore)
(fset 'gnus-encode-coding-string 'encode-coding-string)
(fset 'gnus-decode-coding-string 'decode-coding-string)
-
+
(when (boundp 'gnus-check-before-posting)
(setq gnus-check-before-posting
(delq 'long-lines
;;; Internal variables
+(defvar gnus-always-read-dribble-file nil
+ "Uncoditionally read the dribble file.")
+
(defvar gnus-newsrc-file-version nil)
(defvar gnus-override-subscribe-method nil)
(defvar gnus-dribble-buffer nil)
(setq modes (file-modes gnus-current-startup-file)))
(set-file-modes dribble-file modes))
;; Possibly eval the file later.
- (when (gnus-y-or-n-p
- "Gnus auto-save file exists. Do you want to read it? ")
+ (when (or gnus-always-read-dribble-file
+ (gnus-y-or-n-p
+ "Gnus auto-save file exists. Do you want to read it? "))
(setq gnus-dribble-eval-file t)))))))
(defun gnus-dribble-eval-file ()
(fboundp 'gnus-mule-get-coding-system)
(gnus-mule-get-coding-system (symbol-name group)))))
(if coding
- (setq str (decode-coding-string str (car coding))))
+ (setq str (gnus-decode-coding-string str (car coding))))
(set group str)))
(forward-line 1))))
(gnus-message 5 "Reading descriptions file...done")
(copy-to-buffer buffer (point-min) (point-max))
(set-buffer buffer)
(gnus-article-delete-invisible-text)
- (run-hooks 'gnus-ps-print-hook)
- (ps-print-buffer-with-faces filename))
+ (let ((ps-left-header
+ (list
+ (concat "("
+ (mail-header-subject gnus-current-headers) ")")
+ (concat "("
+ (mail-header-from gnus-current-headers) ")")))
+ (ps-right-header
+ (list
+ "/pagenumberstring load"
+ (concat "("
+ (mail-header-date gnus-current-headers) ")"))))
+ (run-hooks 'gnus-ps-print-hook)
+ (ps-print-buffer-with-faces filename)))
(kill-buffer buffer))))))
(defun gnus-summary-show-article (&optional arg)
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "0.21"
+(defconst gnus-version-number "0.22"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Quassia Gnus v%s" gnus-version-number)
gnus-start-date-timer gnus-stop-date-timer)
("gnus-int" gnus-request-type)
("gnus-start" gnus-newsrc-parse-options gnus-1 gnus-no-server-1
- gnus-dribble-enter)
+ gnus-dribble-enter gnus-read-init-file)
("gnus-dup" gnus-dup-suppress-articles gnus-dup-unsuppress-article
gnus-dup-enter-articles)
("gnus-range" gnus-copy-sequence)
gnus-async-halt-prefetch)
("gnus-agent" gnus-open-agent gnus-agent-get-function
gnus-agent-save-groups gnus-agent-save-active gnus-agent-method-p
- gnus-agent-get-undownloaded-list)
+ gnus-agent-get-undownloaded-list gnus-agent-fetch-session)
("gnus-agent" :interactive t
- gnus-unplugged gnus-agentize)
+ gnus-unplugged gnus-agentize gnus-agent-batch)
("gnus-vm" :interactive t gnus-summary-save-in-vm
gnus-summary-save-article-vm)
("gnus-draft" :interactive t gnus-draft-mode gnus-group-send-drafts))))
(define-key message-mode-map "\C-c\C-e" 'message-elide-region)
(define-key message-mode-map "\C-c\C-v" 'message-delete-not-region)
+ (define-key message-mode-map "\C-c\C-z" 'message-kill-to-signature)
(define-key message-mode-map "\M-\r" 'message-newline-and-reformat)
(define-key message-mode-map "\t" 'message-tab))
["Caesar (rot13) Region" message-caesar-region (mark t)]
["Elide Region" message-elide-region (mark t)]
["Delete Outside Region" message-delete-not-region (mark t)]
+ ["Kill To Signature" message-kill-to-signature t]
["Newline and Reformat" message-newline-and-reformat t]
["Rename buffer" message-rename-buffer t]
["Spellcheck" ispell-message t]
(message-goto-signature)
(forward-line -2))
+(defun message-kill-to-signature ()
+ "Deletes all text up to the signature."
+ (interactive)
+ (let ((point (point)))
+ (message-goto-signature)
+ (kill-region point (point))))
+
(defun message-newline-and-reformat ()
"Insert four newlines, and then reformat if inside quoted text."
(interactive)
;; Do this directory.
(let ((files (sort (nnheader-article-to-file-alist dir)
'car-less-than-car)))
- (when files
+ (if (not files)
+ (let* ((group (nnheader-file-to-group
+ (directory-file-name dir) nnml-directory))
+ (info (cadr (assoc group nnml-group-alist))))
+ (when info
+ (setcar info (1+ (cdr info)))))
(funcall nnml-generate-active-function dir)
;; Generate the nov file.
(nnml-generate-nov-file dir files)
(nnoo-change-server pbackend
(nnoo-current-server backend)
(cdr (assq pbackend (nnoo-parents backend))))
- (apply function args)))
+ (prog1
+ (apply function args)
+ ;; Copy the changed variables back into the child.
+ (let ((vars (cdr (assq pbackend (nnoo-parents backend)))))
+ (while vars
+ (set (cadar vars) (symbol-value (caar vars)))
+ (setq vars (cdr vars)))))))
(defun nnoo-execute (backend function &rest args)
"Execute FUNCTION on behalf of BACKEND."
(nnoo-change-server pbackend
(nnoo-current-server backend)
(cdr (assq pbackend (nnoo-parents backend))))
- (apply function args)))
+ (prog1
+ (apply function args)
+ ;; Copy the changed variables back into the child.
+ (let ((vars (cdr (assq pbackend (nnoo-parents backend)))))
+ (while vars
+ (set (cadar vars) (symbol-value (caar vars)))
+ (setq vars (cdr vars)))))))
(defmacro nnoo-map-functions (backend &rest maps)
`(nnoo-map-functions-1 ',backend ',maps))
+Tue Jan 6 07:22:41 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.texi (Batching Agents): New.
+
+1998-01-04 Christoph Wedler <wedler@fmi.uni-passau.de>
+
+ * gnus.texi (Newest Features): Delete spaces after @end example.
+ In XEmacs, `texinfo-format-buffer' would bug out.
+
Sun Jan 4 12:04:45 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus.texi (Conformity): Removed GNKSA.
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Quassia Gnus 0.21 Manual
+@settitle Quassia Gnus 0.22 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Quassia Gnus 0.21 Manual
+@title Quassia Gnus 0.22 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.21.
+This manual corresponds to Quassia Gnus 0.22.
@end ifinfo
* Outgoing Messages:: What happens when you post/mail something?
* Agent Variables:: Customizing is fun.
* Example Setup:: An example @file{.gnus.el} file for offline people.
+* Batching Agents:: How to fetch news from a @code{cron} job.
@end menu
find out which of the other gazillion things you want to customize.
+@node Batching Agents
+@subsection Batching Agents
+
+Having the Gnus Agent fetch articles (and post whatever messages you've
+written) is quite easy once you've gotten things set up properly. The
+following shell script will do everything that is necessary:
+
+@example
+#!/bin/sh
+emacs -batch -l ~/.emacs -f gnus-agent-batch >/dev/null
+@end example
+
+
+
@node Scoring
@chapter Scoring
@cindex scoring
next-article;
else
next-group;
-@end example
+@end example
@item
My precise need here would have been to limit files to Incoming*.
When the nntp server hangs up while the user is composing the message,
when sending the message and the nntp server asks for AUTH, Gnus hangs.
+@item
+One command to edit the original version if an article, and one to edit
+the displayed version.
+
@c TODO
@end itemize
\input texinfo @c -*-texinfo-*-
@setfilename message
-@settitle Message 0.21 Manual
+@settitle Message 0.22 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Message 0.21 Manual
+@title Message 0.22 Manual
@author by Lars Magne Ingebrigtsen
@page
* Key Index:: List of Message mode keys.
@end menu
-This manual corresponds to Message 0.21. Message is distributed with
+This manual corresponds to Message 0.22. Message is distributed with
the Gnus distribution bearing the same version number as this manual
has.
The text is killed and an ellipsis (@samp{[...]}) will be inserted in
its place.
+@item C-c C-z
+@kindex C-c C-x
+@findex message-kill-to-signature
+Kill all the text up to the signature, or if that's missing, up to the
+end of the message (@code{message-kill-to-signature}).
+
@item C-c C-v
@kindex C-c C-v
@findex message-delete-not-region