+Thu Feb 29 09:15:05 1996 Lars Ingebrigtsen <lars@eyesore.no>
+
+ * nnvirtual.el (nnvirtual-create-mapping): Copy article marks.
+
+ * gnus.el (gnus-add-marked-articles): Would corrupt the
+ .newsrc.eld file.
+
+ * gnus-vis.el (gnus-group-highlight-line): Make sure `level' and
+ `score' are numbers.
+
+ * gnus-msg.el (gnus-inews-insert-archive-gcc): Group would be nil
+ when posting from the group buffer.
+
+ * gnus.el (gnus-fetch-group): Really fetch the group.
+ (gnus-summary-recenter): Respect `vertical'.
+ (gnus-recenter): Heed the prefix.
+
+Thu Feb 29 08:58:59 1996 Roderick Schertler <roderick@gate.net>
+
+ * gnus-score.el (gnus-score-after-write-file-function): New
+ variable.
+
+Thu Feb 29 08:00:08 1996 Lars Ingebrigtsen <lars@eyesore.no>
+
+ * gnus.el (gnus-after-getting-new-news-hook): New hook.
+
+ * gnus-uu.el (gnus-uu-digest-mail-forward): Use normal
+ process/prefix convetions.
+
+ * nnfolder.el (nnfolder-request-scan): Kill buffers after saving.
+
Wed Feb 28 04:39:49 1996 Lars Ingebrigtsen <lars@eyesore.no>
+ * gnus.el: 0.46 is released.
+
* gnus.el (gnus-read-active-file): Don't try to retrieve groups
when no can be found.
(gnus-find-method-for-group): Return "cleaner" select methods.
(auto-save-mode auto-save-default)
(gnus-inews-insert-gcc)
- (gnus-inews-insert-archive-gcc)
+ (gnus-inews-insert-archive-gcc group)
(when (and follow-to (listp follow-to))
(let (beg)
(gnus-inews-insert-bfcc)
(gnus-inews-insert-gcc)
- (gnus-inews-insert-archive-gcc)
+ (gnus-inews-insert-archive-gcc group)
(gnus-inews-insert-signature)
(and gnus-post-prepare-function
(gnus-functionp gnus-post-prepare-function)
(gnus-inews-insert-bfcc)
(gnus-inews-insert-gcc)
- (gnus-inews-insert-archive-gcc)
+ (gnus-inews-insert-archive-gcc group)
;; Now the headers should be ok, so we do the yanking.
(goto-char (point-min))
(mapconcat 'identity gcc " "))
"\n"))))))
-(defun gnus-inews-insert-archive-gcc ()
+(defun gnus-inews-insert-archive-gcc (&optional group)
"Insert the Gcc to say where the article is to be archived."
(let* ((var gnus-message-archive-group)
+ (group (or group gnus-newsgroup-name ""))
result
(groups
(cond
var)
((gnus-functionp var)
;; A function.
- (funcall var gnus-newsgroup-name))
+ (funcall var group))
(t
;; An alist of regexps/functions/forms.
(while (and var
(cond
((stringp (caar var))
;; Regexp.
- (when (string-match (caar var)
- gnus-newsgroup-name)
+ (when (string-match (caar var) group)
(cdar var)))
((gnus-functionp (car var))
;; Function.
- (funcall (car var) gnus-newsgroup-name))
+ (funcall (car var) group))
(t
(eval (car var)))))))
(setq var (cdr var)))
If nil, the user will be asked for a duration.")
+(defvar gnus-score-after-write-file-function nil
+ "*Function called with the name of the score file just written to disk.")
+
\f
;; Internal variables.
(if (zerop (buffer-size))
(delete-file file)
;; There are scores, so we write the file.
- (and (file-writable-p file)
- (write-region (point-min) (point-max)
- file nil 'silent))))
+ (when (file-writable-p file)
+ (write-region (point-min) (point-max) file nil 'silent)
+ (and gnus-score-after-write-file-function
+ (funcall gnus-score-after-write-file-function file)))))
(and gnus-score-uncacheable-files
(string-match gnus-score-uncacheable-files file)
(gnus-score-remove-from-cache file)))))
(let ((gnus-uu-save-in-digest t)
(file (make-temp-name (concat gnus-uu-tmp-dir "forward")))
buf subject from)
+ (setq gnus-newsgroup-processable
+ (gnus-summary-work-articles n))
(setq gnus-uu-digest-from-subject nil)
- (gnus-uu-decode-save n file)
+ (gnus-uu-decode-save nil file)
(gnus-uu-add-file file)
(setq buf (switch-to-buffer (get-buffer-create " *gnus-uu-forward*")))
(gnus-add-current-to-buffer-list)
(mailp (memq 'mail (assoc (symbol-name
(car (or method gnus-select-method)))
gnus-valid-select-methods)))
- (level (gnus-info-level info))
- (score (gnus-info-score info))
+ (level (or (gnus-info-level info) 9))
+ (score (or (gnus-info-score info) 0))
(ticked (gnus-range-length (cdr (assq 'tick marked))))
(inhibit-read-only t))
;; Eval the cars of the lists until we find a match.
(defvar gnus-get-new-news-hook nil
"*A hook run just before Gnus checks for new news.")
+(defvar gnus-after-getting-new-news-hook nil
+ "*A hook run after Gnus checks for new news.")
+
(defvar gnus-group-prepare-function 'gnus-group-prepare-flat
"*A function that is called to generate the group buffer.
The function is called with three arguments: The first is a number;
"gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
"The mail address of the Gnus maintainers.")
-(defconst gnus-version "September Gnus v0.46"
+(defconst gnus-version "September Gnus v0.47"
"Version number for this version of Gnus.")
(defvar gnus-info-nodes
(interactive "sGroup name: ")
(or (get-buffer gnus-group-buffer)
(gnus))
- (gnus-group-select-group))
+ (gnus-group-read-group nil nil group))
;; Enter a group that is not in the group buffer. Non-nil is returned
;; if selection was successful.
(gnus-get-unread-articles arg))
(let ((gnus-read-active-file (if arg nil gnus-read-active-file)))
(gnus-get-unread-articles arg)))
+ (run-hooks 'gnus-after-getting-new-news-hook)
(gnus-group-list-groups))
(defun gnus-group-get-new-news-this-group (&optional n)
(if force
(if (null articles)
(setcar (nthcdr 3 info)
- (delq (assq type marked) marked))
+ (delq (assq type (car marked)) (car marked)))
(setcdr m (gnus-compress-sequence articles t)))
(setcdr m (gnus-compress-sequence
(sort (nconc (gnus-uncompress-range m)
(defun gnus-recenter (&optional n)
"Center point in window and redisplay frame.
Also do horizontal recentering."
- (interactive)
+ (interactive "P")
(when (and gnus-auto-center-summary
(not (eq gnus-auto-center-summary 'vertical)))
(gnus-horizontal-recenter))
window (min bottom (save-excursion
(forward-line (- top)) (point)))))
;; Do horizontal recentering while we're at it.
- (when (get-buffer-window (current-buffer) t)
+ (when (and (get-buffer-window (current-buffer) t)
+ (not (eq gnus-auto-center-summary 'vertical)))
(let ((selected (selected-window)))
(select-window (get-buffer-window (current-buffer) t))
(gnus-summary-position-point)
(setq nnfolder-buffer-alist
(delq (car bufs) nnfolder-buffer-alist))
(set-buffer (nth 1 (car bufs)))
- (and (buffer-modified-p) (save-buffer)))
+ (and (buffer-modified-p) (save-buffer))
+ (kill-buffer (current-buffer)))
(setq bufs (cdr bufs))))))
nnfolder-directory
group))
(defun nnvirtual-create-mapping ()
"Create an article mapping for the current group."
- (let* (div
+ (let* (div m marks article list
(map (sort
(apply
'nconc
(list (* div (- n (car active)))
g n (and (memq n unreads) t)
(nnvirtual-marks n marks)))
- (gnus-uncompress-range active))))))
- nnvirtual-component-groups))
+ (gnus-uncompress-range active))))))
+ nnvirtual-component-groups))
(lambda (m1 m2)
(< (car m1) (car m2)))))
(i 0))
(setq nnvirtual-mapping map)
- (while map
- (setcar (pop map) (incf i)))))
+ (while (setq m (pop map))
+ (setcar m (setq article (incf i)))
+ (when (setq marks (nth 4 m))
+ (while marks
+ (set (setq list
+ (intern (concat "gnus-newsgroup-"
+ (symbol-name
+ (car (rassq (pop marks)
+ gnus-article-mark-lists))))))
+ (cons article (symbol-value list))))))))
+
+
(provide 'nnvirtual)
@vindex gnus-get-new-news-hook
@code{gnus-get-new-news-hook} is run just before checking for new news.
+@vindex gnus-after-getting-new-news-hook
+@code{gnus-after-getting-new-news-hook} is run after checking for new
+news.
+
@node Group Information
@subsection Group Information
even matching entries will grow old and will have to face that oh-so
grim reaper.
+@item gnus-score-after-write-file-function
+@vindex gnus-score-after-write-file-function
+Function called with the name of the score file just written.
+
@end table
* Terminology:: We use really difficult, like, words here.
* Customization:: Tailoring Gnus to your needs.
* Troubleshooting:: What you might try if things do not work.
-* A Programmer@'s Guide to Gnus:: Rilly, rilly technical stuff.
+* A Programmers Guide to Gnus:: Rilly, rilly technical stuff.
* Emacs for Heathens:: A short introduction to Emacsian terms.
* Frequently Asked Questions:: A question-and-answer session.
@end menu
Write to @samp{ding-request@@ifi.uio.no} to subscribe.
-@node A Programmer@'s Guide to Gnus
+@node A Programmers Guide to Gnus
@section A Programmer's Guide to Gnus
It is my hope that other people will figure out smart stuff that Gnus