+Tue Nov 25 19:03:38 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Quassia Gnus v0.16 is released.
+
+Tue Nov 25 16:05:01 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-sum.el (gnus-read-header): Remove thread entry before
+ rebuilding.
+
+ * gnus-cite.el (gnus-cite-add-face): Keep track of all overlays.
+
+ * gnus-art.el (article-update-date-lapsed): New function.
+ (gnus-start-date-timer): New command.
+ (article-date-ut): Put the face in the right place.
+ (article-date-ut): Would move around.
+
+ * gnus-group.el (gnus-group-read-ephemeral-group): Accept server
+ names.
+
+ * gnus-srvr.el (gnus-browse-foreign-server): Use proper server
+ names.
+
+ * gnus.el (gnus-group-prefixed-name): Give the right result for
+ native groups.
+
+ * nnheader.el (nnheader-directory-files): New function.
+
+ * nnmh.el (nnmh-request-list-1): Reversed check.
+
+ * nnfolder.el (nnfolder-delete-mail): Would skip backwards one
+ line too much.
+
+Tue Nov 25 14:44:02 1997 SeokChan LEE <chan@xfer.kren.nm.kr>
+
+ * message.el (message-ignored-supersedes-headers): Typo.
+
Mon Nov 24 18:46:37 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Quassia Gnus v0.15 is released.
;;; Internal variables
+(defvar article-lapsed-timer nil)
+
(defvar gnus-article-mode-syntax-table
(let ((table (copy-syntax-table text-mode-syntax-table)))
(modify-syntax-entry ?- "w" table)
(setq bface (get-text-property (gnus-point-at-bol) 'face)
eface (get-text-property (1- (gnus-point-at-eol))
'face))
- (message-remove-header date-regexp t)
+ (delete-region (progn (beginning-of-line) (point))
+ (progn (end-of-line) (point)))
(beginning-of-line))
(goto-char (point-max)))
(insert (article-make-date-line date type))
;; Do highlighting.
- (forward-line -1)
+ (beginning-of-line)
(when (looking-at "\\([^:]+\\): *\\(.*\\)$")
- (put-text-property (match-beginning 1) (match-end 1)
+ (put-text-property (match-beginning 1) (1+ (match-end 1))
'face bface)
(put-text-property (match-beginning 2) (match-end 2)
'face eface))))))))
((eq type 'local)
(concat "Date: " (condition-case ()
(timezone-make-date-arpa-standard date)
- (error date))
- "\n"))
+ (error date))))
;; Convert to Universal Time.
((eq type 'ut)
(concat "Date: "
(condition-case ()
(timezone-make-date-arpa-standard date nil "UT")
- (error date))
- "\n"))
+ (error date))))
;; Get the original date from the article.
((eq type 'original)
- (concat "Date: " date "\n"))
+ (concat "Date: " date))
;; Let the user define the format.
((eq type 'user)
(concat
(ignore-errors
(gnus-encode-date
(timezone-make-date-arpa-standard
- date nil "UT"))))
- "\n"))
+ date nil "UT"))))))
;; Do an X-Sent lapsed format.
((eq type 'lapsed)
;; If the date is seriously mangled, the timezone functions are
;; If dates are odd, then it might appear like the
;; article was sent in the future.
(if (> real-sec 0)
- " ago\n"
- " in the future\n"))))))
+ " ago"
+ " in the future"))))))
(t
(error "Unknown conversion type: %s" type))))
(interactive (list t))
(article-date-ut 'lapsed highlight))
+(defun article-update-date-lapsed ()
+ "Function to be run from a timer to update the lapsed time line."
+ (save-excursion
+ (when (gnus-buffer-live-p gnus-article-buffer)
+ (set-buffer gnus-article-buffer)
+ (goto-char (point-min))
+ (when (re-search-forward "^X-Sent:" nil t)
+ (article-date-lapsed t)))))
+
+(defun gnus-start-date-timer ()
+ "Start a timer to update the X-Sent header in the article buffers."
+ (interactive)
+ (gnus-stop-date-timer)
+ (setq article-lapsed-timer
+ (nnheader-run-at-time 1 1 'article-update-date-lapsed)))
+
+(defun gnus-stop-date-timer ()
+ "Stop the X-Sent timer."
+ (interactive)
+ (when article-lapsed-timer
+ (nnheader-delete-timer article-lapsed-timer)
+ (setq article-lapsed-timer nil)))
+
(defun article-date-user (&optional highlight)
"Convert the current article date to the user-defined format.
This format is defined by the `gnus-article-time-format' variable."
;;; Internal Variables:
(defvar gnus-cite-article nil)
+(defvar gnus-cite-overlay-list nil)
(defvar gnus-cite-prefix-alist nil)
;; Alist of citation prefixes.
gnus-cite-attribution-alist nil
gnus-cite-loose-prefix-alist nil
gnus-cite-loose-attribution-alist nil)
+ (while gnus-cite-overlay-list
+ (gnus-delete-overlay (pop gnus-cite-overlay-list)))
;; Parse if not too large.
(if (and (not force)
gnus-cite-parse-max-size
(let ((inhibit-point-motion-hooks t)
from to)
(goto-line number)
- (unless (eobp);; Sometimes things become confused.
+ (unless (eobp) ; Sometimes things become confused.
(forward-char (length prefix))
(skip-chars-forward " \t")
(setq from (point))
(skip-chars-backward " \t")
(setq to (point))
(when (< from to)
- (gnus-overlay-put (gnus-make-overlay from to) 'face face))))))
+ (push (setq overlay (gnus-make-overlay from to))
+ gnus-cite-overlay-list)
+ (gnus-overlay-put overlay 'face face))))))
(defun gnus-cite-toggle (prefix)
(save-excursion
Return the name of the group is selection was successful."
;; Transform the select method into a unique server.
+ (when (stringp method)
+ (setq method (gnus-server-to-method method)))
(let ((saddr (intern (format "%s-address" (car method)))))
(setq method (gnus-copy-sequence method))
(require (car method))
--- /dev/null
+;;; gnus-load.el --- automatically extracted custom dependencies
+;;
+;;; Code:
+
+(put 'nnmail 'custom-loads '("nnmail"))
+(put 'gnus-article-emphasis 'custom-loads '("gnus-art"))
+(put 'gnus-article-headers 'custom-loads '("gnus-sum" "gnus-art"))
+(put 'nnmail-procmail 'custom-loads '("nnmail"))
+(put 'gnus-score-kill 'custom-loads '("gnus-kill"))
+(put 'gnus-visual 'custom-loads '("smiley" "gnus" "gnus-picon" "gnus-art" "earcon"))
+(put 'gnus-score-expire 'custom-loads '("gnus-score" "gnus-kill"))
+(put 'gnus-summary-maneuvering 'custom-loads '("gnus-sum"))
+(put 'gnus-start 'custom-loads '("gnus" "gnus-util" "gnus-start" "gnus-int" "gnus-group"))
+(put 'gnus-extract-view 'custom-loads '("gnus-uu" "gnus-sum"))
+(put 'gnus-various 'custom-loads '("gnus-sum"))
+(put 'gnus-article-washing 'custom-loads '("gnus-art"))
+(put 'gnus-score-files 'custom-loads '("gnus-score"))
+(put 'message-news 'custom-loads '("message"))
+(put 'gnus-thread 'custom-loads '("gnus-sum"))
+(put 'languages 'custom-loads '("cus-edit"))
+(put 'development 'custom-loads '("cus-edit"))
+(put 'gnus-treading 'custom-loads '("gnus-sum"))
+(put 'nnmail-various 'custom-loads '("nnmail"))
+(put 'extensions 'custom-loads '("wid-edit"))
+(put 'message-various 'custom-loads '("message"))
+(put 'gnus-summary-exit 'custom-loads '("gnus-sum"))
+(put 'news 'custom-loads '("message" "gnus"))
+(put 'gnus 'custom-loads '("nnmail" "gnus" "gnus-win" "gnus-uu" "gnus-eform" "gnus-dup" "gnus-demon" "gnus-cache" "gnus-async" "gnus-art"))
+(put 'gnus-summary-visual 'custom-loads '("gnus-sum"))
+(put 'gnus-group-listing 'custom-loads '("gnus-group"))
+(put 'gnus-score 'custom-loads '("gnus" "gnus-nocem"))
+(put 'gnus-group-select 'custom-loads '("gnus-sum"))
+(put 'message-buffers 'custom-loads '("message"))
+(put 'gnus-threading 'custom-loads '("gnus-sum"))
+(put 'gnus-score-decay 'custom-loads '("gnus-score"))
+(put 'help 'custom-loads '("cus-edit"))
+(put 'gnus-nocem 'custom-loads '("gnus-nocem"))
+(put 'gnus-cite 'custom-loads '("gnus-cite"))
+(put 'gnus-demon 'custom-loads '("gnus-demon"))
+(put 'gnus-message 'custom-loads '("message"))
+(put 'gnus-score-default 'custom-loads '("gnus-sum" "gnus-score"))
+(put 'nnmail-duplicate 'custom-loads '("nnmail"))
+(put 'message-interface 'custom-loads '("message"))
+(put 'nnmail-files 'custom-loads '("nnmail"))
+(put 'gnus-edit-form 'custom-loads '("gnus-eform"))
+(put 'emacs 'custom-loads '("cus-edit"))
+(put 'gnus-summary-mail 'custom-loads '("gnus-sum"))
+(put 'gnus-topic 'custom-loads '("gnus-topic"))
+(put 'wp 'custom-loads '("cus-edit"))
+(put 'gnus-summary-choose 'custom-loads '("gnus-sum"))
+(put 'widget-browse 'custom-loads '("wid-browse"))
+(put 'external 'custom-loads '("cus-edit"))
+(put 'message-headers 'custom-loads '("message"))
+(put 'message-forwarding 'custom-loads '("message"))
+(put 'message-faces 'custom-loads '("message"))
+(put 'environment 'custom-loads '("cus-edit"))
+(put 'gnus-article-mime 'custom-loads '("gnus-sum" "gnus-art"))
+(put 'gnus-duplicate 'custom-loads '("gnus-dup"))
+(put 'nnmail-retrieve 'custom-loads '("nnmail"))
+(put 'widgets 'custom-loads '("wid-edit" "wid-browse"))
+(put 'earcon 'custom-loads '("earcon"))
+(put 'hypermedia 'custom-loads '("wid-edit"))
+(put 'gnus-group-levels 'custom-loads '("gnus-group"))
+(put 'gnus-summary-format 'custom-loads '("gnus-sum"))
+(put 'gnus-files 'custom-loads '("nnmail" "gnus"))
+(put 'gnus-windows 'custom-loads '("gnus-win"))
+(put 'gnus-article-buttons 'custom-loads '("gnus-art"))
+(put 'gnus-summary 'custom-loads '("gnus" "gnus-sum"))
+(put 'gnus-article-hiding 'custom-loads '("gnus-sum" "gnus-art"))
+(put 'gnus-group 'custom-loads '("gnus" "gnus-topic"))
+(put 'gnus-article-various 'custom-loads '("gnus-sum" "gnus-art"))
+(put 'gnus-summary-marks 'custom-loads '("gnus-sum"))
+(put 'gnus-article-saving 'custom-loads '("gnus-art"))
+(put 'nnmail-expire 'custom-loads '("nnmail"))
+(put 'message-mail 'custom-loads '("message"))
+(put 'faces 'custom-loads '("wid-edit" "cus-edit" "message" "gnus"))
+(put 'gnus-summary-various 'custom-loads '("gnus-sum"))
+(put 'applications 'custom-loads '("cus-edit"))
+(put 'gnus-extract-archive 'custom-loads '("gnus-uu"))
+(put 'message 'custom-loads '("message"))
+(put 'message-sending 'custom-loads '("message"))
+(put 'editing 'custom-loads '("cus-edit"))
+(put 'gnus-score-adapt 'custom-loads '("gnus-score"))
+(put 'message-insertion 'custom-loads '("message"))
+(put 'gnus-extract-post 'custom-loads '("gnus-uu"))
+(put 'mail 'custom-loads '("message" "gnus"))
+(put 'gnus-summary-sort 'custom-loads '("gnus-sum"))
+(put 'customize 'custom-loads '("wid-edit" "custom" "cus-face" "cus-edit"))
+(put 'nnmail-split 'custom-loads '("nnmail"))
+(put 'gnus-asynchronous 'custom-loads '("gnus-async"))
+(put 'gnus-article-highlight 'custom-loads '("gnus-art"))
+(put 'gnus-extract 'custom-loads '("gnus-uu"))
+(put 'gnus-article 'custom-loads '("gnus-cite" "gnus-art"))
+(put 'gnus-group-foreign 'custom-loads '("gnus-group"))
+(put 'programming 'custom-loads '("cus-edit"))
+(put 'nnmail-prepare 'custom-loads '("nnmail"))
+(put 'picons 'custom-loads '("gnus-picon"))
+(put 'gnus-article-signature 'custom-loads '("gnus-art"))
+(put 'gnus-group-various 'custom-loads '("gnus-group"))
+
+(provide 'gnus-load)
+
+;;; gnus-load.el ends here
(defun gnus-picons-x-face-sentinel (process event)
(let* ((env (assq process gnus-picons-processes-alist))
(annot (cdr env)))
- (setq gnus-picons-processes-alist (remassq process
- gnus-picons-processes-alist))
+ (setq gnus-picons-processes-alist
+ (remassq process gnus-picons-processes-alist))
(when annot
(set-annotation-glyph annot
(make-glyph gnus-picons-x-face-file-name))
(interactive (list (gnus-server-server-name)))
(let ((buf (current-buffer)))
(prog1
- (gnus-browse-foreign-server (gnus-server-to-method server) buf)
+ (gnus-browse-foreign-server server buf)
(save-excursion
(set-buffer buf)
(gnus-server-update-server (gnus-server-server-name))
(defvar gnus-browse-buffer "*Gnus Browse Server*")
-(defun gnus-browse-foreign-server (method &optional return-buffer)
- "Browse the server METHOD."
- (setq gnus-browse-current-method method)
+(defun gnus-browse-foreign-server (server &optional return-buffer)
+ "Browse the server SERVER."
+ (setq gnus-browse-current-method server)
(setq gnus-browse-return-buffer return-buffer)
- (when (stringp method)
- (setq method (gnus-server-to-method method)))
- (let ((gnus-select-method method)
- groups group)
+ (let* ((method (gnus-server-to-method server))
+ (gnus-select-method method)
+ groups group)
(gnus-message 5 "Connecting to %s..." (nth 1 method))
(cond
((not (gnus-check-server method))
(progn
(gnus-group-change-level
(list t group gnus-level-default-subscribed
- nil nil gnus-browse-current-method)
+ nil nil (if (gnus-server-equal
+ gnus-browse-current-method "native")
+ nil
+ gnus-browse-current-method))
gnus-level-default-subscribed gnus-level-killed
(and (car (nth 1 gnus-newsrc-alist))
(gnus-gethash (car (nth 1 gnus-newsrc-alist))
(mail-header-set-id header id))
(setcar (symbol-value id-dep) header))
(set id-dep (list header)))
- (when header
+ (when header
(if (boundp (setq ref-dep (intern (or ref "none") dependencies)))
(setcdr (symbol-value ref-dep)
(nconc (cdr (symbol-value ref-dep))
(gnus-summary-position-point))))
(defun gnus-summary-limit-include-dormant ()
- "Display all the hidden articles that are marked as dormant."
+ "Display all the hidden articles that are marked as dormant.
+Note that this command only works on a subset of the articles currently
+fetched for this group."
(interactive)
(unless gnus-newsgroup-dormant
(error "There are no dormant articles in this group"))
(gnus-summary-article-sparse-p
(mail-header-number header))
(memq (mail-header-number header)
- gnus-newsgroup-limit))))
- (if (and header
- (or (not (gnus-summary-article-sparse-p
- (mail-header-number header)))
- sparse))
- (prog1
- ;; The article is present in the buffer, so we just go to it.
- (gnus-summary-goto-article
- (mail-header-number header) nil t)
- (when sparse
- (gnus-summary-update-article (mail-header-number header))))
+ gnus-newsgroup-limit)))
+ h)
+ (cond
+ ;; If the article is present in the buffer we just go to it.
+ ((and header
+ (or (not (gnus-summary-article-sparse-p
+ (mail-header-number header)))
+ sparse))
+ (prog1
+ (gnus-summary-goto-article
+ (mail-header-number header) nil t)
+ (when sparse
+ (gnus-summary-update-article (mail-header-number header)))))
+ (t
;; We fetch the article
(let ((gnus-override-method
(cond ((gnus-news-group-p gnus-newsgroup-name)
;; Fetch the header, and display the article.
(if (setq number (gnus-summary-insert-subject message-id))
(gnus-summary-select-article nil nil nil number)
- (gnus-message 3 "Couldn't fetch article %s" message-id)))))))
+ (gnus-message 3 "Couldn't fetch article %s" message-id))))))))
(defun gnus-summary-enter-digest-group (&optional force)
"Enter an nndoc group based on the current article.
"Mark the current article quickly as unread with MARK."
(let ((article (gnus-summary-article-number)))
(if (<= article 0)
- (gnus-error 1 "Can't mark negative article numbers")
+ (progn
+ (gnus-error 1 "Can't mark negative article numbers")
+ nil)
(setq gnus-newsgroup-marked (delq article gnus-newsgroup-marked))
(setq gnus-newsgroup-dormant (delq article gnus-newsgroup-dormant))
(setq gnus-newsgroup-expirable (delq article gnus-newsgroup-expirable))
(= mark gnus-dormant-mark) (= mark gnus-unread-mark))))
;; Fix the mark.
- (gnus-summary-update-mark mark 'unread))
- t))
+ (gnus-summary-update-mark mark 'unread)
+ t)))
(defun gnus-summary-mark-article (&optional article mark no-expire)
"Mark ARTICLE with MARK. MARK can be any character.
(article (or article (gnus-summary-article-number))))
(unless article
(error "No article on current line"))
- (if (or (= mark gnus-unread-mark)
- (= mark gnus-ticked-mark)
- (= mark gnus-dormant-mark))
- (gnus-mark-article-as-unread article mark)
- (gnus-mark-article-as-read article mark))
-
- ;; See whether the article is to be put in the cache.
- (and gnus-use-cache
- (not (= mark gnus-canceled-mark))
- (vectorp (gnus-summary-article-header article))
- (save-excursion
- (gnus-cache-possibly-enter-article
- gnus-newsgroup-name article
- (gnus-summary-article-header article)
- (= mark gnus-ticked-mark)
- (= mark gnus-dormant-mark) (= mark gnus-unread-mark))))
+ (if (not (if (or (= mark gnus-unread-mark)
+ (= mark gnus-ticked-mark)
+ (= mark gnus-dormant-mark))
+ (gnus-mark-article-as-unread article mark)
+ (gnus-mark-article-as-read article mark)))
+ t
+ ;; See whether the article is to be put in the cache.
+ (and gnus-use-cache
+ (not (= mark gnus-canceled-mark))
+ (vectorp (gnus-summary-article-header article))
+ (save-excursion
+ (gnus-cache-possibly-enter-article
+ gnus-newsgroup-name article
+ (gnus-summary-article-header article)
+ (= mark gnus-ticked-mark)
+ (= mark gnus-dormant-mark) (= mark gnus-unread-mark))))
- (when (gnus-summary-goto-subject article nil t)
- (let ((buffer-read-only nil))
- (gnus-summary-show-thread)
- ;; Fix the mark.
- (gnus-summary-update-mark mark 'unread)
- t))))
+ (when (gnus-summary-goto-subject article nil t)
+ (let ((buffer-read-only nil))
+ (gnus-summary-show-thread)
+ ;; Fix the mark.
+ (gnus-summary-update-mark mark 'unread)
+ t)))))
(defun gnus-summary-update-secondary-mark (article)
"Update the secondary (read, process, cache) mark."
(defun gnus-mark-article-as-unread (article &optional mark)
"Enter ARTICLE in the pertinent lists and remove it from others."
(let ((mark (or mark gnus-ticked-mark)))
- (setq gnus-newsgroup-marked (delq article gnus-newsgroup-marked)
- gnus-newsgroup-dormant (delq article gnus-newsgroup-dormant)
- gnus-newsgroup-expirable (delq article gnus-newsgroup-expirable)
- gnus-newsgroup-unreads (delq article gnus-newsgroup-unreads))
-
(if (<= article 0)
(progn
(gnus-error 1 "Can't mark negative article numbers")
nil)
+ (setq gnus-newsgroup-marked (delq article gnus-newsgroup-marked)
+ gnus-newsgroup-dormant (delq article gnus-newsgroup-dormant)
+ gnus-newsgroup-expirable (delq article gnus-newsgroup-expirable)
+ gnus-newsgroup-unreads (delq article gnus-newsgroup-unreads))
+
;; Unsuppress duplicates?
(when gnus-suppress-duplicates
(gnus-dup-unsuppress-article article))
(not (gnus-summary-article-sparse-p (mail-header-number header))))
;; We have found the header.
header
+ ;; If this is a sparse article, we have to nix out its
+ ;; previous entry in the thread hashtb.
+ (when (and header
+ (gnus-summary-article-sparse-p (mail-header-number header)))
+ (let ((thread (gnus-gethash
+ (gnus-parent-id (mail-header-references header))
+ gnus-newsgroup-dependencies)))
+ (delq (assq header thread) thread)))
;; We have to really fetch the header to this article.
(save-excursion
(set-buffer nntp-server-buffer)
(fset 'gnus-characterp 'characterp)))
(fset 'gnus-make-overlay 'make-extent)
+ (fset 'gnus-delete-overlay 'delete-extent)
(fset 'gnus-overlay-put 'set-extent-property)
(fset 'gnus-move-overlay 'gnus-xmas-move-overlay)
(fset 'gnus-overlay-end 'extent-end-position)
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "0.15"
+(defconst gnus-version-number "0.16"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Quassia Gnus v%s" gnus-version-number)
(unless (featurep 'gnus-xmas)
(defalias 'gnus-make-overlay 'make-overlay)
+ (defalias 'gnus-delete-overlay 'delete-overlay)
(defalias 'gnus-overlay-put 'overlay-put)
(defalias 'gnus-move-overlay 'move-overlay)
(defalias 'gnus-overlay-end 'overlay-end)
gnus-article-date-original gnus-article-date-lapsed
gnus-article-show-all-headers
gnus-article-edit-mode gnus-article-edit-article
- gnus-article-edit-done gnus-decode-rfc1522 article-decode-rfc1522)
+ gnus-article-edit-done gnus-decode-rfc1522 article-decode-rfc1522
+ 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)
(defun gnus-group-prefixed-name (group method)
"Return the whole name from GROUP and METHOD."
(and (stringp method) (setq method (gnus-server-to-method method)))
- (if (not method)
+ (if (or (not method)
+ (gnus-server-equal method "native"))
group
(concat (format "%s" (car method))
(when (and
:group 'message-headers
:type 'regexp)
-(defcustom message-ignored-supersedes-headers "^Path:\\|^Date\\|^NNTP-Posting-Host:\\|^Xref:\\|^Lines:\\|^Received:\\|^X-From-Line:\\||X-Trace:\\|X-Complaints-To:\\|Return-Path:\\|^Supersedes:"
+(defcustom message-ignored-supersedes-headers "^Path:\\|^Date\\|^NNTP-Posting-Host:\\|^Xref:\\|^Lines:\\|^Received:\\|^X-From-Line:\\|X-Trace:\\|X-Complaints-To:\\|Return-Path:\\|^Supersedes:"
"*Header lines matching this regexp will be deleted before posting.
It's best to delete old Path and Date headers before posting to avoid
any confusion."
(progn
(forward-line 1)
(if (nnmail-search-unix-mail-delim)
- (if (and (not (bobp)) leave-delim)
- (progn (forward-line -2) (point))
- (point))
+ (point)
(point-max))))))
(defun nnfolder-possibly-change-group (group &optional server dont-check)
(pop files))
(nreverse out)))
+(defun nnheader-directory-files (&rest args)
+ "Same as `directory-files', but prune \".\" and \"..\"."
+ (let ((files (apply 'directory-files args))
+ out)
+ (while files
+ (unless (member (file-name-nondirectory (car files)) '("." ".."))
+ (push (car files) out))
+ (pop files))
+ (nreverse out)))
+
(defmacro nnheader-skeleton-replace (from &optional to regexp)
`(let ((new (generate-new-buffer " *nnheader replace*"))
(cur (current-buffer))
(deffoo nnmh-request-list (&optional server dir)
(nnheader-insert "")
+ (nnmh-possibly-change-directory nil server)
(let ((pathname-coding-system 'binary)
(nnmh-toplev
(file-truename (or dir (file-name-as-directory nnmh-directory)))))
;; Recurse down all directories.
(let ((dirs (and (file-readable-p dir)
(> (nth 1 (file-attributes (file-chase-links dir))) 2)
- (directory-files dir t nil t)))
+ (nnheader-directory-files dir t nil t)))
rdir)
;; Recurse down directories.
(while (setq rdir (pop dirs))
- (when (and (not (member (file-name-nondirectory rdir) '("." "..")))
- (file-directory-p rdir)
+ (when (and (file-directory-p rdir)
(file-readable-p rdir)
- (equal (file-truename rdir)
- (file-truename dir)))
+ (not (equal (file-truename rdir)
+ (file-truename dir))))
(nnmh-request-list-1 rdir))))
;; For each directory, generate an active file line.
(unless (string= (expand-file-name nnmh-toplev) dir)
+Tue Nov 25 17:53:55 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.texi (Article Date): Addition.
+
Mon Nov 24 16:01:20 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus.texi (Faces & Fonts): New.
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Quassia Gnus 0.15 Manual
+@settitle Quassia Gnus 0.16 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Quassia Gnus 0.15 Manual
+@title Quassia Gnus 0.16 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.15.
+This manual corresponds to Quassia Gnus 0.16.
@end ifinfo
@item W T e
@kindex W T e (Summary)
@findex gnus-article-date-lapsed
+@findex gnus-start-date-timer
+@findex gnus-stop-date-timer
Say how much time has elapsed between the article was posted and now
-(@code{gnus-article-date-lapsed}).
+(@code{gnus-article-date-lapsed}). If you want to have this line
+updated continually, you can put
+
+@lisp
+(gnus-start-date-timer)
+@end lisp
+
+in your @file{.gnus.el} file, or you can run it off of some hook. If
+you want to stop the timer, you can use the @code{gnus-stop-date-timer}
+command.
@item W T o
@kindex W T o (Summary)
@item
@code{junk}: If the split is the symbol @code{junk}, then don't save
-this message anywhere.
+this message.
@item
@var{(: function arg1 arg2 ...)}: If the split is a list, and the first
substitions in the group names), you can say things like:
@example
-(any "debian-\(\\w*\\)@@lists.debian.org" "mail.debian.\\1")
+(any "debian-\\(\\w*\\)@@lists.debian.org" "mail.debian.\\1")
@end example
@node Mail and Procmail
\input texinfo @c -*-texinfo-*-
@setfilename message
-@settitle Message 0.15 Manual
+@settitle Message 0.16 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Message 0.15 Manual
+@title Message 0.16 Manual
@author by Lars Magne Ingebrigtsen
@page
* Key Index:: List of Message mode keys.
@end menu
-This manual corresponds to Message 0.15. Message is distributed with
+This manual corresponds to Message 0.16. Message is distributed with
the Gnus distribution bearing the same version number as this manual
has.