+Tue Sep 10 19:10:09 1996 Lars Magne Ingebrigtsen <larsi@ylfing.ifi.uio.no>
+
+ * gnus-kill.el (gnus-batch-score): Didn't work at all.
+
+ * gnus-msg.el (gnus-summary-mail-nastygram): Place point at
+ appropriate place.
+
+ * gnus-util.el (gnus-make-sort-function): Would nix out the
+ sorting list.
+
+ * gnus-demon.el (gnus-demon-cancel): Don't run
+ `cancel-function-timers'.
+
+ * message.el (message-header-format-alist): Don't fill References
+ headers.
+
+Mon Sep 9 21:51:46 1996 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * nntp.el (nntp-server-action-alist): Don't try LIST ACTIVE GROUP
+ on Netscape's brain-dead nntp server.
+
+ * message.el (message-dont-send): Take proper actions.
+
+Mon Sep 9 21:46:44 1996 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.el: Red Gnus v0.31 is released.
+
Mon Sep 9 21:16:11 1996 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+ * gnus-msg.el (gnus-copy-article-buffer): Decode headers after
+ copying.
+
* gnus-picon.el (gnus-picons-refresh-before-display): New
variable.
(gnus-picons-insert-face-if-exists): Put bar back in.
(nnheader-cancel-timer gnus-demon-timer))
(setq gnus-demon-timer nil
gnus-use-demon nil)
- (nnheader-cancel-function-timers 'gnus-demon))
+ ;;(nnheader-cancel-function-timers 'gnus-demon)
+ )
(defun gnus-demon-is-idle-p ()
"Whether Emacs is idle or not."
(defvar gnus-dup-list nil)
(defvar gnus-dup-hashtb nil)
+(defvar gnus-dup-list-dirty nil)
+
;;;
;;; Starting and stopping
;;;
(defun gnus-dup-close ()
"Possibly save the duplicate suppression list and shut down the subsystem."
- (when gnus-save-duplicate-list
- (gnus-dup-save))
+ (gnus-dup-save)
(setq gnus-dup-list nil
- gnus-dup-hashtb nil))
+ gnus-dup-hashtb nil
+ gnus-dup-list-dirty nil))
(defun gnus-dup-open ()
"Possibly read the duplicate suppression list and start the subsystem."
(defun gnus-dup-save ()
"Save the duplicate suppression list."
- (nnheader-temp-write gnus-duplicate-file
- (gnus-prin1 `(setq gnus-duplicate-file ',gnus-duplicate-file))))
+ (when (and gnus-save-duplicate-list
+ gnus-dup-list-dirty)
+ (nnheader-temp-write gnus-duplicate-file
+ (gnus-prin1 `(setq gnus-dup-list ',gnus-dup-list))))
+ (setq gnus-dup-list-dirty nil))
;;;
;;; Interface functions
"Enter articles from the current group for future duplicate suppression."
(unless gnus-dup-list
(gnus-dup-open))
- (let ((data gnus-newsgroup-data))
+ (setq gnus-dup-list-dirty t) ; mark list for saving
+ (let ((data gnus-newsgroup-data)
+ datum)
;; Enter the Message-IDs of all read articles into the list
;; and hash table.
- (while data
- (when (and (not (gnus-data-pseudo-p data))
- (gnus-data-read-p (car data)))
- (intern (car (push (mail-header-id (gnus-data-header (car data)))
+ (while (setq datum (pop data))
+ (when (and (not (gnus-data-pseudo-p datum))
+ (gnus-data-read-p datum))
+ (intern (car (push (mail-header-id (gnus-data-header datum))
gnus-dup-list))
- gnus-dup-hashtb))
- (pop data))
- ;; Chop off excess Message-IDs from the list.
- (let ((end (nthcdr gnus-duplicate-list-length gnus-dup-list)))
- (when end
- (setcdr end nil)))))
+ gnus-dup-hashtb))))
+ ;; Chop off excess Message-IDs from the list.
+ (let ((end (nthcdr gnus-duplicate-list-length gnus-dup-list)))
+ (when end
+ (setcdr end nil))))
(defun gnus-dup-suppress-articles ()
"Mark duplicate articles as read."
(gnus-dup-open))
(gnus-message 6 "Suppressing duplicates...")
(let ((headers gnus-newsgroup-headers)
- number)
- (while headers
- (when (intern-soft (mail-header-id (car headers)) gnus-dup-hashtb)
+ number header)
+ (while (setq header (pop headers))
+ (when (intern-soft (mail-header-id header) gnus-dup-hashtb)
(setq gnus-newsgroup-unreads
- (delq (setq number (mail-header-number (car headers)))
+ (delq (setq number (mail-header-number header))
gnus-newsgroup-unreads))
(push (cons number gnus-duplicate-mark)
- gnus-newsgroup-reads))
- (pop headers)))
+ gnus-newsgroup-reads))))
(gnus-message 6 "Suppressing duplicates...done"))
(defun gnus-dup-unsuppress-article (article)
"Stop suppression of ARTICLE."
(let ((id (mail-header-id (gnus-data-header (gnus-data-find article)))))
(when id
+ (setq gnus-dup-list-dirty t)
(setq gnus-dup-list (delete id gnus-dup-list))
(unintern id gnus-dup-hashtb))))
"Port where the bbbd is listening" )
(defvar grouplens-newsgroups
- '("comp.lang.c++" "rec.humor" "rec.food.recipes" "comp.groupware"
+ '("comp.groupware" "comp.human-factors" "comp.lang.c++"
+ "comp.lang.java" "comp.os.linux.admin" "comp.os.linux.advocacy"
+ "comp.os.linux.announce" "comp.os.linux.answers"
+ "comp.os.linux.development" "comp.os.linux.development.apps"
+ "comp.os.linux.development.system" "comp.os.linux.hardware"
+ "comp.os.linux.help" "comp.os.linux.m68k" "comp.os.linux.misc"
+ "comp.os.linux.networking" "comp.os.linux.setup" "comp.os.linux.x"
"mn.general" "rec.arts.movies" "rec.arts.movies.current-films"
- "comp.lang.java" "comp.os.linux.announce" "comp.os.linux.misc"
- "comp.os.linux.development.apps" "comp.os.linux.development.system")
+ "rec.food.recipes" "rec.humor")
"*Groups that are part of the GroupLens experiment.")
(defvar grouplens-prediction-display 'prediction-spot
the comp hierarchy, you'd say \"comp.all\". If you would not like to
score the alt hierarchy, you'd say \"!alt.all\"."
(interactive)
- (let* ((yes-and-no
+ (let* ((gnus-newsrc-options-n
(gnus-newsrc-parse-options
- (apply (function concat)
- (mapcar (lambda (g) (concat g " "))
- command-line-args-left))))
+ (concat "options -n "
+ (mapconcat 'identity command-line-args-left " "))))
(gnus-expert-user t)
(nnmail-spool-file nil)
(gnus-use-dribble-file nil)
- (yes (car yes-and-no))
- (no (cdr yes-and-no))
group newsrc entry
;; Disable verbose message.
- gnus-novice-user gnus-large-newsgroup)
+ gnus-novice-user gnus-large-newsgroup
+ gnus-options-subscribe gnus-auto-subscribed-groups
+ gnus-options-not-subscribe)
;; Eat all arguments.
(setq command-line-args-left nil)
- ;; Start Gnus.
(gnus)
;; Apply kills to specified newsgroups in command line arguments.
(setq newsrc (cdr gnus-newsrc-alist))
- (while newsrc
- (setq group (caar newsrc))
+ (while (setq group (car (pop newsrc)))
(setq entry (gnus-gethash group gnus-newsrc-hashtb))
- (if (and (<= (nth 1 (car newsrc)) gnus-level-subscribed)
- (and (car entry)
- (or (eq (car entry) t)
- (not (zerop (car entry)))))
- (if yes (string-match yes group) t)
- (or (null no) (not (string-match no group))))
- (progn
- (gnus-summary-read-group group nil t nil t)
- (and (eq (current-buffer) (get-buffer gnus-summary-buffer))
- (gnus-summary-exit))))
- (setq newsrc (cdr newsrc)))
+ (when (and (<= (nth 1 (car newsrc)) gnus-level-subscribed)
+ (and (car entry)
+ (or (eq (car entry) t)
+ (not (zerop (car entry)))))
+ (eq (gnus-matches-options-n group) 'subscribe))
+ (gnus-summary-read-group group nil t nil t)
+ (when (eq (current-buffer) (get-buffer gnus-summary-buffer))
+ (gnus-summary-exit))))
;; Exit Emacs.
(switch-to-buffer gnus-group-buffer)
(gnus-group-save-newsrc)))
gnus-score-raise-thread gnus-score-lower-same-subject-and-select
gnus-score-lower-same-subject gnus-score-lower-thread
gnus-possibly-score-headers gnus-summary-raise-score
- gnus-summary-set-score gnus-summary-current-score)
+ gnus-summary-set-score gnus-summary-current-score
+ gnus-score-followup-article)
("gnus-score"
(gnus-summary-score-map keymap) gnus-score-save gnus-score-headers
gnus-current-score-file-nondirectory gnus-score-adaptive
(delete-region (goto-char (point-min))
(or (search-forward "\n\n" nil t) (point)))
;; Insert the original article headers.
- (insert-buffer-substring gnus-original-article-buffer beg end)))
+ (insert-buffer-substring gnus-original-article-buffer beg end)
+ (article-decode-rfc1522)))
gnus-article-copy)))
(defun gnus-post-news (post &optional group header article-buffer yank subject
(gnus-summary-mail-forward t))
(defvar gnus-nastygram-message
- "The following article was inappropriately posted to %s.\n"
+ "The following article was inappropriately posted to %s.\n\n"
"Format string to insert in nastygrams.
The current group name will be inserted at \"%s\".")
(let ((group gnus-newsgroup-name))
(gnus-summary-reply-with-original n)
(set-buffer gnus-message-buffer)
+ (message-goto-body)
(insert (format gnus-nastygram-message group))
(message-send-and-exit))))
"*List of groups that will be searched for NoCeM messages.")
(defvar gnus-nocem-issuers
- '("Automoose-1" ; The CancelMoose[tm] on autopilot.
- "clewis@ferret.ocunix.on.ca;" ; Chris Lewis -- Canadian angel & despammer.
- "jem@xpat.com;" ; John Milburn -- despammer in Korea.
- "red@redpoll.mrfs.oh.us (Richard E. Depew)" ; Spew/bincancel guy.
- )
+ '("AutoMoose-1" "Automoose-1" ; CancelMoose[tm]
+ "rbraver@ohww.norman.ok.us" ; Robert Braver
+ "clewis@ferret.ocunix.on.ca;" ; Chris Lewis
+ "jem@xpat.com;" ; Korean DeSpammer
+ "snowhare@xmission.com" ; Benjamin "Snowhare" Franz
+ "red@redpoll.mrfs.oh.us (Richard E. Depew)"
+ )
"*List of NoCeM issuers to pay attention to.")
(defvar gnus-nocem-directory
((null funs) funs)
((cdr funs)
`(lambda (t1 t2)
- ,(gnus-make-sort-function-1 (nreverse funs))))
+ ,(gnus-make-sort-function-1 (reverse funs))))
(t
(car funs))))
(eval '(run-hooks 'gnus-load-hook))
-(defconst gnus-version-number "0.31"
+(defconst gnus-version-number "0.32"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Red Gnus v%s" gnus-version-number)
(Lines)
(Expires)
(Message-ID)
- (References . message-fill-header)
+ (References)
(X-Mailer)
(X-Newsreader))
"Alist used for formatting headers.")
(defun message-dont-send ()
"Don't send the message you have been editing."
(interactive)
- (message-bury (current-buffer))
- (message-do-actions message-postpone-actions))
+ (let ((actions message-postpone-actions))
+ (message-bury (current-buffer))
+ (message-do-actions actions)))
(defun message-kill-buffer ()
"Kill the current buffer."
(defvoo nntp-server-action-alist
'(("nntpd 1\\.5\\.11t"
- (remove-hook 'nntp-server-opened-hook 'nntp-send-mode-reader)))
+ (remove-hook 'nntp-server-opened-hook 'nntp-send-mode-reader))
+ ("NNRP server Netscape"
+ (setq nntp-server-list-active-group nil)))
"Alist of regexps to match on server types and actions to be taken.
For instance, if you want Gnus to beep every time you connect
to innd, you could say something like:
+++ /dev/null
-TEXI2DVI=texi2dvi
-EMACS=emacs
-MAKEINFO=$(EMACS) -batch -q -no-site-file
-INFOSWI=-l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer
-LATEX=latex
-DVIPS=dvips
-PERL=perl
-
-all: gnus message
-
-most: texi2latexi.elc latex latexps
-
-gnus: gnus.texi
- $(MAKEINFO) gnus.texi $(INFOSWI)
-
-message: message.texi
- $(MAKEINFO) message.texi $(INFOSWI)
-
-dvi: gnus.texi
- $(PERL) -n -e 'if (/\@iflatex/) { $$latex=1; } if (!$$latex) { print; } if (/\@end iflatex/) { $$latex=0; }' gnus.texi > gnus.tmptexi
- $(TEXI2DVI) gnus.tmptexi
-
-refcard.dvi: refcard.tex gnuslogo.refcard gnusref.tex
- $(LATEX) refcard.tex
-
-clean:
- rm -f gnus.*.bak gnus.ky gnus.cp gnus.fn gnus.cps gnus.kys *.log \
- gnus.log gnus.pg gnus.tp gnus.vr gnus.toc gnus.latexi *.aux gnus.cidx \
- gnus.cind gnus.ilg gnus.ind gnus.kidx gnus.kind gnus.idx \
- gnus.tmptexi gnus.tmplatexi *.latexi texput.log *.orig *.rej
-
-makeinfo:
- makeinfo -o gnus gnus.texi
- makeinfo -o message message.texi
-
-texi2latexi.elc:
- $(EMACS) -batch -l bytecomp -f batch-byte-recompile-directory
-
-latex: gnus.texi
- $(EMACS) -batch -q -no-site-file gnus.texi -l ./texi2latex.elc -f latexi-translate
-
-latexps:
- $(LATEX) gnus.latexi
- splitindex
- makeindex -o gnus.kind gnus.kidx
- makeindex -o gnus.cind gnus.cidx
- egrep -v "end{document}|label.*Index|chapter.*Index" gnus.latexi > gnus.tmplatexi
- cat postamble.latexi >> gnus.tmplatexi
- $(LATEX) gnus.tmplatexi
- $(DVIPS) -f gnus.dvi > gnus.ps
-
-latexboth:
- rm -f gnus-manual-a4.ps.gz gnus-manual-standard.ps.gz
- make latexps
- mv gnus.ps gnus-manual-a4.ps
- gzip gnus-manual-a4.ps
- sed 's/,a4paper//' gnus.latexi > gnus-standard.latexi
- make latexps
- mv gnus.ps gnus-manual-standard.ps
- gzip gnus-manual-standard.ps
-