From be97b9802a49affcb4586028824ba18469e636ef Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Tue, 25 Nov 1997 18:04:35 +0000 Subject: [PATCH] *** empty log message *** --- lisp/ChangeLog | 36 ++++++++++++++++ lisp/gnus-art.el | 47 +++++++++++++++------ lisp/gnus-cite.el | 9 +++- lisp/gnus-group.el | 2 + lisp/gnus-load.el | 103 +++++++++++++++++++++++++++++++++++++++++++++ lisp/gnus-picon.el | 4 +- lisp/gnus-srvr.el | 20 +++++---- lisp/gnus-sum.el | 103 ++++++++++++++++++++++++++------------------- lisp/gnus-xmas.el | 1 + lisp/gnus.el | 9 ++-- lisp/message.el | 2 +- lisp/nnfolder.el | 4 +- lisp/nnheader.el | 10 +++++ lisp/nnmh.el | 10 ++--- texi/ChangeLog | 4 ++ texi/gnus.texi | 23 +++++++--- texi/message.texi | 6 +-- 17 files changed, 303 insertions(+), 90 deletions(-) create mode 100644 lisp/gnus-load.el diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0aae9011b..69e592d82 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,39 @@ +Tue Nov 25 19:03:38 1997 Lars Magne Ingebrigtsen + + * gnus.el: Quassia Gnus v0.16 is released. + +Tue Nov 25 16:05:01 1997 Lars Magne Ingebrigtsen + + * 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 + + * message.el (message-ignored-supersedes-headers): Typo. + Mon Nov 24 18:46:37 1997 Lars Magne Ingebrigtsen * gnus.el: Quassia Gnus v0.15 is released. diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 992dd3fbe..44bf80df5 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -526,6 +526,8 @@ displayed by the first non-nil matching CONTENT face." ;;; 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) @@ -1292,14 +1294,15 @@ how much time has lapsed since DATE." (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)))))))) @@ -1314,18 +1317,16 @@ how much time has lapsed since DATE." ((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 @@ -1334,8 +1335,7 @@ how much time has lapsed since DATE." (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 @@ -1386,8 +1386,8 @@ how much time has lapsed since DATE." ;; 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)))) @@ -1408,6 +1408,29 @@ function and want to see what the date was before converting." (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." diff --git a/lisp/gnus-cite.el b/lisp/gnus-cite.el index 2a1eb4fe8..ca1d579de 100644 --- a/lisp/gnus-cite.el +++ b/lisp/gnus-cite.el @@ -258,6 +258,7 @@ This should make it easier to see who wrote what." ;;; Internal Variables: (defvar gnus-cite-article nil) +(defvar gnus-cite-overlay-list nil) (defvar gnus-cite-prefix-alist nil) ;; Alist of citation prefixes. @@ -577,6 +578,8 @@ See also the documentation for `gnus-article-highlight-citation'." 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 @@ -858,7 +861,7 @@ See also the documentation for `gnus-article-highlight-citation'." (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)) @@ -866,7 +869,9 @@ See also the documentation for `gnus-article-highlight-citation'." (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 diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index d0e57b633..6f05d2a3c 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -1575,6 +1575,8 @@ If REQUEST-ONLY, don't actually read the group; just request it. 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)) diff --git a/lisp/gnus-load.el b/lisp/gnus-load.el new file mode 100644 index 000000000..978f272a3 --- /dev/null +++ b/lisp/gnus-load.el @@ -0,0 +1,103 @@ +;;; 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 diff --git a/lisp/gnus-picon.el b/lisp/gnus-picon.el index 732a28c61..47af8d88a 100644 --- a/lisp/gnus-picon.el +++ b/lisp/gnus-picon.el @@ -253,8 +253,8 @@ annotations. Sets buffer to `gnus-picons-display-where'." (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)) diff --git a/lisp/gnus-srvr.el b/lisp/gnus-srvr.el index d5122fec3..a55657634 100644 --- a/lisp/gnus-srvr.el +++ b/lisp/gnus-srvr.el @@ -473,7 +473,7 @@ The following commands are available: (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)) @@ -543,14 +543,13 @@ The following commands are available: (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)) @@ -710,7 +709,10 @@ buffer. (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)) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index a101f8a88..05f7b26b7 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -4399,7 +4399,7 @@ The resulting hash table is returned, or nil if no Xrefs were found." (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)) @@ -5979,7 +5979,9 @@ Returns how many articles were removed." (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")) @@ -6362,17 +6364,20 @@ or `gnus-select-method', no matter what backend the article comes from." (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) @@ -6388,7 +6393,7 @@ or `gnus-select-method', no matter what backend the article comes from." ;; 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. @@ -7571,7 +7576,9 @@ returned." "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)) @@ -7597,8 +7604,8 @@ returned." (= 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. @@ -7624,29 +7631,29 @@ marked." (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." @@ -7702,15 +7709,15 @@ marked." (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)) @@ -8665,6 +8672,14 @@ save those articles instead." (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) diff --git a/lisp/gnus-xmas.el b/lisp/gnus-xmas.el index 2794ce3bf..d989f6a22 100644 --- a/lisp/gnus-xmas.el +++ b/lisp/gnus-xmas.el @@ -410,6 +410,7 @@ call it with the value of the `gnus-data' text property." (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) diff --git a/lisp/gnus.el b/lisp/gnus.el index 45e340d33..0c4d0484d 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -244,7 +244,7 @@ is restarted, and sometimes reloaded." :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) @@ -266,6 +266,7 @@ be set in `.emacs' instead." (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) @@ -1648,7 +1649,8 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.") 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) @@ -2296,7 +2298,8 @@ that that variable is buffer-local to the summary buffers." (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 diff --git a/lisp/message.el b/lisp/message.el index 483871f4a..871743113 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -213,7 +213,7 @@ included. Organization, Lines and X-Mailer are optional." :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." diff --git a/lisp/nnfolder.el b/lisp/nnfolder.el index 7baa8d35d..84d6cc680 100644 --- a/lisp/nnfolder.el +++ b/lisp/nnfolder.el @@ -493,9 +493,7 @@ time saver for large mailboxes.") (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) diff --git a/lisp/nnheader.el b/lisp/nnheader.el index 97c842b2d..59353b915 100644 --- a/lisp/nnheader.el +++ b/lisp/nnheader.el @@ -792,6 +792,16 @@ find-file-hooks, etc. (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)) diff --git a/lisp/nnmh.el b/lisp/nnmh.el index 900eede59..4c302f475 100644 --- a/lisp/nnmh.el +++ b/lisp/nnmh.el @@ -186,6 +186,7 @@ (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))))) @@ -199,15 +200,14 @@ ;; 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) diff --git a/texi/ChangeLog b/texi/ChangeLog index 99156dd36..f4ef3df2d 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,7 @@ +Tue Nov 25 17:53:55 1997 Lars Magne Ingebrigtsen + + * gnus.texi (Article Date): Addition. + Mon Nov 24 16:01:20 1997 Lars Magne Ingebrigtsen * gnus.texi (Faces & Fonts): New. diff --git a/texi/gnus.texi b/texi/gnus.texi index 3e6bf8428..e3197ee3c 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \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 @@ -313,7 +313,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Quassia Gnus 0.15 Manual +@title Quassia Gnus 0.16 Manual @author by Lars Magne Ingebrigtsen @page @@ -349,7 +349,7 @@ can be gotten by any nefarious means you can think of---@sc{nntp}, local 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 @@ -6522,8 +6522,19 @@ for a list of possible format specs. @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) @@ -9446,7 +9457,7 @@ be stored in one or more groups. @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 @@ -9478,7 +9489,7 @@ information in the headers (i.e., do @code{replace-match}-like 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 diff --git a/texi/message.texi b/texi/message.texi index 244538697..47a080dbe 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \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 @@ -39,7 +39,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Message 0.15 Manual +@title Message 0.16 Manual @author by Lars Magne Ingebrigtsen @page @@ -79,7 +79,7 @@ buffers. * 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. -- 2.34.1