;;; gnus.el --- a newsreader for GNU Emacs
-;; Copyright (C) 1987,88,89,90,93,94,95 Free Software Foundation, Inc.
+;; Copyright (C) 1987,88,89,90,93,94,95,96 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
(article ([summary 0.25 point]
(if gnus-carpal [summary-carpal 4])
[article 1.0]))
+ (pipe ([summary 0.25 point]
+ (if gnus-carpal [summary-carpal 4])
+ [pipe 1.0]))
(server ([server 1.0 point]
(if gnus-carpal [server-carpal 2])))
(browse ([browse 1.0 point]
(article . gnus-article-buffer)
(server . gnus-server-buffer)
(browse . "*Gnus Browse Server*")
+ (pipe . "*Shell Command Output*")
(edit-group . gnus-group-edit-buffer)
(edit-server . gnus-server-edit-buffer)
(group-carpal . gnus-carpal-group-buffer)
"Prepare summary buffer from THREADS and indentation LEVEL.
THREADS is either a list of `(PARENT [(CHILD1 [(GRANDCHILD ...]...) ...])'
or a straight list of headers."
- (message "Generating summary...")
+ (gnus-message 5 "Generating summary...")
(let ((level 0)
thread header number subject stack state gnus-tmp-gathered)
(if (vectorp (car threads))
(setq stack (cons (cons (max 0 level) (nthcdr 1 thread)) stack)))
(setq level (1+ level))
(setq threads (cdr (car thread))))))
- (message "Generating summary...done"))
+ (gnus-message 5 "Generating summary...done"))
(cond ((or (eq 'tick (car prev)) (eq 'dormant (car prev)))
;; Make sure that all ticked articles are a subset of the
;; unread/unselected articles.
- (while m
- (if (or (memq (car m) gnus-newsgroup-unreads)
- (memq (car m) gnus-newsgroup-unselected))
- (setq prev m)
- (setcdr prev (cdr m)))
- (setq m (cdr m))))
+ ;;(while m
+ ;; (if (or (memq (car m) gnus-newsgroup-unreads)
+ ;; (memq (car m) gnus-newsgroup-unselected))
+ ;; (setq prev m)
+ ;; (setcdr prev (cdr m)))
+ ;; (setq m (cdr m)))
+ )
((eq 'score (car prev))
;; Scored articles should be a subset of
;; unread/unselected articles.
(interactive "P")
(gnus-set-global-variables)
(let ((gnus-default-article-saver 'gnus-summary-save-in-pipe))
- (gnus-summary-save-article arg)))
+ (gnus-summary-save-article arg))
+ (gnus-configure-windows 'pipe))
(defun gnus-summary-save-article-mail (&optional arg)
"Append the current article to an mail file.
((eq type 'lapsed)
;; If the date is seriously mangled, the timezone
;; functions are liable to bug out, so we condition-case
- ;; the entire thing.
- (let* ((real-sec (condition-case ()
+ ;; the entire thing. We call (current-time) once, rather than
+ ;; letting current-time-string and current-time-zone default to
+ ;; it, because that avoids a rare race condition when the time
+ ;; zone changes between those two calls.
+ (let* ((now (current-time))
+ (real-sec (condition-case ()
(- (gnus-seconds-since-epoch
(timezone-make-date-arpa-standard
- (current-time-string)
- (current-time-zone) "UT"))
+ (current-time-string now)
+ (current-time-zone now) "UT"))
(gnus-seconds-since-epoch
(timezone-make-date-arpa-standard
date nil "UT")))
(delete-region (match-beginning 1) (match-end 1))
(insert
(timezone-make-date-arpa-standard
- date nil (current-time-zone))))))))
+ date)))))))
;; Article mode commands
(nth 1 method) accept-function last)))
(defun gnus-request-accept-article (group &optional last)
+ (goto-char (point-max))
+ (or (bolp) (insert "\n"))
(let ((func (if (symbolp group) group
(car (gnus-find-method-for-group group)))))
(funcall (intern (format "%s-request-accept-article" func))
(while (and dormant (< (car dormant) (car active)))
(setq dormant (cdr dormant)))
(setq unread (sort (append unselected unread) '<))
+ ;; Weed out duplicates.
+ (let ((un unread))
+ (while (cdr un)
+ (if (eq (car un) (car (cdr un)))
+ (setcdr un (cdr (cdr un)))
+ (setq un (cdr un)))))
;; Compute the ranges of read articles by looking at the list of
;; unread articles.
(while unread