From: yamaoka Date: Tue, 8 Sep 1998 03:34:29 +0000 (+0000) Subject: Importing pgnus-0.18. X-Git-Tag: pgnus-0_18~1 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cda270b73d89201b8072b013dfde919798b168d6;p=elisp%2Fgnus.git- Importing pgnus-0.18. --- diff --git a/GNUS-NEWS b/GNUS-NEWS index 0c5b11a..75306e1 100644 --- a/GNUS-NEWS +++ b/GNUS-NEWS @@ -1,102 +1,2 @@ ** Gnus changes. -*** The Gnus distribution no longer bundles Custom and Widget. -If your Emacs doesn't come with these libraries, fetch them from -. You also then need to -add the following to the lisp/dgnushack.el file: - - (push "~/lisp/custom" load-path) - -Modify to suit your needs. - -*** New functionality for using Gnus as an offline newsreader has been -added. A plethora of new commands and modes have been added. See the -Gnus manual for the full story. - -*** The nndraft backend has returned, but works differently than -before. All Message buffers are now also articles in the nndraft -group, which is created automatically. - -*** `gnus-alter-header-function' can now be used to alter header -values. - -*** `gnus-summary-goto-article' now accept Message-ID's. - -*** A new Message command for deleting text in the body of a message -outside the region: `C-c C-v'. - -*** You can now post to component group in nnvirtual groups with -`C-u C-c C-c'. - -*** `nntp-rlogin-program' -- new variable to ease customization. - -*** `C-u C-c C-c' in `gnus-article-edit-mode' will now inhibit -re-highlighting of the article buffer. - -*** New element in `gnus-boring-article-headers' -- `long-to'. - -*** `M-i' symbolic prefix command. See the section "Symbolic -Prefixes" in the Gnus manual for details. - -*** `L' and `I' in the summary buffer now take the symbolic prefix -`a' to add the score rule to the "all.SCORE" file. - -*** `gnus-simplify-subject-functions' variable to allow greater -control over simplification. - -*** `A T' -- new command for fetching the current thread. - -*** `/ T' -- new command for including the current thread in the -limit. - -*** `M-RET' is a new Message command for breaking cited text. - -*** \\1-expressions are now valid in `nnmail-split-methods'. - -*** The `custom-face-lookup' function has been removed. -If you used this function in your initialization files, you must -rewrite them to use `face-spec-set' instead. - -*** Cancelling now uses the current select method. Symbolic prefix -`a' forces normal posting method. - -*** New command to translate M******** sm*rtq**t*s into proper text --- `W d'. - -*** For easier debugging of nntp, you can set `nntp-record-commands' -to a non-nil value. - -*** nntp now uses ~/.authinfo, a .netrc-like file, for controlling -where and how to send AUTHINFO to NNTP servers. - -*** A command for editing group parameters from the summary buffer -has been added. - -*** A history of where mails have been split is available. - -*** A new article date command has been added -- `article-date-iso8601'. - -*** Subjects can be simplified when threading by setting -`gnus-score-thread-simplify'. - -*** A new function for citing in Message has been added -- -`message-cite-original-without-signature'. - -*** `article-strip-all-blank-lines' -- new article command. - -*** A new Message command to kill to the end of the article has -been added. - -*** A minimum adaptive score can be specified by using the -`gnus-adaptive-word-minimum' variable. - -*** The "lapsed date" article header can be kept continually -updated by the `gnus-start-date-timer' command. - -*** Web listserv archives can be read with the nnlistserv backend. - -*** Old dejanews archives can now be read by nnweb. - -*** Byte-compilation of user-specs now works under XEmacs. - -*** `gnus-posting-styles' has been re-activated. diff --git a/Makefile.in b/Makefile.in index a30ae8d..b28cda9 100644 --- a/Makefile.in +++ b/Makefile.in @@ -5,37 +5,37 @@ srcdir = @srcdir@ @SET_MAKE@ EMACS = @EMACS@ -XEMACS = xemacs +XEMACS = xemacs21 all: lick info lick: - cd lisp && $(MAKE) EMACS=$(EMACS) lispdir=$(lispdir) all + cd lisp && $(MAKE) EMACS="$(EMACS)" lispdir="$(lispdir)" all install: - cd lisp && $(MAKE) EMACS=$(EMACS) lispdir=$(lispdir) install - cd texi && $(MAKE) EMACS=$(EMACS) install + cd lisp && $(MAKE) EMACS="$(EMACS)" lispdir="$(lispdir)" install + cd texi && $(MAKE) EMACS="$(EMACS)" install # Rule for Lars and nobody else. some: - cd lisp && $(MAKE) EMACS=$(EMACS) some + cd lisp && $(MAKE) EMACS="$(EMACS)" some l: - cd lisp && $(MAKE) EMACS=$(EMACS) clever + cd lisp && $(MAKE) EMACS="$(EMACS)" clever info: - cd texi && $(MAKE) EMACS=$(EMACS) all + cd texi && $(MAKE) EMACS="$(EMACS)" all clean: rm -f */*.orig */*.rej *.orig *.rej xsome: - cd lisp && $(MAKE) EMACS=$(XEMACS) some + cd lisp && $(MAKE) EMACS="$(XEMACS)" some elclean: rm lisp/*.elc x: - make EMACS=xemacs + make EMACS=xemacs21 distclean: make clean @@ -44,7 +44,7 @@ distclean: rm -f config.log config.status Makefile osome: - make EMACS=emacs-19.34 some + make EMACS=xemacs21 some config.status: $(srcdir)/configure $(SHELL) ./config.status --recheck diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2cceed7..06e1752 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3559 +1,504 @@ -Sun Sep 6 20:09:36 1998 Lars Magne Ingebrigtsen +Tue Sep 8 04:29:23 1998 Lars Magne Ingebrigtsen - * gnus.el: Gnus v5.6.43 is released. + * gnus.el: Pterodactyl Gnus v0.18 is released. -1998-09-06 19:41:54 Lars Magne Ingebrigtsen +1998-09-08 02:21:36 Lars Magne Ingebrigtsen - * gnus-sum.el (gnus-remove-thread): Unhide threads before - removing. - (gnus-data-compute-positions): Ditto. + * message.el (message-send-and-exit): Return t on success. + (message-make-date): Make a proper time zone. -1998-08-31 11:40:13 Shuhei KOBAYASHI + * gnus-draft.el (gnus-draft-send): Only remove article if the + sending is successful. - * nnmail.el (nnmail-date-to-time): Parse time locally if no - timezone. + * drums.el (drums-get-comment): Return the last comment. + (drums-parse-address): Parse old-style From headers. -1998-08-31 11:21:53 Lars Magne Ingebrigtsen +1998-09-07 SL Baur - * gnus-srvr.el (gnus-browse-foreign-server): Protect against - out-of-range articles. + * gnus-sum.el (gnus-data-compute-positions): Move below + `gnus-save-hidden-threads' so the former is correctly detected as + a macro. - * gnus-msg.el (gnus-summary-reply): Don't inhibit posting styles. +1998-09-06 Dave Love -1998-08-30 22:33:33 Lars Magne Ingebrigtsen + * gnus/nnweb.el (require): Wrap requirement of w3 and url in + ignore-errors too, eval'd when compile. Require w3 stuff at load + time for nicer failure if it's not available. - * gnus-score.el (gnus-summary-increase-score): Temporary third - majuscle. +1998-09-08 00:38:39 Lars Magne Ingebrigtsen -1998-08-30 22:32:31 Dan Christensen + * time-date.el (time-to-seconds): Renamed. - * gnus-score.el (gnus-summary-increase-score): Score thread on - Message-ID. + * parse-time.el (parse-time-string): Downcase before handling. + (parse-time-rules): Times without seconds have 0 seconds. -1998-08-29 02:46:00 Simon Josefsson + * rfc2047.el (rfc2047-encode-region): New version. + (rfc2047-dissect-region): New function. - * gnus-sum.el (gnus-summary-mark-article-as-read): - (gnus-summary-mark-article-as-unread): - (gnus-summary-mark-article): Call gnus-request-update-mark. +1998-09-07 01:08:35 Lars Magne Ingebrigtsen -1998-08-29 Mike McEwan + * message.el (message-make-date): Use symbolic zone. - * gnus-agent.el (gnus-agent-fetch-headers): Cater for when there's - no .agentview, all articles have been expired, or everything bar a - few downloaded arts have been expired. - (gnus-agent-expire): Mark *all* expired articles as read. +1998-09-06 23:23:06 Lars Magne Ingebrigtsen -Sat Aug 29 19:17:19 1998 Lars Magne Ingebrigtsen + * time-date.el (parse-time): Always use parse-time. - * gnus.el: Gnus v5.6.42 is released. + * parse-time.el (parse-time-syntax): Use vectors. -1998-08-29 17:06:27 Simon Josefsson +Sun Sep 6 21:19:26 1998 Lars Magne Ingebrigtsen - * gnus-sum.el (gnus-summary-make-menu-bar): Typo. + * gnus.el: Pterodactyl Gnus v0.17 is released. -1998-08-29 12:47:42 Tatsuya Ichikawa +1998-09-06 05:45:17 Lars Magne Ingebrigtsen - * gnus-agent.el: Use nnheader-insert-file-contents. + * time-date.el: Renamed from "date". -1998-08-29 12:18:18 Lars Magne Ingebrigtsen + * gnus.el: Removed all timezone dependencies. - * nnvirtual.el (nnvirtual-request-group): Update the right group. + * score-mode.el: Removed. + (gnus-score-edit-insert-date): Use date. -1998-08-27 16:46:38 Lars Magne Ingebrigtsen + * date.el (float-to-time): New function. - * gnus-sum.el (gnus-data-compute-positions): Didn't work on hidden - threads. + * nnspool.el (nnspool-seconds-since-epoch): Removed. - * nnvirtual.el (nnvirtual-request-group): Work when always - updating. - (nnvirtual-always-rescan): Default to t. + * date.el (time-to-float): New function. -Thu Aug 27 11:03:59 1998 Lars Magne Ingebrigtsen + * message.el (message-make-date): Use format-time-string. + (message-make-expires): Use make-date. - * gnus.el: Gnus v5.6.41 is released. + * gnus-xmas.el (gnus-xmas-seconds-since-epoch): Removed. -1998-08-27 Mike McEwan + * gnus-util.el (gnus-dd-mmm): Use date. + (gnus-sortable-date): Ditto. - * gnus-agent.el (gnus-agent-fetch-group-1): Leave the calculation - of `articles' to `gnus-agent-fetch-headers'. - (gnus-agent-fetch-headers): We only want headers that are after - the last entry in `gnus-group-alist'. + * message.el (message-make-date): Take an optional time. -1998-08-27 09:45:42 Lars Magne Ingebrigtsen + * gnus: Applied patches from 5.6.43. - * Makefile.in (warn): New. + * date.el (if): Use parse-time. - * gnus.el: Removed unreferenced bound variables all over. + * gnus-score.el (gnus-summary-score-entry): Make into a command + again. - * gnus-group.el (gnus-update-group-mark-positions): Removed topic. + * gnus-group.el (gnus-group-get-new-news-this-group): Only call if + gnus-agent. - * gnus-cus.el (gnus-group-customize): No part. + * gnus.el (gnus-agent-meta-information-header): Moved here. - * gnus-agent.el (gnus-category-line-format-alist): Renamed specs. - (gnus-category-insert-line): Use it. +1998-09-05 Mike McEwan -Thu Aug 27 09:29:53 1998 Lars Magne Ingebrigtsen + * gnus-agent.el (gnus-agent-scoreable-headers): New variable. + (gnus-agent-fetch-group-1): Score article headers using normal + group score files if the download score rule of a category/group + is `file'. + (gnus-agent-fetch-group-1): Don't parse the entire .overview when + deciding what articles to download. + (gnus-agent-fetch-group-1): Don't push headers through scoring and + predicate processing if predicate is `true' or `false'. - * gnus.el: Gnus v5.6.40 is released. +1998-09-06 01:56:02 Lars Magne Ingebrigtsen -1998-08-27 09:19:31 Lars Magne Ingebrigtsen + * gnus-score.el (gnus-score-load-score-alist): Bind coding system. - * gnus-agent.el (gnus-agent-mode): Only toggle plugged in group - mode. + * gnus-art.el (gnus-article-setup-buffer): Enable multibyte. -1998-08-27 07:25:47 Lars Balker Rasmussen + * score-mode.el (score-mode-coding-system): New variable. + (gnus-score-edit-exit): Use it. - * message.el (message-supersede): Check the right headers. +1998-09-04 Jason R Mastaler -1998-08-26 13:51:18 Lars Magne Ingebrigtsen + * drums.el: Corrected typo. - * gnus-sum.el (gnus-sort-threads): Changed level. +1998-09-05 23:24:43 Hallvard B. Furuseth -1998-08-26 Mike McEwan + * mm-bodies.el (mm-body-encoding): Faster version. - * gnus-sum.el (gnus-build-all-threads): `save-excursion' and - `set-buffer' back to `gnus-summary-buffer' in order to access - buffer-local variables. +1998-09-05 22:23:03 Lars Magne Ingebrigtsen -1998-08-26 06:00:44 Lars Magne Ingebrigtsen + * gnus-art.el (gnus-article-decode-charset): Only decode text + things. - * gnus-sum.el (gnus-data-compute-positions): More and faster. + * message.el (message-output): Use rmail. -1998-08-26 05:41:15 Matt Pharr + * rfc2047.el (rfc2047-encoded-word-regexp): Allow spaces in the + word part. - * message.el (message-wash-subject): Remove more. + * mm-util.el (mm-charset-to-coding-system): Use + rfc2047-default-charset. + (mm-known-charsets): New variable. -1998-08-25 11:33:28 Tatsuya Ichikawa + * message.el (message-caesar-region): Bugged out. - * gnus-cache.el (gnus-cache-overview-coding-system): New - variable. +1998-09-06 Mike McEwan -1998-08-25 08:23:05 Albert L. Ting + * gnus-agent.el (gnus-agent-fetch-group-1): Allow lists when + specifying `agent-predicate' in a group's parameters. - * gnus-group.el (gnus-fetch-group-other-frame): New command. +Sat Sep 5 21:55:01 1998 Lars Magne Ingebrigtsen -1998-08-25 07:24:51 Lars Magne Ingebrigtsen + * gnus.el: Pterodactyl Gnus v0.16 is released. - * gnus-uu.el (gnus-uu-grab-articles): Check for pseudos. +1998-09-05 17:30:11 Lars Magne Ingebrigtsen - * gnus-art.el (gnus-ignored-headers): More headers. + * nnmail.el (nnmail-expired-article-p): Use predicate. - * gnus-sum.el (gnus-summary-move-article): Update the right - group. + * date.el (time-less-p): Renamed. -1998-08-23 14:31:31 Lars Magne Ingebrigtsen + * gnus-art.el (gnus-article-decode-charset): Really fetch headers + from the headers. - * gnus-art.el (gnus-ignored-headers): More headers. + * rfc2047.el (rfc2047-decode-region): Use the mm decoding + functions. -1998-08-23 Mike McEwan + * gnus-group.el (gnus-group-sort-selected-flat): Didn't work at + all. + (gnus-group-sort-selected-groups-by-alphabet): Changed interface + to all functions. - * gnus-agent.el (gnus-agent-copy-nov-line): Return to beginning of - line before next read. - (gnus-agent-braid-nov): Remove redundant `let'. +Sat Sep 5 01:45:52 1998 Lars Magne Ingebrigtsen -1998-08-22 10:40:54 Lars Magne Ingebrigtsen + * gnus.el: Pterodactyl Gnus v0.15 is released. - * gnus-art.el (article-display-x-face): Allow multiple X-Faces - under XEmacs. +1998-09-05 00:21:22 Lars Magne Ingebrigtsen -Sat Aug 22 10:28:25 1998 Lars Magne Ingebrigtsen + * date.el: New file. - * gnus.el: Gnus v5.6.39 is released. + * gnus-util.el (gnus-encode-date): Removed. + (gnus-time-less): Ditto. -1998-08-22 10:06:03 Lars Magne Ingebrigtsen + * nnmail.el (nnmail-date-to-time): Removed. + (nnmail-time-less): Ditto. + (nnmail-days-to-time): Ditto. + (nnmail-time-since): Ditto. - * gnus-art.el (gnus-ignored-headers): Added more headers. + * drums.el: New file. -1998-08-21 02:49:56 Lars Magne Ingebrigtsen +1998-09-04 00:25:52 Lars Magne Ingebrigtsen - * nnweb.el (nnweb-type): Doc fix. + * message.el (message-encode-message-body): Encode headers with + body encoding. - * gnus-sum.el (gnus-summary-set-process-mark): Move to the right - article. + * rfc2047.el (rfc2047-default-charset): Renamed. + (rfc2047-encodable-p): Use it. -1998-08-20 23:10:01 Lars Magne Ingebrigtsen + * base64.el (mm-util): Required. - * nnmail.el (nnmail-spool-file): Allow lists of files. +1998-09-03 16:28:30 Lars Magne Ingebrigtsen -1998-08-20 Per Starback - - * gnus/gnus-start.el (gnus-check-first-time-used): Change current - buffer before creating help group. - -1998-08-20 01:33:08 Lars Magne Ingebrigtsen - - * gnus-msg.el (gnus-message-style-insertions): New variable. - (gnus-message-insert-stylings): New function. - (gnus-configure-posting-styles): Use them. - - * gnus-topic.el (gnus-topic-mode): Don't alter summary-exit-hook. - - * gnus-sum.el (gnus-select-newsgroup): Don't update group. - - * gnus-msg.el (gnus-setup-message): Bind message-mode-hook. - (gnus-inhibit-posting-styles): New variable. - (gnus-summary-reply): Use it. - (gnus-configure-posting-styles): Ditto. - - * gnus-group.el (gnus-group-suspend): Don't kill dribble buffer. - -Thu Aug 20 00:28:35 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.38 is released. - -1998-08-20 00:02:50 Lars Magne Ingebrigtsen - - * message.el (message-mail): Doc fix. - -1998-08-19 23:22:02 Bill Pringlemeir - - * messcompat.el (message-send-mail-function): Initialized from - send-mail-function. - -1998-08-19 23:20:42 Martin Larose - - * message.el (message-send-coding-system): New variable. - -1998-08-19 19:00:37 Lars Magne Ingebrigtsen - - * gnus-msg.el (gnus-configure-posting-styles): Reinstated most of - old code. - - * gnus-start.el (gnus-save-newsrc-file): Use coding system. - -1980-06-08 03:53:56 Mike McEwan - - * gnus-agent.el (gnus-agent-braid-nov): Go to right place. - -1980-06-08 03:01:48 Shuhei KOBAYASHI - - * gnus-group.el (gnus-group-suspend): Fix. - -1998-08-18 00:25:11 Lars Magne Ingebrigtsen - - * gnus-cite.el (gnus-cited-opened-text-button-line-format-alist): - New n spec. - - * gnus-group.el (gnus-group-suspend): Use mapcar. - -1998-08-17 14:35:33 Lars Magne Ingebrigtsen - - * gnus-ems.el (gnus-add-minor-mode): Set mode var. - - * gnus-start.el (gnus-slave-mode): New function. - - * gnus-msg.el (gnus-post-method): Work with current in nndraft. - -1998-08-16 23:30:14 Lars Magne Ingebrigtsen - - * gnus-art.el (gnus-request-article-this-buffer): Allow recursive - selection of nneething groups. - - * nneething.el (nneething-address): Renamed from directory. - -Sun Aug 16 18:59:41 1998 Lars Magne Ingebrigtsen + * gnus-msg.el (gnus-post-method): Peel off real info from opened + servers. - * gnus.el: Gnus v5.6.37 is released. + * gnus-util.el (gnus-output-to-rmail): Removed. -1998-08-16 14:52:43 Lars Magne Ingebrigtsen + * gnus-art.el (gnus-summary-save-in-rmail): Use + gnus-output-to-rmailrmail-output-to-rmail-file. - * gnus.el: Autoload gnus-summary-wide-reply. + * rfc2047.el (rfc2047-decode-region): Fold case. + (rfc2047-decode): Use decode-string. - * gnus-sum.el (gnus-get-newsgroup-headers): Return the value of - In-Reply-To. + * mm-util.el: Provide mm-char-int. - * gnus-msg.el (gnus-setup-message): Posting styles have to be - configured in message-mode-hook. +Thu Sep 3 15:23:22 1998 Lars Magne Ingebrigtsen - * nntp.el (nntp-connection-timeout): Restored. - (nntp-open-connection): Use it. + * gnus.el: Pterodactyl Gnus v0.14 is released. -1998-08-15 22:46:49 Lars Magne Ingebrigtsen +1998-09-03 15:08:30 Lars Magne Ingebrigtsen - * gnus-group.el (gnus-group-make-useful-group): Doc fix. + * mm-bodies.el (mm-body-encoding): Go through the buffer to make + sure we have 7bit. - * gnus-art.el (gnus-article-push-button): Place point where you - click. +1998-09-02 14:38:18 Lars Magne Ingebrigtsen -1998-08-15 Mike McEwan + * gnus-msg.el (gnus-post-method): Use opened servers, and remove + ducplicates. + (gnus-inews-insert-mime-headers): Removed. - * gnus-agent.el (gnus-agent-save-group-info): Update "groups" file - if `nntp-server-list-active-group' is nil. + * message.el (message-caesar-region): Protect against MULE chars. -1998-08-15 00:35:03 Lars Magne Ingebrigtsen +1998-09-02 00:36:23 Hallvard B. Furuseth - * gnus-score.el (gnus-summary-increase-score): Swap t and r. + * mm-util.el (if): fset the right function. - * gnus-sum.el (gnus-remove-thread): Didn't work with sparse - threads. +1998-09-02 00:31:53 Lars Magne Ingebrigtsen -1998-08-14 François Pinard + * gnus-art.el (gnus-article-decode-charset): Use real + read-coding-system. - * nndoc.el (nndoc-generate-mime-parts-head): Use original Subject, - Message-ID, and References in fully blown articles. +1998-09-01 17:58:40 Lars Magne Ingebrigtsen -Fri Aug 14 23:03:51 1998 Lars Magne Ingebrigtsen + * mm-bodies.el (mm-decode-body): Protect against malformed + base64. + (mm-decode-body): Check that buffer-file-coding-system is + non-nil. - * gnus.el: Gnus v5.6.36 is released. +Tue Sep 1 10:29:33 1998 Lars Magne Ingebrigtsen -1998-08-14 21:49:22 Lars Magne Ingebrigtsen + * gnus.el: Pterodactyl Gnus v0.13 is released. - * gnus.el (load): Push onto list. +1998-09-01 09:14:33 Lars Magne Ingebrigtsen - * gnus-group.el (gnus-group-get-new-news-this-group): Store active - info. + * gnus-util.el (gnus-strip-whitespace): Already defined. + Removed. -Fri Aug 14 21:41:59 1998 Lars Magne Ingebrigtsen + * gnus-art.el (gnus-article-decode-charset): Strip whitespace. - * gnus.el: Gnus v5.6.35 is released. + * gnus-util.el (gnus-strip-whitespace): New function. -1998-08-14 00:00:15 Lars Magne Ingebrigtsen + * mm-util.el (mm-content-type-charset): Downcase. - * gnus-srvr.el (gnus-server-scan-server): Error better. +1998-08-31 23:04:29 Lars Magne Ingebrigtsen - * nndir.el: Make independent of nnmh. - Revert. + * gnus-art.el (gnus-article-decode-charset): Accept a prefix. + (gnus-article-decode-charset): Don't fetch all headers. - * message.el (message-remove-text-with-property): New function. - (message-fix-before-sending): Check for invisible text. + * mm-util.el (mm-read-coding-system): New function. - * gnus.el (load): Create the Gnus buffer even when no splash. + * mm-bodies.el (mm-decode-body): Check the right charset. - * gnus-msg.el (gnus-setup-message): Add buffer to list. + * gnus-sum.el (gnus-summary-mode-line-format): Ditto. - * gnus-win.el (gnus-remove-some-windows): Use new buffer system. - (gnus-delete-windows-in-gnusey-frames): Ditto. + * gnus-art.el (gnus-article-mode-line-format): Use short group + format. - * gnus.el (gnus-add-buffer): New function. +Mon Aug 31 23:03:13 1998 Lars Magne Ingebrigtsen -1998-08-13 23:38:21 Lars Magne Ingebrigtsen + * gnus.el: Pterodactyl Gnus v0.12 is released. - * gnus-xmas.el (gnus-buffer-list): Removed. +1998-08-31 22:39:36 Lars Magne Ingebrigtsen - * gnus.el (gnus-buffers): New variable. - (gnus-get-buffer-create): New function; used throughout. - (gnus-buffers): New function. + * mm-bodies.el (mm-decode-body): Don't do charset unless MULE. - * gnus-msg.el (gnus-configure-posting-styles): Go to eoh - reliably. + * gnus-art.el (gnus-article-decode-charset): Supply cte. + (gnus-article-decode-charset): Always run. - * message.el (message-goto-eoh): New command. + * mm-bodies.el (mm-decode-body): Decode cte. -1998-08-13 23:13:53 Simon Josefsson +Mon Aug 31 22:14:50 1998 Lars Magne Ingebrigtsen - * gnus-msg.el (gnus-setup-message): use message-setup-hook - instead - (gnus-configure-posting-styles): new posting-style 'body - (gnus-configure-posting-styles): insert headers immediately + * gnus.el: Pterodactyl Gnus v0.11 is released. -1998-08-13 13:05:36 Lars Magne Ingebrigtsen +1998-08-31 14:27:25 Lars Magne Ingebrigtsen - * gnus-score.el (gnus-summary-increase-score): Change thread to - "r". + * message.el (message-encode-message-body): Ditto. - * gnus-sum.el (gnus-summary-scroll-down): New command and + * gnus-art.el (gnus-article-decode-mime-words): New command and keystroke. + (gnus-article-decode-charset): Ditto. + (gnus-article-decode-charset): Only work under MULE. - * gnus-agent.el (gnus-agent-expire): Check that directories - exist. - -1998-08-12 20:56:41 Simon Josefsson - - * gnus-cache.el (gnus-uncacheable-groups): doc change - (gnus-cacheable-groups): new variable - (gnus-cache-possibly-enter-article): use it - -1998-08-12 22:30:16 Lars Magne Ingebrigtsen - - * nntp.el (nntp-encode-text): Too much text. - -1998-08-12 21:58:50 Matt Pharr - - * message.el (message-make-forward-subject-function): New - variable. - (message-wash-forwarded-subjects): Ditto. - -Wed Aug 12 21:09:58 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.34 is released. - -1998-08-12 13:32:38 Lars Magne Ingebrigtsen - - * gnus-msg.el (gnus-post-method): Don't use `current' in drafts. - - * gnus-score.el (gnus-summary-increase-score): Changed T to h and - downcase. - -Tue Aug 11 20:46:25 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.33 is released. - -1998-08-11 20:07:55 Lars Magne Ingebrigtsen - - * gnus-group.el (gnus-group-apropos): Check symbol value. - - * gnus-cite.el (gnus-cited-closed-text-button-line-format): - Changed. - -Tue Aug 11 19:42:42 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.32 is released. - -1998-08-11 13:36:56 Lars Magne Ingebrigtsen - - * nndoc.el (nndoc-type-alist): Do MIME digests before multiparts. - - * gnus.el (gnus-predefined-server-alist): Expand vars. - -1998-08-09 Dave Love - - * gnus-art.el (article-display-x-face): Don't try (and fail) to - display multiple faces. - -1998-08-11 11:41:43 Lars Magne Ingebrigtsen - - * gnus-art.el (gnus-header-newsgroups-face): Don't bold so much. - - * gnus-group.el (gnus-group-rename-group): Remove old group name - from list of killed groups. - - * gnus-int.el (gnus-get-function): Error better. - - * gnus-art.el (gnus-article-narrow-to-signature): Inhibit motion - hooks. - (article-hide-pgp): Delete text instead of hiding it. - - * gnus-group.el (gnus-group-find-new-groups): Ditto. - - * gnus-start.el (gnus-find-new-newsgroups): Accept C-u C-u as a - total query. - -1998-08-10 09:31:36 Lars Magne Ingebrigtsen - - * gnus-art.el (gnus-article-prepare): Place point at the beginning - of the body. - - * gnus-cite.el (gnus-cite-attribution-face): Changed to italic. - - * gnus-art.el (gnus-article-edit-article): Delete "annotation" - text. - (gnus-insert-prev-page-button): Mark as annotation. - (gnus-insert-next-page-button): Ditto. - - * gnus-cite.el (gnus-cited-closed-text-button-line-format): New - variable. - (gnus-cited-closed-text-button-line-format-alist): Ditto. - (gnus-article-toggle-cited-text): Toggle between different - symbols. - -1998-08-09 19:58:36 Lars Magne Ingebrigtsen - - * gnus.el (gnus-version): Remove backend info. - -Sun Aug 9 19:37:40 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.31 is released. - -1998-08-09 François Pinard - - * nndoc.el: Split MIME multipart messages, maybe recursively. - (nndoc-mime-parts-type-p, nndoc-transform-mime-parts, - nndoc-generate-mime-parts-head, nndoc-dissect-mime-parts, - nndoc-dissect-mime-parts-sub): New functions. - - * nndoc.el: Quoting boundaries is optional, for multipart digests. - -1998-08-09 17:51:25 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-save-group-info): Check whether file - exists. - - * message.el (message-goto-signature): Return nil if no sig. - (message-delete-not-region): Delete properly if no sig. - -1998-08-09 17:26:30 Simon Josefsson - - * gnus-srvr.el (gnus-browse-make-menu-bar): select did read - -1998-08-09 15:51:43 Lars Magne Ingebrigtsen - - * gnus-sum.el (t): Added keystroke for W W C. - - * gnus-cite.el (gnus-article-hide-citation-maybe): hiden->hidden. - -Sun Aug 9 15:46:16 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.30 is released. - -1998-08-09 10:48:31 Lars Magne Ingebrigtsen - - * message.el (message-cite-original-without-signature): Peel off - blank lines. - - * gnus-art.el (gnus-article-maybe-highlight): Doc fix. - - * gnus-sum.el (gnus-data-enter-list): Threw away all new list data - at the beginning of the buffer. - -1998-08-07 01:41:29 Gareth Jones - - * gnus-score.el (gnus-summary-increase-score): Don't downcase - before lookin in char-to-header. - -1998-08-07 01:33:22 Lars Magne Ingebrigtsen - - * gnus.el (gnus-predefined-server-alist): Too many parentheses. - -1998-08-06 11:20:08 Lars Magne Ingebrigtsen - - * gnus.el (gnus-continuum-version): Include quassia. - - * gnus-sum.el (gnus-data-enter-list): Check before entering list. - -1998-08-06 11:13:56 Francois Felix Ingrand - - * gnus-salt.el (gnus-generate-vertical-tree): Don't go too far to - the left. - -Thu Aug 6 07:58:17 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.29 is released. - -1998-08-06 07:10:31 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-expire): Check whether (caar - gnus-agent-article-alist) is nil. - - * gnus.el (gnus-read-method): Allow selecting predefined servers. - - * gnus-topic.el (gnus-topic-update-topic-line): Compute right - number when inserting missing topic lines. - - * gnus-start.el (gnus-get-unread-articles): Check that the group - is alive. - - * gnus-score.el (gnus-score-load-score-alist): Better error - messaging. - -Tue Aug 4 09:42:31 1998 Kurt Swanson - - * gnus-salt.el (gnus-pick-mouse-pick-region): Fix picking bug due - to use of gnus-read-event-char. - -1998-07-28 Dave Love - - * gnus-group.el (gnus-group-fetch-faq): Don't mung dots in group - name. - -1998-07-27 Dave Love - - * gnus-topic.el (gnus-topic-mode-map): Provide Emacs tty - alternatives to [tab], [(meta tab)]. - -1998-08-06 04:41:38 Lars Magne Ingebrigtsen - - * gnus-start.el (gnus-startup-file-coding-system): New variable. - (gnus-read-init-file): Use it. - (gnus-read-newsrc-el-file): Ditto. - - * gnus-sum.el (gnus-thread-ignore-subject): Changed default. - -1998-08-06 04:38:02 Richard Stallman - - * message.el (sendmail): Required. - -1998-08-06 02:11:37 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-auto-select-same): Dix fix. - -1998-08-04 Mike McEwan - - * gnus-sum.el (gnus-select-newsgroup): Set - `gnus-newsgroup-unselected' when selecting specific articles via - SELECT-ARTICLE - there may be more headers to fetch if - `gnus-fetch-old-headers' is non-nil. - (gnus-summary-read-group): pass SELECT-ARTICLE to - `gnus-summary-read-group-1' and reset to nil when going to next group. - (gnus-summary-read-group): Change `select-article' to - `select-articles' for consistency. - -Tue Aug 4 05:25:01 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.28 is released. - -1998-08-03 22:00:25 Lars Magne Ingebrigtsen - - * nndoc.el (nndoc-set-delims): Removed article-end. - (nndoc-dissect-buffer): Use eobp. - -1998-08-03 19:59:36 Trung Tran-Duc - - * nntp.el (nntp-open-connection): Bind coding-system-for-write. - -1998-07-31 16:45:36 Lars Magne Ingebrigtsen - - * gnus-group.el (gnus-group-read-ephemeral-group): Make the server - unique. - -1998-07-28 François Pinard - - * gnus-uu.el (gnus-uu-reginize-string): Consider the number of - parts as part of the fixed subject, instead of a wild quantity. - -1998-07-30 21:47:23 Lars Magne Ingebrigtsen - - * gnus-cache.el (gnus-summary-insert-cached-articles): Sort - articles. - - * nndir.el (nndir): Use nnml functions. - -Mon Jul 27 03:26:00 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.27 is released. - -1998-07-27 02:27:11 Lars Magne Ingebrigtsen - - * gnus-topic.el (gnus-topic-update-unreads): New function. - - * gnus-sum.el (gnus-summary-limit): Update mode line. - - * gnus-soup.el (gnus-soup-add-article): Update mode line. - - * gnus-group.el (gnus-group-make-menu-bar): Bug. - - * gnus-art.el (gnus-article-make-menu-bar): Menu. - - * gnus-sum.el (gnus-summary-make-menu-bar): Bug reports. - - * gnus-topic.el (gnus-topic-mode-map): h -> H. - -1998-07-19 16:59 Simon Josefsson - - * gnus-util.el (gnus-netrc-syntax-table): @ is whitespace - -1998-07-17 Gordon Matzigkeit - - * gnus-uu.el (gnus-uu-reginize-string): Simplify by looking - from back to front for part numbers, rather than skipping - leading ``version numbers.'' - - (gnus-uu-part-number): Make consistent with - gnus-uu-reginize-string. - -1998-07-26 19:01:58 Lars Magne Ingebrigtsen - - * gnus-art.el (gnus-request-article-this-buffer): Pass along - header. - - * gnus-sum.el (gnus-summary-update-article): Don't pass along - iheader to regeneration routine. - -1998-07-27 KOSEKI Yoshinori - - * nnmail.el (nnmail-move-inbox): Clear nnmail-internal-password, - when supplied Password is incorrect. - -Sat Jul 25 19:31:36 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.26 is released. - -1998-07-25 14:53:24 Lars Magne Ingebrigtsen - - * gnus-salt.el (gnus-pick-mouse-pick-region): Use - gnus-read-event-char. - -Sat Jul 25 02:43:35 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.25 is released. - -1998-07-25 00:03:24 Lars Magne Ingebrigtsen - - * gnus-group.el (gnus-group-read-ephemeral-group): Ditto. - - * gnus-sum.el (gnus-summary-read-group-1): Ditto. - - * gnus-group.el (gnus-group-read-group): Accept article list. - -1998-07-24 14:35:02 Lars Magne Ingebrigtsen - - * gnus-msg.el (gnus-configure-posting-styles): Quote some. - - * message.el (message-ignored-supersedes-headers): Added X-Trace - and X-Complaints-To. - - * nnmail.el (gnus-util): Required. - -1998-07-21 23:03:13 Lars Magne Ingebrigtsen - - * gnus.el (gnus-news-group-p): Bogosity in params. - -1998-07-21 16:14:32 Robert Bihlmeyer - - * gnus-util.el (gnus-globalify-regexp): New function. - -1998-07-18 21:49:01 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-list-of-unread-articles): Peel off articles - outside active range. - -1998-07-15 10:47:39 Lars Magne Ingebrigtsen - - * nnvirtual.el (nnvirtual-request-type): Handle non-numerical - articles. - - * gnus.el (gnus-news-group-p): Do something sensible with negative - articlies. - -Wed Jul 15 10:27:05 1998 Lars Magne Ingebrigtsen - - * gnus-salt.el (gnus-tree-minimize-window): Allow numbers. - -Wed Jul 15 10:25:29 1998 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-expire): Ignored ticks. - -Wed Jul 15 10:15:28 1998 Hallvard B. Furuseth - - * nntp.el (nntp-send-authinfo): Message better and stuff. - -Wed Jul 15 10:10:07 1998 Lars Magne Ingebrigtsen - - * gnus.el (gnus-message-archive-group): Allow sexp. - -Wed Jul 15 09:56:47 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-select-newsgroup): Accept select-articles - para, - -1998-07-13 Mike McEwan - - * gnus-sum.el (gnus-select-newsgroup): Don't call the Agent to - mark articles as read until *all* headers have been retrieved. - -Wed Jul 15 09:06:18 1998 Lars Magne Ingebrigtsen - - * nndir.el (nndir): Use nnml to request article. - -1998-07-11 SL Baur - - * gnus-topic.el (gnus-topic-mode-map): Use modern key syntax. - -Sun Jul 12 04:01:22 1998 Lars Magne Ingebrigtsen - - * gnus-score.el (gnus-current-home-score-file): New function. - -1998-07-11 Mike McEwan - - * gnus-agent.el (gnus-agent-fetch-headers): Note last fetched - headers per sesion to aid expiry in `headers only' groups. - - * gnus-agent.el (gnus-agent-expire): Update group info to add - expired articles to list of read articles and prevent - re-fetching. - -1998-07-12 Lars Magne Ingebrigtsen - - * nnmail.el (nnmail-active-file-coding-system): Changed to - binary. - -Sun Jul 12 03:16:18 1998 Lars Magne Ingebrigtsen - - * gnus-score.el (gnus-score-load-file): Specify which alist to - decay. - -1998-07-12 Lars Magne Ingebrigtsen - - * gnus-start.el (gnus-startup-file-coding-system): New variable. - (gnus-read-newsrc-el-file): Use it. - -Sat Jul 11 03:03:53 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.24 is released. - -Fri Jul 10 04:23:24 1998 Hallvard B. Furuseth - - * gnus-util.el (gnus-parse-netrc): Allow "default" values. - -Fri Jul 10 04:15:35 1998 Lars Magne Ingebrigtsen - - * nntp.el (nntp-server-opened-hook): Doc change. - -Fri Jul 10 03:03:48 1998 François Pinard - - * gnus-sum.el (gnus-summary-respool-trace): New command and - keystroke. - -Fri Jul 10 02:18:01 1998 Lars Magne Ingebrigtsen - - * gnus-util.el (gnus-prin1): Bind print-escape-multibyte to nil. - -Mon Jul 6 01:02:59 1998 Simon Josefsson - - * gnus-range.el (gnus-sorted-complement): Fix comments. - -Thu Jul 2 11:16:14 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-iterate): New macro. - - * message.el (message-pop-to-buffer): Clone locals. - - * gnus-msg.el (gnus-posting-styles): Reinstated. - (gnus-posting-style-alist): Ditto. - -Wed Jul 1 18:02:31 1998 Lars Magne Ingebrigtsen - - * gnus-int.el (gnus-get-function): Set funct to nil. - -1998-07-01 16:57:38 Simon Josefsson - - * gnus-int.el (gnus-get-function): returned non-nil when - function wasn't bound, if noerror=t - -Wed Jul 1 17:30:41 1998 Lars Magne Ingebrigtsen - - * gnus-topic.el (gnus-topic-mode-map): Bind TAB and M-TAB. - - * gnus-sum.el (gnus-build-sparse-threads): Make sure no dates are - nil. - (gnus-summary-limit-mark-excluded-as-read): Use the intersection. - - * gnus-msg.el (gnus-setup-message): Clone all local variables from - the summary buffer. - -Wed Jul 1 14:03:52 1998 Richard Stallman - - * message.el (message-cite-original): Use mail-citation-hook. - (message-cite-function): Ditto. - -Wed Jul 1 14:00:53 1998 Rajappa Iyer - - * gnus-salt.el (gnus-pick-mode-map): Changed keymap. - -Wed Jul 1 13:33:26 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.23 is released. - -Wed Jul 1 12:52:32 1998 Lars Magne Ingebrigtsen - - * nntp.el (nntp-record-command): Give more precise time info. - (nntp-next-result-arrived-p): Look for the end of error lines. - -Wed Jul 1 12:24:06 1998 François Pinard - - * gnus-util.el (gnus-delete-if): Would do the opposite. - -Wed Jul 1 01:53:31 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-build-sparse-threads): Didn't work at all. - -Tue Jun 30 15:56:54 1998 Lars Magne Ingebrigtsen - - * nntp.el (nntp-send-authinfo): Store the user name. - (nntp-authinfo-user): New variable. - - * gnus-sum.el (gnus-summary-limit-mark-excluded-as-read): Would - mark some articles as unread. - - * gnus-agent.el (gnus-agent-expire): Don't sort lines. - -Tue Jun 30 15:56:31 1998 Mike McEwan - - * gnus-agent.el (gnus-agent-expire): Use a fresh hash table. - -Mon Jun 29 22:49:49 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.22 is released. - -Mon Jun 29 21:22:46 1998 Lars Magne Ingebrigtsen - - * gnus-salt.el (gnus-pick-mode-map): Remove gnus-mouse. - - * gnus-sum.el (gnus-dependencies-add-header): `debug' left in. - Eh. Eh. - - * gnus-salt.el (gnus-summary-pick-line-format): Missing %.- - - * gnus-topic.el (gnus-topic-rename): Fix error message. - -Sun Jun 28 14:32:08 1998 Lars Magne Ingebrigtsen - - * gnus-spec.el (gnus-face-face-function): Double quoting removed. + * mm-util.el (mm-content-type-charset): New function. -Sun Jun 28 09:54:52 1998 Lars Magne Ingebrigtsen + * nnmail.el (nnmail-delete-incoming): Changed to nil. - * gnus.el: Gnus v5.6.21 is released. + * message.el (message-send-mail): Insert MIME headers. + (message-check-news-body-syntax): Don't warn for escape sequences. + (message-check-news-body-syntax): Insert MIME headers. -Sun Jun 28 08:51:39 1998 Lars Magne Ingebrigtsen + * mm-bodies.el (mm-body-encoding): New function. - * gnus-sum.el (gnus-summary-edit-article-done): Copy the buffer to - a temp buffer before replacing. + * message.el (message-encode-message-body): New function. - * gnus-msg.el (gnus-post-news): Treat broken-reply-to in - followups. + * mm-bodies.el: New file. - * gnus-sum.el (gnus-summary-goto-subject): Position point. + * mm-util.el (mm-narrow-to-head): New function. -Sat Jun 27 09:19:20 1998 Lars Magne Ingebrigtsen + * rfc2047.el (rfc2047-encode): Use it. - * gnus-demon.el (gnus-util): Required. + * mm-util.el: Provide mm-encode-coding-region. - * gnus-score.el (gnus-score-body): Message fix. + * gnus-sum.el (gnus-summary-mode): Enable multibyte. - * gnus-group.el (gnus-group-highlight-line): Use it. + * gnus-util.el (gnus-set-work-buffer): Enable multibyte. - * gnus-util.el - (gnus-put-text-properties-excluding-characters-with-faces): New - function. + * mm-util.el (mm-enable-multibyte): New function. -Sat Jun 27 08:56:08 1998 Lars Magne Ingebrigtsen + * message.el (message-set-work-buffer): Set multibyte. - * gnus.el: Gnus v5.6.20 is released. + * gnus.el (gnus-continuum-version): Be valid forever and ever. -Sat Jun 27 08:49:51 1998 Arne Georg Gleditsch + * gnus-util.el (gnus-point-at-eol): Removed. + (gnus-point-at-bol): Ditto. - * gnus-sum.el (gnus-parent-headers): Check better for headers. + * base64.el (base64-decode-region): Commented out messaging. -Sat Jun 27 08:45:09 1998 Lars Magne Ingebrigtsen +1998-08-31 Didier Verna - * message.el (message-check-news-body-syntax): Buggy checksum - check. + * gnus-msg.el (gnus-group-mail): make it behave like + gnus-group-post-news with regards to the prefix (this enables the + use of posting styles). -Sat Jun 27 07:59:22 1998 Lars Magne Ingebrigtsen +1998-08-31 12:53:32 Lars Magne Ingebrigtsen - * gnus.el: Gnus v5.6.19 is released. + * gnus.el (gnus-article-display-hook): Added + gnus-article-decode-rfc1522 to hook. -Sat Jun 27 07:50:50 1998 Lars Magne Ingebrigtsen +Mon Aug 31 12:43:46 1998 Lars Magne Ingebrigtsen - * gnus.el: Gnus v5.6.18 is released. + * gnus.el: Pterodactyl Gnus v0.10 is released. -Sat Jun 27 03:18:57 1998 Lars Magne Ingebrigtsen +1998-08-31 11:45:13 Lars Magne Ingebrigtsen - * gnus-soup.el (gnus-soup-save-areas): Made interactive. + * nnfolder.el (nnfolder-delete-mail): Narrow to mail and allow + hook to be run. - * nnfolder.el (nnfolder-request-replace-article): Check all X-From - headers. +1998-08-30 17:59:07 Lars Magne Ingebrigtsen - * gnus-sum.el (gnus-update-marks): Don't nix out cache lists. + * rfc2047.el (rfc2047-encodable-p): Use find-charset-region. - * nngateway.el (nngateway-mail2news-header-transformation): - Changed semantics. + * mm-util.el (mm-charsets-in-region): Removed. - * message.el (message-check-news-body-syntax): Don't look at - buffer size to see whether text has been added. + * rfc2047.el: Renamed file. -Fri Jun 26 15:46:05 1998 Lars Magne Ingebrigtsen + * gnus-msg.el (gnus-copy-article-buffer): Multibyte. - * gnus.el: Gnus v5.6.16 is released. + * message.el (message-mode): Set multibyte. -Fri Jun 26 15:36:25 1998 Lars Magne Ingebrigtsen + * mm-util.el (mm-charsets-in-region): Copied here. - * gnus-util.el (gnus-delete-assq): Removed. - (gnus-delete-assoc): Ditto. + * gnus-util.el: Removed gnus-truncate-string. - * gnus.el: Use throughout. + * gnus-art.el (gnus-article-decode-mime-words): Use 1522. - * gnus-util.el (gnus-pull): New macro. + * rfc1522.el (rfc1522-unencoded-charsets): New variable. + (rfc1522-encodable-p): New function. + (rfc1522-encode-message-header): Use it. -1998-06-26 Simon Josefsson +Sun Aug 30 17:46:01 1998 Lars Magne Ingebrigtsen - * gnus-sum.el (gnus-get-newsgroup-headers): parse Chars: headers + * gnus.el: Pterodactyl Gnus v0.9 is released. -Fri Jun 26 13:45:24 1998 Lars Magne Ingebrigtsen +1998-08-30 16:13:08 Lars Magne Ingebrigtsen - * gnus-sum.el (gnus-update-marks): Use it. + * mm-util.el: Shadow encode-coding-string. - * gnus-util.el (gnus-delete-alist): New function. + * base64.el (base64-encode-region): Don't add newline. - * gnus-sum.el (gnus-update-marks): Don't save list of cached - articles. + * rfc1522.el (rfc1522-narrow-to-field): Copied here. - * message.el (message-mode-menu): Include kill-buffer. + * mm-util.el: New file. - * nnmail.el (nnmail-purge-split-history): Use it. + * mm-decode.el: Somewhat depleted. + * mm-encode.el: Ditto. - * gnus-util.el (gnus-delete-if): New function. + * rfc1522.el: New file. - * nnmail.el (nnmail-article-group): Use gnus-remove-duplicates. + * mm-util.el (mm-replace-chars-in-string): Copied here. -Fri Jun 26 13:45:09 1998 Richard Stallman + * mm-encode.el (mm-q-encode-region): New function. - * gnus-util.el (gnus-remove-duplicates): New function. + * qp.el (quoted-printable-encode-region): Take an optional CLASS + param. -Fri Jun 26 13:30:42 1998 Kevin Christian + * mm-encode.el (mm-encode-word-region): Downcase. - * gnus-score.el (gnus-score-string): Do updating of scores after - fuzzies. +Sun Aug 30 15:28:01 1998 Lars Magne Ingebrigtsen -Fri Jun 26 07:26:03 1998 Lars Magne Ingebrigtsen + * gnus.el: Pterodactyl Gnus v0.8 is released. - * message.el (message-mode): Don't do the intern dance. +1998-08-30 12:23:03 Lars Magne Ingebrigtsen -Fri Jun 26 07:13:49 1998 Richard Stallman + * message.el (message-send-mail): Encode headers. - * message.el (message-mode): Adaptive fill changes. + * qp.el (quoted-printable-encode-region): Encode 8-bit words. + (quoted-printable-encode-region): Upcase. -Fri Jun 26 04:29:44 1998 Lars Magne Ingebrigtsen + * message.el (message-default-charset): New variable. - * gnus-sum.el (gnus-summary-mode-line-format-alist): Allow article - score. + * qp.el (quoted-printable-encode-region): Optional param FOLD. - * gnus-score.el (gnus-score-load-file): Would ignore all score - files without un-advanced rules. + * message.el (message-narrow-to-field): Changed name. - * gnus-ems.el ((fboundp 'split-string)): Use it where it exists. + * mm-encode.el: New file. -Fri Jun 26 04:23:12 1998 Lars Magne Ingebrigtsen + * message.el (message-narrow-to-header): New function. - * gnus.el: Gnus v5.6.15 is released. + * gnus-art.el (gnus-article-decode-mime-words): Place point in the + right buffer. -Fri Jun 26 03:39:32 1998 Lars Magne Ingebrigtsen +Sun Aug 30 12:15:54 1998 Lars Magne Ingebrigtsen - * nnfolder.el (nnfolder-request-replace-article): Delete old - delimiter. + * gnus.el: Pterodactyl Gnus v0.7 is released. - * gnus-msg.el (gnus-summary-reply): Use it. +1998-08-30 01:26:12 Lars Magne Ingebrigtsen - * message.el (message-reply): Removed parameter. - (message-wide-reply): Ditto. + * gnus.el: Remove autoload for + gnus-article-mime-decode-quoted-printable. - * gnus-msg.el (gnus-msg-treat-broken-reply-to): New function. + * mm-decode.el (mm-charset-to-coding-system): Allow iso-8859-1 to + be decoded in non-MULE Emacsen. - * gnus-art.el (gnus-check-group-server): New function. - (gnus-request-article-this-buffer): Don't try to waken the server - before needing to. + * gnus-xmas.el (gnus-xmas-logo-color-alist): More brown. -Thu Jun 25 10:35:48 1998 Lars Magne Ingebrigtsen +1998-08-29 SL Baur - * gnus-sum.el (gnus-summary-delete-article): Sort the articles - before deleting. + * gnus-xmas.el (gnus-xmas-logo-color-alist): Try shades of brown. - * nngateway.el (nngateway-request-post): Return success. +1998-08-30 01:04:57 Lars Magne Ingebrigtsen - * nnheader.el (nnheader-insert-file-contents): Bind more hooks. + * mm-decode.el: Check for coding-system-list. - * gnus-sum.el (gnus-summary-limit-to-age): Reverse logic. +Sun Aug 30 00:59:15 1998 Lars Magne Ingebrigtsen - * gnus-score.el (gnus-summary-score-entry): Removed interactive - spec. - ((gnus-summary-score-map "V" gnus-summary-mode-map)): Removed - keystroke. + * gnus.el: Pterodactyl Gnus v0.6 is released. - * gnus-art.el (gnus-article-show-summary): Position point. +1998-08-30 00:36:28 Lars Magne Ingebrigtsen - * gnus-cache.el (gnus-cache-update-article): Change group first. + * nnheader.el (fboundp): Protect code-coding-string. - * gnus.el (gnus-short-group-name): Collapse more. + * gnus-art.el (gnus-article-mode): Check that set-buffer-multibyte + is available. -Thu Jun 25 08:48:06 1998 Lars Magne Ingebrigtsen +Sat Aug 29 23:24:31 1998 Lars Magne Ingebrigtsen - * gnus.el: Gnus v5.6.14 is released. + * gnus.el: Pterodactyl Gnus v0.5 is released. -Thu Jun 25 05:13:31 1998 Lars Magne Ingebrigtsen +1998-08-29 22:38:35 Lars Magne Ingebrigtsen - * gnus-sum.el (gnus-rebuild-thread): Accept a line argument. - (gnus-rebuild-thread): Would skip around a lot when `P'-ing past - the beginning. + * gnus-art.el (gnus-article-mode): Make article buffer multibyte. + (gnus-hack-decode-rfc1522): Removed. - * gnus-msg.el (gnus-post-method): Present all known servers if - `C-u 0'. + * mm-decode.el (mm-charset-coding-system-alist): Check better. - * gnus-salt.el (gnus-pick-mode-map): Reinstated keymap. +Sat Aug 29 22:20:39 1998 Lars Magne Ingebrigtsen - * gnus-sum.el (gnus-build-sparse-threads): Put the proper date - in. + * gnus.el: Gnus v0.4 is released. -Wed Jun 24 07:52:30 1998 Lars Magne Ingebrigtsen +1998-08-29 20:53:29 Lars Magne Ingebrigtsen - * gnus.el: Gnus v5.6.13 is released. - -Wed Jun 24 07:47:04 1998 Lars Magne Ingebrigtsen - - * gnus-topic.el (gnus-topic-rename): Disallow "nil". - -Wed Jun 24 07:33:17 1998 Vladimir Alexiev - - * nnvirtual.el (nnvirtual-update-xref-header): Regexp-quote group - name. - -Wed Jun 24 06:15:27 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-build-sparse-threads): Give all the sparse - articles the date of the current child. - - * gnus-topic.el (gnus-group-topic-parameters): Didn't compute. - -Wed Jun 24 03:27:44 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.12 is released. - -Wed Jun 10 11:06:35 1998 Andreas Schwab - - * message.el (message-mail-other-window): Bind message-this-is-mail. - (message-mail-other-frame): Likewise. - (message-news-other-window): Bind message-this-is-news. - (message-news-other-frame): Likewise. - -1998-06-09 Sam Steingold - - * gnus-uu.el (gnus-uu-default-view-rules): make sed kill ^M only - at the end of line. - -1998-06-05 Hrvoje Niksic - - * nnmail.el (nnmail-get-split-group): Don't regexp-quote - nnmail-procmail-suffix. - -Wed Jun 24 03:04:05 1998 Kim-Minh Kaplan - - * gnus-sum.el (gnus-build-get-header): Fix obarray. - -Wed Jun 24 02:49:57 1998 Castor - - * nntp.el (nntp-open-ssl-stream): - -Wed Jun 24 02:31:46 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-nov-parse-line): Cleaned up. - (gnus-build-all-threads): Put things in the wrong obarray. - -Wed Jun 24 01:43:26 1998 Decklin Foster - - * nngateway.el (nngateway-mail2news-header-transformation): New - function. - -Wed Jun 24 00:25:45 1998 Lars Magne Ingebrigtsen - - * message.el (message-shorten-references): New function. - (message-header-format-alist): Use it. - - * gnus-start.el (gnus-always-read-dribble-file): Customized. - - * message.el (message-generate-new-buffers): Dox fox. - -Tue Jun 23 23:58:48 1998 Lars Magne Ingebrigtsen - - * gnus-topic.el (gnus-topic-prepare-topic): Respect visible topic - param. - (gnus-topic-hierarchical-parameters): New function. - -1998-06-02 Didier Verna - - * gnus-picon.el (gnus-get-buffer-name): use get-buffer-create - instead of get-buffer - -Wed Jun 3 04:41:45 1998 Lars Magne Ingebrigtsen - - * nnkiboze.el (nnkiboze-request-delete-group): Delete .newsrc - file. - - * nnmail.el (nnmail-article-group): Nuke looong lines. - - * gnus-art.el (gnus-button-alist): Buggy default. - -Wed Jun 3 04:03:37 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.11 is released. - -Wed Jun 3 03:33:50 1998 Lars Magne Ingebrigtsen - - * gnus.el: Checked doc string syntax throughout. - - * message.el (message-subject-re-regexp): Renamed. - -Wed Jun 3 03:33:05 1998 Simon Josefsson - - * message.el (message-ignored-subject-re): New variable. - -Wed Jun 3 03:25:13 1998 Sam Steingold - - * gnus-msg.el (gnus-bug-create-help-buffer): New variable. - (gnus-bug): Use it. - -1998-05-07 Hrvoje Niksic - - * nnmail.el: (nnmail-get-split-group): Use `regexp-quote' - when file name is a part of pattern. - - * nnmail.el (nnmail-crosspost-link-function): Ditto. - - * gnus-ems.el: Use `symbol-name' instead of `(format "%s" ...)'. - - * gnus-score.el (gnus-score-load-file): Use `regexp-quote' - when file name is a part of pattern. - -1998-05-06 Hrvoje Niksic - - * gnus-cache.el (gnus-cache-generate-active): Use `regexp-quote' - when file name is a part of pattern. - -Wed Jun 3 03:13:34 1998 Lars Magne Ingebrigtsen - - * nnfolder.el (nnfolder-delete-mail): Changed parameters. - (nnfolder-request-replace-article): Rename X-From-Line. - -Wed Jun 3 03:10:04 1998 Dan Christensen - - * nnfolder.el (nnfolder-adjust-min-active): Work. - -Mon Jun 1 05:27:28 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-limit-to-age): Reversed time and - almost collapsed space! - - * nnmail.el (nnmail-days-to-time): Computed wrong time. - -Mon Jun 1 05:19:46 1998 Kim-Minh Kaplan - - * gnus-sum.el (gnus-dependencies-add-header): Break loops. - -Mon Jun 1 05:13:34 1998 Fabrice POPINEAU - - * gnus-cache.el (gnus-cache-generate-active): Regexp-quote. - -Mon Jun 1 04:31:23 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.10 is released. - -Mon Jun 1 03:25:33 1998 Lars Magne Ingebrigtsen - - * gnus-art.el (gnus-button-alist): Recognize bare mailto buttons - for Gnus. - - * nntp.el: Replaced all `message' calls. - -Mon Jun 1 03:13:46 1998 Wolfgang Rupprecht - - * nntp.el (nntp-encode-text): Removed spurious forward-line. - -Sat May 23 19:44:43 1998 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-fetch-session): Would infloop if - opening failed. - -Tue May 19 04:11:33 1998 Yoshiki Hayashi - - * nnheader.el (nnheader-translate-file-chars): Don't change - string. - -Tue May 19 03:07:45 1998 P. E. Jareth Hein - - * gnus-util.el (gnus-dd-mmm): New version. - -Tue May 19 03:00:39 1998 Lars Magne Ingebrigtsen - - * gnus.el: Changed address. - -Tue May 12 06:12:42 1998 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-expire): Delete more. - -Sun May 10 19:08:28 1998 Lars Magne Ingebrigtsen - - * gnus-group.el (gnus-group-read-ephemeral-group): Don't add - `address'. - -Sun May 3 18:01:01 1998 Lars Magne Ingebrigtsen - - * nnmail.el (nnmail-within-headers-p): Renamed. - - * message.el (message-cancel-news): If a Sender header doesn't - exist, compare From against `message-make-from'. - -Sun May 3 15:07:25 1998 Lars Balker Rasmussen - - * gnus-agent.el (gnus-agent-save-group-info): Fix - re-search-forward params. - -Sun May 3 15:04:02 1998 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-expire): Check for the size. - -Sat May 2 01:50:20 1998 Dan Christensen - - * nnfolder.el (nnfolder-goto-article): New version. - (nnfolder-read-folder): Fix. - - * nnmail.el (nnmail-within-headers): New function. - -Sat May 2 01:36:37 1998 Lars Magne Ingebrigtsen - - * nnfolder.el (nnfolder-goto-article): Thinkotypo search arguments. - - * nnheader.el (nnheader-find-file-noselect): Also bind - `find-file-hooks' to nil. - - * nnmail.el (nnmail-process-unix-mail-format): Don't use - `find-file-noselect'. - - * gnus-group.el (gnus-group-make-menu-bar): Typo. - -Fri May 1 21:59:35 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.9 is released. - -Fri May 1 21:54:30 1998 Lars Magne Ingebrigtsen - - * nnfolder.el (nnfolder-goto-article): Would infloop. - -Fri May 1 19:45:50 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.8 is released. - -Fri May 1 18:51:21 1998 Lars Magne Ingebrigtsen - - * nntp.el (nntp-request-newgroups): Use format-time-string. - - * message.el (message-fetch-field): Inhibit point-motion hooks. - -Fri May 1 18:33:06 1998 Wes Hardaker - - * gnus-score.el (gnus-adaptive-word-no-group-words): New variable. - -Fri May 1 16:56:32 1998 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-expire): Put point at the start of the - buffer. - - * gnus-soup.el (gnus-soup-parse-areas): Check whether the file - exists. - - * gnus-draft.el (gnus-draft-send): Use meta-information. - - * nnagent.el (nnagent-request-post): Store meta-information. - - * gnus-agent.el (gnus-agent-meta-information-header): New variable. - (gnus-agent-insert-meta-information): New function. - -Fri May 1 16:43:35 1998 Paul Franklin - - * message.el (message-generate-headers): Insert Sender when - required. - -Fri May 1 15:28:55 1998 Lars Magne Ingebrigtsen - - * gnus-util.el (gnus-dd-mmm): Accept "" dates. - - * gnus-cite.el (gnus-article-hide-citation): Don't remove button - when hiding. - - * gnus-msg.el (gnus-post-method): Allow ARG to override - `current'. - - * gnus-sum.el (gnus-remove-thread): Remove the dummy root - properly. - - * nnfolder.el (nnfolder-goto-article): New function. - (nnfolder-retrieve-headers): Use it. - (nnfolder-request-article): Ditto. - -Wed Apr 29 22:48:33 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.7 is released. - -Wed Apr 29 20:54:35 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-update-info): Bind - gnuis-newsgroup-scored later. - (gnus-summary-prepare-threads): Check some more before inserting - dummy roots. - - * gnus-cache.el (gnus-cache-enter-article): Update marks - properly. - - * gnus-xmas.el (gnus-xmas-draft-menu-add): New function. - - * nntp.el (nntp-connection-timeout): Removed. - - * gnus-move.el (gnus-move-group-to-server): Delete nils. - - * nntp.el (nntp-close-server): Close more connections. - - * gnus-art.el (gnus-button-alist): Accept white space after colons - in things. - -Wed Apr 29 20:18:45 1998 Kurt Swanson - - * gnus-art.el (article-update-date-lapsed): Bind - `deactivate-mark'. - - * gnus-salt.el (gnus-pick-mode-map): Moved keys around to avoid - shadowing. - - * gnus-art.el (gnus-article-read-summary-keys): New version. - - * gnus-sum.el (gnus-summary-make-menu-bar): New for article mode. - - * gnus-msg.el (gnus-post-method): `current' custom. - -Wed Apr 29 19:04:27 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-set-local-parameters): Ignore - quit-config. - (gnus-select-newsgroup): Use the value of gnus-fetch-old-headers. - - * message.el (message-post-method): Doc fix. - - * gnus.el (gnus-directory): dox fix. - -Tue Apr 28 03:32:17 1998 Lars Magne Ingebrigtsen - - * gnus-group.el (gnus-group-timestamp): Really get timestamp. - - * gnus.el (gnus-group-parameter-value): Use explicit iteration. - -Tue Apr 28 03:15:50 1998 Hallvard B. Furuseth - - * gnus-util.el (gnus-alive-p): Check for binding. - -Tue Apr 28 03:00:16 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-parent-headers): Don't infloop on nil - References. - - * gnus-art.el (gnus-article-mode): Don't kill local vars. - - * score-mode.el (score-mode-syntax-table): Change syntax. - -Mon Apr 27 00:26:01 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.6 is released. - -Mon Apr 27 00:07:11 1998 Lars Magne Ingebrigtsen - - * gnus-art.el (gnus-request-article-this-buffer): Viewing pseudos - in nneething groups bugged. - - * gnus-sum.el (gnus-summary-prepare-threads): Dummy roots and - dormants and stuff. - -Sun Apr 26 23:34:40 1998 Lars Magne Ingebrigtsen - - * gnus-cache.el (gnus-cache-file-name): Use FULL. - - * nnheader.el (nnheader-translate-file-chars): Allow FULL - parameter. - - * gnus-cache.el (gnus-cache-file-name): Translate all colons. - -Sun Apr 26 19:27:56 1998 Justin Sheehy - - * nntp.el (nntp-rlogin-parameters): Doc fix. - -Sun Apr 26 19:21:12 1998 Lars Magne Ingebrigtsen - - * gnus-art.el (gnus-summary-save-in-mail): Not a command. - -Sun Apr 26 19:16:03 1998 James Troup - - * gnus-sum.el (gnus-summary-expire-articles-now): Work. - -Sun Apr 26 14:34:06 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-build-sparse-threads): Break loops. - (gnus-summary-print-article): Save excursion to try to preserve - local/bound variable messup. - - * gnus-salt.el (gnus-tree-read-summary-keys): Put point in article - buffer. - - * gnus-undo.el (gnus-undo): New group. - (gnus-undo-limit): New variable. - (gnus-undo-register-1): Use it. - - * gnus-sum.el (gnus-summary-update-info): Don't nix out scores. - - * gnus-start.el (gnus-active-to-gnus-format): Removed "." from - quoting. - - * gnus.el (gnus-cache-directory): Moved here. - (gnus-predefined-server-alist): Use. - - * message.el (message-autosave-directory): Put back in. - (message-set-auto-save-file-name): Use if Gnus isn't running. - - * gnus-util.el (gnus-alive-p): Moved here. - - * message.el (message-autosave-directory): Removed. - (message-set-auto-save-file-name): Don't use it. - - * gnus.el: Use gnus-buffer-exists-p throughout. - - * gnus-uu.el (gnus-uu-save-article): Use gnus-kill-buffer. - - * message.el (message-make-in-reply-to): Check more for strange - From lines. - - * gnus-art.el (gnus-article-mode): Don't nix out vars. - -Sun Apr 26 14:05:40 1998 Frank Bennett - - * nnmail.el (nnmail-move-inbox): Push error'ed mailboxes onto the - list. - -Sun Apr 26 13:01:53 1998 Lars Magne Ingebrigtsen - - * gnus-score.el (gnus-score-save): Use it. - - * score-mode.el (score-mode-syntax-table): New table. - - * nnmbox.el: Commentary fix. - -Sun Apr 26 12:59:00 1998 Richard Stallman - - * message.el (message-mode): New adaptive fill defaults. - -Sun Apr 26 12:50:38 1998 Jim Radford - - * gnus-start.el (gnus-active-to-gnus-format): Groups that start - with dots. - -1998-04-11 Richard Stallman - - * gnus/gnus-art.el (gnus-emphasis-alist): Use nth, not caddr. - -Sat Apr 25 15:33:57 1998 Kim-Minh Kaplan - - * gnus-sum.el (gnus-build-sparse-threads): Handle loops. - -Sat Apr 25 15:09:54 1998 Lars Magne Ingebrigtsen - - * gnus.el (gnus-valid-select-methods): nngateway is post-mail. - -Fri Apr 24 21:32:14 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.5 is released. - -Fri Apr 24 21:19:21 1998 Lars Magne Ingebrigtsen - - * gnus-msg.el (gnus-post-method): Doc fix. - (gnus-post-method): Reversed semantics. - -1998-04-01 Jan Vroonhof - - * gnus-msg.el (gnus-post-method): Customized. Added 'native - option. In the function, added support for new value. - -Fri Apr 24 20:04:15 1998 Lars Magne Ingebrigtsen - - * nnmbox.el (nnmbox-request-create-group): New function. - -Sun Apr 12 07:55:16 1998 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-save-group-info): Only do those that - are covered. - -Tue Apr 7 11:26:31 1998 Lars Magne Ingebrigtsen - - * nntp.el (nntp-authinfo-file): Doc fix. - -1998-03-31 Ken Raeburn - - * nnml.el (nnml-request-expire-articles): Sort active-articles, - then only expire the intersection of that set with the requested - articles. - -Wed Apr 1 16:01:44 1998 Lars Magne Ingebrigtsen - - * message.el (message-supersede): Check Sender. - (message-cancel-news): Fix Sender check. - -Sun Mar 29 11:54:33 1998 Lars Magne Ingebrigtsen - - * nnkiboze.el (nnkiboze-generate-group): Would mess up newsrs - hashtb. - (nnkiboze-enter-nov): Created bogus Xrefs headers. - - * gnus-agent.el (gnus-agent-save-group-info): New function. - - * gnus-start.el (gnus-get-unread-articles): Use it. - - * message.el (message-expand-group): Allow completion from in the - middle of strings. - (message-font-lock-keywords): Work when mail-header-separator is - "". - -Sun Mar 29 09:56:00 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.4 is released. - -Sun Mar 29 09:47:58 1998 Lars Magne Ingebrigtsen - - * nnkiboze.el (nnkiboze-request-delete-group): Would bug out when - deleting files. - -Sat Mar 28 08:48:31 1998 Lars Magne Ingebrigtsen - - * nntp.el (nntp-encode-text): Use `nntp-end-of-line'. - -Thu Mar 26 15:29:51 1998 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-expire): Check size of history file. - - * message.el (message-mode): Doc fix. - -Mon Mar 23 14:21:34 1998 Mike McEwan - - * gnus-score.el (gnus-score-default-type): Doc fix. - -Mon Mar 23 14:12:01 1998 Lars Magne Ingebrigtsen - - * gnus-int.el (gnus-request-body): Do the same as HEAD. - - * gnus-art.el (gnus-article-edit-article-hook): Removed. - -Mon Mar 23 14:09:56 1998 jari aalto - - * gnus-art.el (gnus-article-edit-article-hook): New hook. - -1998-03-19 Jan Vroonhof - - * nntp.el (nntp-open-rlogin): Wrap in save-excursion - -Thu Mar 19 16:43:59 1998 Joe Buehler - - * gnus-util.el (gnus-date-iso8601): Use simple string. - -Thu Mar 19 15:18:00 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.3 is released. - -Thu Mar 19 15:09:14 1998 Wes Hardaker - - * gnus-win.el (gnus-delete-windows-in-gnusey-frames): Make sure - there are no nil buffers. - -1998-03-17 Per Abrahamsen - - * gnus-uu.el (gnus-uu-digest-headers): Add `Content-Type' and - `Content-Transfer-Encoding'. - -1998-03-18 Per Abrahamsen - - * message.el (message-header-lines): Added `:format'. - -1998-03-18 Simon Josefsson - - * nndoc.el: dummy request-accept-article - -Thu Mar 19 14:10:25 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-next-subject): Expand threads. - - * gnus-agent.el (gnus-agent-group-mode-hook, - gnus-agent-summary-mode-hook): New variables. - (gnus-agent-mode): Run them. - -1998-03-14 SL Baur - - * gnus-xmas.el (gnus-xmas-group-startup-message): Tell gnus-start - we've already drawn the pretty Gnu graphic. - -Thu Mar 19 12:44:12 1998 Lars Magne Ingebrigtsen - - * gnus-msg.el: Would use nil group names. - - * nntp.el (nntp-send-authinfo): Send authinfo to "force"d - servers. - - * gnus-util.el (gnus-parse-netrc): Accept the "force" token. - - * message.el (message-cancel-news): Compare Sender header, not - From header. - -Tue Mar 17 15:07:18 1998 Lars Magne Ingebrigtsen - - * gnus-art.el (article-hide-headers): Fold case. - -Sat Mar 14 17:57:35 1998 Lars Magne Ingebrigtsen - - * gnus-util.el (gnus-horizontal-recenter): New window-end may - return nil. - -Fri Mar 13 22:12:30 1998 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-fetch-session): Check whether server - is up before fetching. - - * gnus-win.el (gnus-window-frame-focus): New variable. - (gnus-configure-windows): Use it. - - * gnus-sum.el (gnus-summary-catchup-and-exit): Don't select next - when in an ephemeral group. - - * gnus-agent.el (gnus-agent-expire): Message end. - (gnus-agent-expire-all): New variable. - (gnus-agent-expire): Use it. - -Fri Mar 13 22:07:17 1998 Shenghuo ZHU - - * gnus-agent.el (gnus-agent-high-scored-p): Wrong value. - -Fri Mar 13 21:10:24 1998 Lars Magne Ingebrigtsen - - * nnvirtual.el (nnvirtual-request-group): Force updating of info. - -Sun Mar 8 20:46:51 1998 Lars Magne Ingebrigtsen - - * nnmail.el (nnmail-delete-incoming): Changed default. - -Sun Mar 8 14:05:25 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.2 is released. - -Sun Mar 8 00:35:09 1998 Lars Magne Ingebrigtsen - - * gnus-picon.el (gnus-get-buffer-name): Look in the assoc for the - variable. - - * nntp.el (nntp-wait-for): Check more for dead connections. - - * gnus-eform.el (gnus-edit-form-buffer): Moved back here. - - * gnus-win.el (gnus-window-to-buffer-helper): Return nil when - buffers don't exist. - - * nndraft.el (nndraft-request-restore-buffer): Remove Xref header, - not Xrefs. - -Sun Mar 8 00:00:04 1998 Lars Magne Ingebrigtsen - - * gnus.el: Gnus v5.6.1 is released. - -Sat Mar 7 22:15:46 1998 Lars Magne Ingebrigtsen - - * gnus.el (gnus-edit-form-buffer): Moved here. - - * gnus-agent.el (gnus-agent-expire-old): Removed. - (gnus-agent-expire-directory): Ditto. - (gnus-agent-expire-group): Even more ditto. - -Sat Mar 7 21:59:18 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.37 is released. - -Sat Mar 7 20:10:42 1998 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-expire-days): New variable. - (gnus-agent-expire): New function. - -Sat Mar 7 17:35:53 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.36 is released. - -Sat Mar 7 17:29:20 1998 Lars Magne Ingebrigtsen - - * nntp.el (nntp-wait-for): Reversed logic. - -Sat Mar 7 17:19:04 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.35 is released. - -Sat Mar 7 15:01:57 1998 Lars Magne Ingebrigtsen - - * gnus-picon.el (gnus-picons-x-face-sentinel): Check whether - gnus-picons-x-face-file-name exists. - - * gnus-art.el (gnus-article-read-summary-keys): Move window point - in the summary buffer. - - * nndoc.el (nndoc-type-alist): Allow spaces around separator. - - * gnus-sum.el (gnus-summary-edit-parameters): Interactive. - -Sat Mar 7 15:00:05 1998 Wes Hardaker - - * gnus-art.el (gnus-article-prepare): Mark articles as - downloadable. - -Wed Mar 4 22:33:27 1998 Ken Raeburn - - * gnus-int.el (gnus-get-function): New version, caches symbol - names. - -Fri Mar 6 01:10:22 1998 Ken Raeburn - - * nnml.el (nnml-article-to-file): Build pathname using - expand-file-name. (Thanks, Colin Rafferty, for catching - this.) - -Sat Feb 28 23:33:40 1998 Ken Raeburn - - * nnml.el (nnml-article-to-file): Don't add extra "/" when - building pathname. - - * nnheader.el (nnheader-file-to-number): Check value of - nnheader-numerical-short-files instead of checking if jka-compr is - loaded. - -1998-03-03 Dave Love - - * nnheader.el (nnheader-parse-head): Fix in-reply-to code. Return - nil consistently if not found. - -Sat Mar 7 13:50:44 1998 Lars Magne Ingebrigtsen - - * nntp.el: Check whether the connection died. - -1998-03-01 Kim-Minh Kaplan - - * gnus.texi (Easy Picons): Removed references to - `gnus-group-display-picons'. - (Hard Picons): Ditto. - -Mon Mar 2 16:17:36 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-exit-no-update): Run - gnus-summary-prepare-exit-hook here as well. - -Sat Feb 28 13:35:26 1998 Lars Magne Ingebrigtsen - - * nntp.el (nntp-authinforc-file): Changed default. - (nntp-authinfo-file): Changed name. - (nntp-record-commands): New variable. - (nntp-record-command): New function. - - * gnus-agent.el (gnus-agent-group-path): Use real name of group. - - * gnus-sum.el (gnus-summary-insert-subject): Don't allow nil - articles. - (gnus-summary-read-group): Respect backward movement. - -1998-03-01 Kim-Minh Kaplan - - * gnus-win.el (gnus-window-to-buffer): change "*Picons*" to - `gnus-picons-buffer'. - (gnus-window-to-buffer-helper): Support dynamic picon buffer - name (i.e a symbol that names a function to be called). - (gnus-configure-frame): Use it. - (gnus-delete-windows-in-gnusey-frames): Use it. - (gnus-all-windows-visible-p): Use it. - (gnus-remove-some-windows): Use it. - - * gnus-picon.el (gnus-get-buffer-name): Use it. - (gnus-picons-kill-buffer): New function. - (gnus-picons-setup-buffer): New function. - (gnus-picons-set-buffer): Use them. - (gnus-picons-display-x-face): Put back the `buf' binding: it is - needed when `gnus-picons-display-where' is not set to article. - Also move the X-Face to the left, near the address. It seems more - logical. - -Sat Feb 28 08:27:20 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.34 is released. - -Sat Feb 28 08:17:37 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.33 is released. - -Sat Feb 28 08:10:27 1998 Lars Magne Ingebrigtsen - - * gnus-picon.el (gnus-picons-display-x-face): `buf' -- unbound - var. - -Sat Feb 28 08:03:23 1998 François Pinard - - * gnus: configure'd. - -Sat Feb 28 07:43:00 1998 Nelson Jose dos Santos Ferreira - - * nnsoup.el (nnsoup-store-reply): Fix double sep error. - -Sat Feb 28 07:01:17 1998 Lasse Rasinen - - * gnus-start.el (gnus-ask-server-for-new-groups): Message more. - -Fri Feb 27 13:26:34 1998 Lars Magne Ingebrigtsen - - * message.el (message-resend): Allow arbitrary Also's. - -1998-02-27 Dave Love - - * gnus-sum.el (gnus-simplify-subject-functions): Fix - customization, doc. - -1998-02-25 Dave Love - - * gnus-art.el (gnus-article-x-face-command): Replace leading `{'. - -Mon Feb 23 18:26:48 1998 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-plugged): New command and keystroke. - - * gnus-ems.el (gnus-ems-redefine): Define - 'gnus-summary-set-display-table as a function that takes no - params. - - * gnus.el (gnus-interactive): Don't use gnus-sum macros. - (gnus-valid-select-methods): Include nnlistserv. - - * gnus.el: Autoloaded things to make byte-comp silent. - -Mon Feb 23 18:06:47 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.32 is released. - -Mon Feb 23 17:48:42 1998 Lars Magne Ingebrigtsen - - * gnus-cite.el (gnus-article-hide-citation-maybe): Wrong - interactive specs. - (gnus-cite-toggle): Maybe parse. - -Mon Feb 23 05:26:11 1998 Rui-Tao Dong ~{6-HpLN~} - - * nnweb.el (nnweb-type-definition): Fixed. - -Sun Feb 22 18:10:53 1998 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-group-path): Translate right chars. - (gnus-agent-toggle-plugged): Allow proper closing. - - * gnus-srvr.el (gnus-browse-read-group): Allow entering - non-ephemeral groups. - -Sun Feb 22 04:21:15 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.31 is released. - -Sun Feb 22 02:09:35 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-highlight): Give undownloaded marks a - better face. - - * gnus-score.el (gnus-score-set): Take optional "warn". - (gnus-summary-score-entry): Use it. - - * gnus.el: Removed spurious * in defcustoms. - - * gnus-score.el (gnus-score-load-file): Reverse logic. - - * gnus-cite.el (gnus-article-hide-citation): Use markers to make - things work when wrapping. - - * gnus-sum.el (gnus-summary-exit): Stop prefetch. - -Sat Feb 21 02:12:42 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-get-newsgroup-headers): Buggy regexp. - -Sat Feb 21 00:51:22 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.30 is released. - -Sat Feb 21 00:09:14 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-mark-article): Don't do anything if - the mark doesn't change. - - * gnus-art.el (gnus-article-prepare): Don't enter article into - cache. - - * gnus-sum.el (gnus-summary-reparent-thread): Don't mark as read. - (gnus-summary-mark-article): Don't do cache things here. - - * gnus-util.el (gnus-parse-netrc): Skip past macdefs. - -Fri Feb 20 22:56:22 1998 Lars Magne Ingebrigtsen - - * gnus-srvr.el (gnus-browse-unsubscribe-group): Wouldn't allow - unsubscription. - - * gnus-sum.el (gnus-summary-insert-subject): Allow inserting - articles outside limits. - - * gnus-start.el (gnus-dribble-enter): Update mode line. - - * gnus-srvr.el (gnus-browse-unsubscribe-group): Allow - unsubscription. - - * gnus-picon.el (gnus-article-display-picons): Check that the - extents are live first. - -Thu Feb 19 15:13:44 1998 Lars Magne Ingebrigtsen - - * gnus-group.el (gnus-useful-groups): Include gnus-bug. - -Thu Feb 19 02:28:17 1998 Jens-Ulrik Holger Petersen - - * gnus.el (gnus-group-history): Defined twice. - -Thu Feb 19 01:58:47 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-get-newsgroup-headers): Just use the header - value. - (gnus-summary-exit): Set global vars. - -Tue Feb 17 07:17:49 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-stop-page-breaking): Mark page as no - longer broken. - (gnus-summary-exit): Purge the real name. - -Tue Feb 17 07:00:43 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.29 is released. - -Tue Feb 17 06:15:03 1998 Lars Magne Ingebrigtsen - - * nnmail.el (nnmail-purge-split-history): List of alists, not - alist. - -Mon Feb 16 20:22:04 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.28 is released. - -1998-02-16 Lars Magne Ingebrigtsen - - * message.el (message-dont-send): Make sure the article really is - saved. - - * nnmail.el (nnmail-purge-split-history): Alist; not a list of - alists. - -1998-02-16 Hrvoje Niksic - - * message.el (message-kill-to-signature): Do the right thing when - there is no signature. - -1998-02-16 Hrvoje Niksic - - * message.el (message-elide-elipsis): Add type and group. - (message-elide-region): Docfix. - -1998-02-16 Lars Magne Ingebrigtsen - - * gnus-util.el (gnus-run-hooks): Use unwind-protect instead of - save-excursion. - -1998-02-16 Per Abrahamsen - - * nntp.el (nntp-authinforc-file): Customized. - -Mon Feb 16 03:18:33 1998 Lars Magne Ingebrigtsen - - * gnus-nocem.el (gnus-nocem-unwanted-article-p): Don't look if the - hashtable doesn't exist. - - * gnus-start.el (gnus-ask-server-for-new-groups): Make sure the - killed groups hashtable exists. - -Sun Feb 15 23:02:11 1998 Lars Magne Ingebrigtsen - - * nntp.el (nntp-authinforc-file): Changed name and default. - (nntp-send-authinfo): Use it. - -Sun Feb 15 19:50:10 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.27 is released. - -Sun Feb 15 19:41:14 1998 Lars Magne Ingebrigtsen - - * gnus.el (gnus-ephemeral-servers): New variable. - * gnus-srvr.el (gnus-server-prepare): Use it. - * gnus-group.el (gnus-group-read-ephemeral-group): Ditto. - -Sun Feb 15 19:35:11 1998 Kurt Swanson - - * gnus-art.el (gnus-article-read-summary-keys): Go to top on - some. - -Sun Feb 15 19:26:21 1998 SeokChan LEE - - * message.el (message-ignored-supersedes-headers): Fix. - -Sun Feb 15 18:39:15 1998 Lars Magne Ingebrigtsen - - * gnus-salt.el (gnus-tree-close): Start killing buffer again. - - * gnus-sum.el (gnus-mark-article-as-read): Return t. - - * gnus-art.el (gnus-article-edit-mode): Run text mode hook. - -Sun Feb 15 17:31:19 1998 Roland Roberts - - * gnus-sum.el (gnus-nov-parse-line): Would bug out on bogus - References headers. - -Sun Feb 15 14:23:51 1998 Lars Magne Ingebrigtsen - - * gnus-art.el (gnus-article-current-summary): New variable. - (gnus-article-mode): Make it local. - - * gnus-score.el (gnus-summary-increase-score): Find the right - global score file. - - * gnus-start.el (gnus-setup-news): Don't find new newsgroups - unless plugged. - - * message.el (message-mode): Set font-lock things before running - mode hook. - - * gnus-agent.el (gnus-agent-group-path): Respect long file names. - -Sat Feb 14 21:31:25 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-goto-last-article): Force jumping to - articles outside limit. - - * gnus-agent.el (gnus-agent-toggle-plugged): un/plug before hook. - -Sat Feb 14 21:08:03 1998 Kim-Minh Kaplan - - * gnus-xmas.el (gnus-xmas-article-display-xface): t t would make - faces disappear. - -Sat Feb 14 20:52:34 1998 Lars Magne Ingebrigtsen - - * nntp.el (nntp-netrc-file): New variable. - -Sat Feb 14 19:28:01 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.26 is released. - -Sat Feb 14 18:40:55 1998 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-directory): Translate file chars. - - * gnus-sum.el (gnus-summary-print-article): Don't display all - headers. - (gnus-summary-edit-parameters): New command and keystroke. - - * gnus-group.el (gnus-group-rename-group): Mark dribble. - -Sat Feb 14 18:39:45 1998 Fred Oberhauser - - * nnmail.el (nnmail-process-babyl-mail-format): Fix point - movement. - -Sat Feb 14 18:31:39 1998 Lars Magne Ingebrigtsen - - * gnus.el (gnus-group-get-parameter): Dix fix. - -Sat Feb 14 18:29:12 1998 Kim-Minh Kaplan - - * gnus-picon.el: Updated documentation. - -Sat Feb 14 18:26:53 1998 Joev Dubach - - * nntp.el (nntp-send-authinfo-from-file): Doc fix. - -Sun Jan 11 23:44:12 1998 Ken Raeburn - - * nnagent.el (nnagent-request-update-info): New no-op fn. - -Sat Feb 14 17:41:44 1998 Lars Magne Ingebrigtsen - - * gnus-srvr.el (gnus-browse-unsubscribe-group): Wouldn't allow - subscription of visited groups. - - * gnus-util.el (gnus-run-hooks): New function. - Use it everywhere. - - * nntp.el (nntp-authinfo-password): New variable. - (nntp-send-authinfo): Cache authinfo password. - - * gnus-sum.el (gnus-summary-mark-article-as-unread): Don't do - anything if the mark doesn't change. - -1998-01-17 Simon Josefsson - - * gnus-sum.el (gnus-summary-work-articles): change buffer - before looking at marked articles - (gnus-summary-work-articles): better check of marked articles - -Sat Feb 14 15:10:36 1998 Lars Magne Ingebrigtsen - - * nntp.el (nntp-send-authinfo): Use new .netrc functionality. - - * gnus-util.el (gnus-netrc-syntax-table): New variable. - (gnus-parse-netrc): New function. - (gnus-netrc-machine): Ditto. - (gnus-netrc-get): Ditto. - - * gnus-draft.el (gnus-draft-make-menu-bar): Added deletion. - - * gnus.el (gnus-expert-user): Dix fox. - - * nnmail.el (nnmail-article-group): Remove duplicates from split. - - * message.el (message-check-news-header-syntax): Check more on - Message-ID. - - * nnmh.el: Don't call nnmail-activate. - - * gnus.el: User-variabelize all custom vars. - -Fri Feb 13 22:40:39 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.25 is released. - -Fri Feb 13 19:01:19 1998 Lars Magne Ingebrigtsen - - * nndoc.el (nndoc-type-alist): Allow blank lines to separate - headers from bodies. - - * gnus-art.el (gnus-article-edit): Restore Date header. - - * gnus-async.el (gnus-asynch-obarray): New variable. - (gnus-async-prefetched-article-entry): Use it. - (gnus-async-set-buffer): Use it. - - * nnmh.el (nnmh-active-number): Create parent dirs. - - * nntp.el (nntp-last-command): New variable. - (nntp-handle-authinfo): New function. - - * gnus-sum.el (gnus-summary-exit): Call purging function. - -Fri Feb 13 18:59:16 1998 François Pinard - - * nnmail.el (nnmail-get-new-mail): Don't clear split-history. - (nnmail-purge-split-history): New function. - -Fri Feb 13 18:36:16 1998 Lars Magne Ingebrigtsen - - * nntp.el (nntp-telnet-shell-prompt): Renamed. - -Fri Feb 13 18:35:23 1998 Sam Falkner - - * nntp.el (nntp-open-telnet-envuser): New variable. - -Fri Feb 13 18:29:23 1998 Lars Magne Ingebrigtsen - - * message.el (message-send-mail-function): Added smtpmail-send-it. - -1998-02-11 Dave Love - - * gnus-art.el (gnus-button-url): Don't lose in Emacs 20 with - browse-url-browser-function an alist, not a function. - (gnus-button-embedded-url): Likewise. - -Fri Feb 13 17:10:31 1998 Lars Magne Ingebrigtsen - - * gnus-cite.el (gnus-cite-localize): New function. - (gnus-cite-close): Renamed. - (gnus-cite-parse-maybe): Use it. - - * gnus-sum.el (gnus-summary-move-article): Move back to summary - buffer. - - * nnfolder.el (nnfolder-request-accept-article): Save excursion. - (nnfolder-request-move-article): Ditto. - - * nntp.el (nntp-find-connection): Don't message. - -Fri Feb 13 14:51:56 1998 MORIOKA Tomohiko - - * message.el (message-send-mail-with-qmail): Fix. - -1998-02-13 Per Abrahamsen - - * gnus-draft.el (gnus-draft-make-menu-bar): Added missing commands. - -1998-01-06 Per Abrahamsen - - * gnus/gnus-cus.el (gnus-score-parameters): Make `files' and - `exclude-files' widgets inline. - -Fri Feb 13 12:46:23 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-article-mark): Dox dox. - -Wed Feb 11 15:05:03 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.24 is released. - -Tue Feb 10 21:59:53 1998 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-fetch-session): Reversed reversal. - - * gnus-topic.el (gnus-topic-rename): Check whether the new name - exists. - -Tue Feb 10 21:39:47 1998 dave edmondson - - * message.el (message-font-lock-keywords): Allow : as a citation - ending. - -Tue Feb 10 20:09:02 1998 Lars Magne Ingebrigtsen - - * message.el (message-send): Removed dead code. - -Mon Feb 9 17:02:09 1998 Lars Magne Ingebrigtsen - - * message.el (message-fill-header): Fill to column 990. - - * gnus-score.el (gnus-score-load-file): Exclude all excluded - files. - -Mon Feb 9 16:55:41 1998 jari aalto - - * gnus-art.el (gnus-article-time-format): Extended variable. - -Mon Feb 9 16:27:59 1998 Lars Magne Ingebrigtsen - - * gnus-art.el (article-make-date-line): Make 8601 Dates. - (article-date-iso8601): New command and keystroke. - -Sun Feb 8 21:19:15 1998 Lars Magne Ingebrigtsen - - * message.el (message-ignored-mail-headers): Remove Xrefs. - - * nndoc.el (nndoc-open-document-hook): New variable. - -Sun Feb 8 21:01:33 1998 Istvan Marko - - * gnus-agent.el (gnus-unplugged): Typo fix. - -Sun Feb 8 18:34:31 1998 Kurt Swanson - - * gnus-score.el (gnus-score-thread-simplify): New variable. - -Sun Feb 8 18:31:35 1998 Lars Magne Ingebrigtsen - - * gnus-uu.el (gnus-uu-post-encode-mime): Call mmencode with - correct params. - -Sun Feb 8 18:13:58 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.23 is released. - -Sun Feb 8 17:20:40 1998 Lars Magne Ingebrigtsen - - * gnus-group.el (gnus-update-group-mark-positions): Bind `topic'. - - * message.el (message-expand-group): Added doc string. - - * nntp.el (nntp-wait-for): Don't change limit until after - accepting output. - -Sun Feb 8 16:44:36 1998 Richard Hoskins - - * message.el (message-kill-to-signature): Don't kill the - delimiter. - -Sun Feb 8 16:15:33 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-prepared-hook): New hook. - (gnus-summary-read-group-1): Use it. - - * message.el (message-cite-original-without-signature): New - function. - (message-cite-function): Added to custom. - -1998-01-13 Per Abrahamsen - - * gnus/message.el (message-cite-original): Don't quote signature. - -Sun Feb 8 15:50:20 1998 Lars Magne Ingebrigtsen - - * gnus-group.el (gnus-group-unsubscribe-group): Protest against - empty group names. - -Mon Feb 2 18:56:22 1998 Lars Magne Ingebrigtsen - - * gnus-draft.el (gnus-draft-setup): Associate with drafts group. - - * message.el (message-header-format-alist): Fill references. - - * gnus-agent.el (gnus-category-read): Changed default. - (gnus-agent-handle-level): New variable. - (gnus-agent-fetch-session): Use it. - - * gnus-art.el (article-strip-all-blank-lines): New command and - keystroke. - -Sun Feb 1 18:00:54 1998 Lars Magne Ingebrigtsen - - * gnus-msg.el (gnus-inews-reject-message): Removed function. - (gnus-sent-message-ids-file): Removed. - (gnus-sent-message-ids-length): Ditto. - - * gnus-xmas.el (gnus-xmas-summary-set-display-table): Ditto. - - * gnus-sum.el (gnus-simplify-subject-fuzzy): Respect - `gnus-simplify-ignored-prefixes'. - (gnus-summary-set-display-table): Keep TAB. - -Thu Jan 15 22:47:38 1998 - - * gnus-art.el (gnus-request-article-this-buffer): Put it into the - backlog. - -Mon Jan 12 23:30:59 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-get-newsgroup-headers): Use the longest ID. - - * nnheader.el (nnheader-parse-head): Ditto. - -Thu Jan 8 09:47:18 1998 Lars Magne Ingebrigtsen - - * gnus-start.el (gnus-1): Use gnus-alive-p. - -Tue Jan 6 11:53:09 1998 Lars Magne Ingebrigtsen - - * gnus-art.el (gnus-article-prepare): Bind coding systems. - -Tue Jan 6 07:45:39 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.22 is released. - -Tue Jan 6 07:32:02 1998 Lars Magne Ingebrigtsen - - * message.el (message-kill-to-signature): Don't use mark. - -Tue Jan 6 07:30:46 1998 Russ Allbery - - * message.el (message-kill-to-signature): New command and keystroke. - -Tue Jan 6 06:39:29 1998 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-print-article): New defaults for - headers and stuff. - - * gnus-agent.el (gnus-agent-batch): New command. - - * nnoo.el (nnoo-execute): Copy vars from parent into child. - (nnoo-parent-function): Ditto. - - * gnus-draft.el (gnus-draft-setup): Removed message. - - * gnus-start.el (gnus-read-descriptions-file): Naked muleism. - -Mon Jan 5 05:20:16 1998 Lars Magne Ingebrigtsen - - * nnml.el (nnml-generate-nov-databases-1): Fix lower bound on - empty groups. - -Sun Jan 4 14:38:36 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.21 is released. - -Sun Jan 4 14:28:35 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.20 is released. - -1997-12-10 Per Abrahamsen - - * gnus/gnus-msg.el (gnus-inews-insert-mime-headers): Added - documentation. - (gnus-inews-insert-mime-headers): Made it work with Emacs MULE. - (gnus-inews-insert-mime-headers): Added as option to - `message-header-hook'. - -1997-12-22 Per Abrahamsen - - * gnus/gnus-art.el (gnus-button-alist): Assume msg-id after "in - message". - -1997-12-22 Simon Josefsson - - * nnmail.el (nnmail-get-new-mail): Make nnmail-tmp-directory - -1997-12-28 Per Abrahamsen - - * gnus/gnus-group.el (gnus-group-fetch-faq): Convert `.' in group - name to `/'. - -Sun Jan 4 13:35:14 1998 Lars Magne Ingebrigtsen - - * nndraft.el (nndraft-request-associate-buffer): Open the damn - server first. Sheesh. - - * gnus-draft.el (gnus-draft-send): Bind message-send-hook to nil. - - * gnus-sum.el (gnus-summary-catchup): Don't nix out downloadable. - (gnus-summary-highlight): Highlight down/un as unread. - -Sun Jan 4 13:27:31 1998 Kim-Minh Kaplan - - * gnus-start.el (gnus-strip-killed-list): Fix syntax. - -Sun Jan 4 13:18:04 1998 Lars Magne Ingebrigtsen - - * nnsoup.el (nnsoup-store-reply): Bind mail-header-separator to - "". - - * gnus-xmas.el (gnus-xmas-agent-server-menu-add): New. - - * nnoo.el (nnoo-change-server): Get the right values. - -1998-01-04 Aki Vehtari - - * gnus-art.el (gnus-signature-limit): Add default values for - choices suggested by Per Abrahamsen . - (gnus-prompt-before-saving): Add :value t for sexp tag. - (gnus-split-methods): Add default values for choices. - - * gnus-score.el (gnus-home-score-file): Add non-nil default for - function. - (gnus-home-adapt-file): Ditto. - - * gnus-sum.el (gnus-move-split-methods): Add default values for - choices. - - * nnmail.el (nnmail-list-identifiers): Add default values for - choices suggested by Per Abrahamsen . - -Sun Jan 4 11:31:42 1998 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.19 is released. - -Sun Jan 4 10:42:53 1998 Felix Lee - - * nntp.el (nntp-open-rlogin): Use a list of parameters. - -Sun Jan 4 10:25:05 1998 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-fetch-groups): New command. - - * gnus-sum.el (gnus-summary-print-article): Changed order of - parameters. - -Sun Jan 4 10:24:07 1998 Michael R. Cook - - * gnus-sum.el (gnus-summary-print-article): Use process/prefix. - -Sun Jan 4 05:29:38 1998 Lars Magne Ingebrigtsen - - * gnus-uu.el: Changed spurious defconsts to defvars. - - * nnmail.el (nnmail-get-spool-files): Quote group name. - - * gnus-agent.el (gnus-agent-fetch-group-1): Fetch ticked articles. - (gnus-agent-fetch-group-1): Never mind. - -Sat Dec 20 22:33:17 1997 Pete Ware - - * message.el (message-rename-buffer): Check for nil dirs. - -Fri Dec 19 21:45:59 1997 Lars Magne Ingebrigtsen - - * nnml.el (nnml-request-create-group): Check for files. - -Fri Dec 19 21:39:43 1997 Hrvoje Niksic - - * message.el (message-mode): Fixed font-lock. - -Fri Dec 19 21:26:08 1997 Lars Magne Ingebrigtsen - - * gnus-cache.el (gnus-cache-read-active): Check for empty files. - -Sun Dec 14 11:46:50 1997 Lars Magne Ingebrigtsen - - * gnus-uu.el (gnus-uu-save-article): Quote all lines beginning - with a dash. - -1997-12-10 SL Baur - - * gnus-start.el (gnus-read-descriptions-file): Really bind and gag - Mule. - -Fri Dec 5 15:15:05 1997 Danny Siu - - * nndoc.el (nndoc-babyl-body-begin): quote the regexp for the - string "*** EOOH ***" properly. - (nndoc-babyl-head-begin): Same as above. - -Sun Dec 14 11:11:22 1997 Lars Magne Ingebrigtsen - - * gnus-uu.el (gnus-uu-pre-uudecode-hook): New hook. - - * gnus-sum.el (gnus-summary-read-group-1): Set mode line after - configuring. - -Sun Dec 14 11:03:26 1997 Wes Hardaker - - * gnus-score.el (gnus-adaptive-word-minimum): New variable. - (gnus-score-adaptive): Use it. - -Sun Dec 14 09:19:18 1997 Roland B. Roberts - - * gnus-group.el: Fixed hardcoded levels. - -Sat Dec 6 17:40:33 1997 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.18 is released. - -Sat Dec 6 17:27:04 1997 Kim-Minh Kaplan - - * gnus-picon.el (gnus-picons-remove): Race condition. - -Sat Dec 6 17:23:26 1997 Christian von Roques - - * gnus-start.el (gnus-read-descriptions-file): Fix - enable-multibyte-characters. - -1997-12-05 Dave Love - - * gnus-nocem.el (gnus-nocem-message-wanted-p): Fix paren typpo. - (gnus-nocem-issuers): Allow sexp alternative in :type for alists. - -1997-12-05 Dave Love - - * gnus-art.el (gnus-visible-headers): Add X-sent:. - -Sat Dec 6 17:16:28 1997 Lars Balker Rasmussen - - * gnus-art.el (article-make-date-line): Don't add extra newlines. - -1997-11-27 MORIOKA Tomohiko - - * nnmail.el (nnmail-file-coding-system): Use `raw-text' in - default. - - * nnheader.el (nnheader-file-coding-system): Use `raw-text' in - default. - -Sat Dec 6 17:04:40 1997 Kim-Minh Kaplan - - * nnml.el (nnml-parse-head): Out-of-bounds fix. - - * nndraft.el (nndraft-request-associate-buffer): Get proper file - name. - -Sat Dec 6 15:35:37 1997 Gary D. Foster - - * gnus-group.el: Added backspace. - -Thu Nov 27 19:56:59 1997 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-summary-set-agent-mark): Remove marks - properly. - -1997-11-27 Christoph Wedler - - * smiley.el (smiley-buffer): Provide `help-echo'. - -Thu Nov 27 17:33:45 1997 Lars Magne Ingebrigtsen - - * gnus-util.el (gnus-output-to-rmail): Always save buffer. - - * nntp.el (nntp-close-server): Don't sleep for me, Argentina. - (nntp-request-close): You neither. - -1997-11-19 Per Abrahamsen - - * message.el (message-header-lines): New widget. - (message-default-headers): Use it. - (message-default-mail-headers): Use it. - (message-default-news-headers): Use it. - -1997-11-24 Andreas Jaeger - - * gnus-start.el (gnus-read-descriptions-file): Add missing quote. - -Wed Nov 26 18:19:29 1997 Lars Magne Ingebrigtsen - - * nnweb.el (nnweb-type-definition): Rescued dejanewsold. - - * gnus-mh.el (gnus-summary-save-in-folder): Reverted to old - version. - - * gnus-sum.el (gnus-kill-or-deaden-summary): Save excursion. - - * gnus.el: Only require gnus-load in Emacsen 19. - - * gnus-start.el (gnus-setup-news): Always push archive server. - - * gnus-sum.el (gnus-read-header): Would bug out on sparse - articles. - -Wed Nov 26 17:50:41 1997 Kurt Swanson - - * gnus-ems.el (gnus-mule-cite-add-face): Work. - -Wed Nov 26 17:40:57 1997 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.17 is released. - -Wed Nov 26 16:04:25 1997 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-move-article): Don't work on canceled - articles. - - * gnus-start.el (gnus-subscribe-hierarchical-interactive): Use - `read-char-exclusive'. - - * gnus-sum.el (gnus-summary-mode): Localize - gnus-summary-dummy-line-format. - - * nnml.el (nnml-open-nov): Check that the file exists before - inserting it. - - * gnus-art.el (article-date-ut): Insert a newline if needed. - - * gnus-score.el (gnus-score-edit-current-scores): Protect against - nil score files. - - * gnus-start.el (gnus-newsrc-parse-options): Be more correct -- - match only hierarchies. - (gnus-gnus-to-quick-newsrc-format): Changed warning. - -Wed Nov 26 15:47:40 1997 Greg Klanderman - - * messagexmas.el (message-xmas-maybe-fontify): New definition. - -Wed Nov 26 15:43:53 1997 Lars Magne Ingebrigtsen - - * gnus-start.el (gnus-setup-news): Protect against nil - gnus-message-archive-method. - -1997-11-26 Christoph Wedler - - * gnus-art.el (gnus-article-edit-done): Update headers "Lines:", - "Content-Length:" and "X-Content-Length:" when present. - -Wed Nov 26 15:08:17 1997 Lars Magne Ingebrigtsen - - * nnmail.el (nnmail-process-unix-mail-format): Pop to the right - buffer on error. - (nnmail-process-mmdf-mail-format): Ditto. - -Wed Nov 26 13:54:04 1997 Joe Reiss - - * gnus-art.el (gnus-summary-save-in-rmail): Return the name of the - file. - -Wed Nov 26 13:50:01 1997 Alastair Burt - - * smiley.el: Balloon help, etc. - -Wed Nov 26 13:45:35 1997 Lars Magne Ingebrigtsen - - * gnus-util.el (gnus-kill-all-overlays): Remove check for XEmacs. - -1997-09-30 Dave Love - - * message.el: Don't require rmail. - -Wed Nov 26 13:37:50 1997 Kurt Swanson - - * gnus-group.el (gnus-group-setup-buffer): set-buffer. - -Wed Nov 26 13:31:54 1997 Lars Magne Ingebrigtsen - - * gnus-score.el (gnus-score-load-file): Don't create empty score - files when doing decays. - -Wed Nov 26 13:28:04 1997 Renaud Rioboo - - * nnmail.el (nnmail-move-inbox): Only bind default-directory when - calling external function. - -Wed Nov 26 13:03:45 1997 IWAMURO Motonori - - * gnus-kill.el (gnus-batch-score): Newsrc thinko. - -Wed Nov 26 10:31:17 1997 Lars Magne Ingebrigtsen - - * nnheader.el (nnheader-parse-head): Would break on Message-ID's - that spanned several lines. - - * gnus-util.el (gnus-date-iso8601): Didn't pick out the date - header. - - * gnus-demon.el (gnus-demon-scan-mail): Clean inboxes. - -1997-11-25 Christoph Wedler - - * gnus-picon.el (gnus-picons-x-face-sentinel): Would bug out in - headers with two X-Face lines. - -Wed Nov 26 08:54:26 1997 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-update-info): Would use wrong group - name. - -1997-11-26 Hrvoje Niksic - - * gnus-spec.el (gnus-compile): Avoid multiple `c*addr's. - (gnus-compile): Require `bytecomp'. - -1997-11-25 Hrvoje Niksic - - * gnus-util.el (gnus-prin1): Bind `print-readably' to t. - - * gnus-xmas.el (gnus-xmas-kill-all-overlays): New function. - (gnus-xmas-define): Use it. - - * gnus-art.el (gnus-stop-date-timer): Use `nnheader-cancel-timer'. - - * message.el (message-header-lines): Specify format. - - * gnus-xmas.el (gnus-xmas-move-overlay): Use BUFFER. - (gnus-byte-code): Use `indirect-function'. - - * gnus-cite.el (gnus-cite-add-face): Would assign free variable. - -Wed Nov 26 08:31:28 1997 Lars Magne Ingebrigtsen - - * gnus-art.el (gnus-stop-date-timer): Cancel instead of delete. - (gnus-start-date-timer): Use the numerical prefix. - -Tue Nov 25 20:03:34 1997 Lars Magne Ingebrigtsen - - * gnus-draft.el (gnus-group-send-drafts): Activate group first. - -Tue Nov 25 19:57:55 1997 Dan Christensen - - * gnus-group.el (gnus-group-process-prefix): Skip topics. - -Tue Nov 25 19:54:00 1997 Lars Magne Ingebrigtsen - - * gnus-move.el (gnus-move-group-to-server): Protect agains - nil-ness. - -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. - -Mon Nov 24 18:07:21 1997 Lars Magne Ingebrigtsen - - * gnus-ems.el: Also check major version names. - -1997-10-05 SL Baur - - * message.el (require 'rmail): Put guard around. - * nnbabyl.el (require 'rmail): Ditto. - -Mon Nov 24 17:36:00 1997 Lars Magne Ingebrigtsen - - * message.el (message-reply): Respect Mail-Copies-To even when - `to-address'. - -Mon Nov 24 17:32:47 1997 Thor Kristoffersen - - * nntp.el (nntp-request-close): Sleep one second. - -Mon Nov 24 16:18:19 1997 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-read-group-1): Update marks when not - entering group. - - * gnus-start.el (gnus-setup-news): Get correct value of archive - server. - -Wed Oct 8 20:29:35 1997 Robert Bihlmeyer - - * message.el (message-make-organization): Don't let the - environment variable override a user-set organization. - -Mon Nov 24 14:09:00 1997 Lars Magne Ingebrigtsen - - * nnml.el (nnml-open-nov): Don't use find-file. - - * gnus-sum.el (gnus-last-newsgroup-variables-set): New variable. - (gnus-set-global-variables): Don't do to much; gets run off of - pre-command-hook. - Got rid of gnus-set-global-variables throughout. - (gnus-summary-exit): Update adaptive scoring here. - (gnus-summary-isearch-article): Widen. - - * nnml.el (nnml-parse-head): Work in empty buffers. - -1997-10-14 Hrvoje Niksic - - * gnus-xmas.el (gnus-xmas-group-startup-message): Check for image - formats correctly. - (gnus-xmas-modeline-glyph): Ditto. - -Mon Nov 24 13:58:12 1997 Hrvoje Niksic - - * gnus-spec.el (gnus-compile): Work under XEmacs. - -Mon Nov 24 07:15:45 1997 Lars Magne Ingebrigtsen - - * nnoo.el (nnoo-change-server): Push the right parent packend onto - the alist. - -Sun Nov 23 16:21:41 1997 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.14 is released. - -Sun Nov 23 14:04:07 1997 Lars Magne Ingebrigtsen - - * gnus-start.el (gnus-read-descriptions-file): Make sure Mule is - bound. And gagged. - - * message.el (message-send-mail-with-mh): Use - `mh-new-draft-name'. - - * nnfolder.el (nnfolder-read-folder): Save new buffers. - - * gnus-sum.el (gnus-summary-make-menu-bar): Removed "write to - file". - - * gnus-util.el (gnus-byte-code): Use indirect-function. - - * nntp.el (nntp-open-telnet): Also accept 201. - - * gnus-sum.el (gnus-summary-reparent-thread): Update thread. - - * gnus-score.el (gnus-all-score-files): Don't do anything unless - GROUP. - - * nnmail.el (nnmail-split-it): Save-excursion. - (nnmail-group-pathname): Translate file chars. - -Sun Nov 23 13:41:10 1997 Gunnar Horrigmo - - * gnus-sum.el (gnus-summary-exit): Don't skip if group - disappeared. - -Sun Nov 23 13:32:55 1997 Lars Magne Ingebrigtsen - - * nnfolder.el (nnfolder-normalize-buffer): New function. - (nnfolder-save-mail): Use it. - (nnfolder-request-replace-article): Ditto. - -1997-11-19 Per Abrahamsen - - * message.el (message-header-lines): New widget. - (message-default-headers): Use it. - (message-default-mail-headers): Use it. - (message-default-news-headers): Use it. - -Sun Nov 23 12:44:38 1997 Lars Magne Ingebrigtsen - - * gnus-win.el (gnus-remove-some-windows): Also delete dead summary - windows. - - * gnus-score.el (gnus-score-adaptive): Check whether functions are - bound. - -Sun Nov 23 12:15:00 1997 Hallvard B. Furuseth - - * gnus-sum.el (gnus-summary-limit-include-thread): Interactive - fix. - -Sun Nov 23 07:06:58 1997 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-reparent-thread): Insert Message-ID in - proper place. - -Sat Nov 22 18:30:33 1997 Lars Magne Ingebrigtsen - - * gnus-cus.el (gnus-group-parameters): Add visible. - -Sat Nov 22 18:19:39 1997 Kim-Minh Kaplan - - * message.el (message-setup): Add a newline, if necessary. - -Sat Nov 22 18:04:34 1997 Lars Magne Ingebrigtsen - - * gnus-mh.el (gnus-summary-save-in-folder): Fix for default. - -Sat Nov 22 18:01:26 1997 Didier Verna - - * gnus-sum.el (gnus-summary-remove-bookmark): Interactive spec. - -Mon Nov 17 23:50:51 1997 Lars Magne Ingebrigtsen - - * gnus-art.el (article-display-x-face): Fold case. - -Thu Nov 13 22:57:23 1997 Kenichi Handa - - * gnus/gnus-start.el (gnus-read-descriptions-file): Decode - description if necessary. - - * gnus/nntp.el (nntp-coding-system-for-read): Set default value to - binary. - (nntp-coding-system-for-write): Likewise. - -Thu Nov 13 22:30:19 1997 seokchan lee - - * message.el (message-ignored-supersedes-headers): Ignore more - headers. - -Thu Nov 13 22:28:13 1997 Lars Magne Ingebrigtsen - - * message.el (message-separator-face): Lightened up. - (message-header-other-face): Ditto. - -Thu Nov 13 22:22:11 1997 jari aalto - - * nnmail.el (nnmail-process-mmdf-mail-format): Pop to buffer. - -Thu Nov 13 22:09:39 1997 Lars Magne Ingebrigtsen - - * gnus-start.el (gnus-start-draft-setup): Always create group. - - * gnus-agent.el (gnus-agent-fetch-headers): Translate file chars. - -Thu Nov 6 20:43:05 1997 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.13 is released. - -Thu Nov 6 20:30:14 1997 Lars Magne Ingebrigtsen - - * nnlistserv.el: New backend. - -Thu Nov 6 01:53:51 1997 Stefan Waldherr - - * nnweb.el (nnweb-dejanewsold-search): New function. - -Thu Nov 6 01:52:43 1997 Lars Magne Ingebrigtsen - - * gnus-topic.el (gnus-topic-change-level): Really delete multiple - instances. - -Wed Nov 5 14:04:54 1997 Lars Magne Ingebrigtsen - - * gnus-topic.el (gnus-topic-update-topic-line): Possibly fix nil - numbers. - - * gnus-sum.el (gnus-summary-show-article): New command and - keystroke. - -Tue Nov 4 06:29:58 1997 Lars Magne Ingebrigtsen - - * gnus-score.el (gnus-score-adaptive): Use the home score file. - -Sat Oct 25 05:52:22 1997 Lars Magne Ingebrigtsen - - * gnus-art.el (gnus-article-save): Hide headers in the right - buffer. - - * gnus-picon.el (gnus-picons-xbm-face): New face. - -Sat Oct 25 00:39:42 1997 Lars Balker Rasmussen - - * gnus-art.el (gnus-article-fill-paragraph): New command and - keystroke. - -1997-10-16 Colin Rafferty - - * message.el (message-make-fqdn): Made certain that user-mail is - not nil. - -Sat Oct 25 00:18:32 1997 David S. Goldberg - - * gnus-art.el (article-hide-boring-headers): Use many-to. - -Fri Oct 24 23:48:39 1997 Lars Magne Ingebrigtsen - - * gnus-picon.el (gnus-picons-display-pairs): Don't add two bars. - (gnus-picons-try-face): Set the foreground color on the bar. - (gnus-picons-group-exluded-groups): New variable. - (gnus-group-display-picons): Use it. - -Mon Oct 13 00:01:35 1997 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-group-path): Translate file chars. - (gnus-agent-batch-fetch): New command. - (gnus-agent-fetch-group): Message. - -Sun Oct 12 23:54:55 1997 ISO-2022-JP - - * gnus-agent.el (gnus-agent-article-file-coding-system): New - variable. - -Sun Oct 12 16:46:11 1997 Lars Magne Ingebrigtsen - - * dgnushack.el (lpath): Reversed. - - * gnus-msg.el (gnus-summary-cancel-article): Use sym prefix. - - * gnus-art.el (article-translate-characters): New function. - (article-treat-dumbquotes): New command and keystroke. - -Sun Oct 5 20:09:31 1997 Lars Magne Ingebrigtsen - - * gnus-art.el (gnus-button-alist): No ' and " in News:. - - * gnus-msg.el (gnus-inews-insert-archive-gcc): Comp warn. - -Sat Oct 4 00:53:55 1997 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.12 is released. - -Sat Oct 4 00:16:39 1997 Lars Magne Ingebrigtsen - - * gnus.el (gnus-plugged): Moved here. - - * nnmail.el (nnmail-delete-incoming): Changed default to nil. - - * gnus-int.el (gnus-request-scan): Don't do anything if - unplugged. - -Fri Oct 3 21:09:19 1997 Lars Magne Ingebrigtsen - - * gnus-art.el (gnus-ignored-headers): Doc fix. - - * gnus-demon.el (gnus-demon-add-nntp-close-connection): New - function. - (gnus-demon-nntp-close-connection): Ditto. - - * nntp.el (nntp-last-command-time): New variable. - (nntp-retrieve-data): Use it. - - * message.el (message-news-p): Messages with Posted-To aren't - news. - (message-mode): Heed message-yank-prefix when filling. - - * nndraft.el (nndraft-request-restore-buffer): Remove Xrefs and - Lines headers. - - * nntp.el (nntp-encode-text): Encode according to RFC977. - -Wed Oct 1 18:27:26 1997 Lars Magne Ingebrigtsen - - * gnus-msg.el (gnus-inews-insert-archive-gcc): gcc-self didn't - work if `gnus-message-archive-method' was nil. - - * nnmail.el (nnmail-article-group): Allow \\1 substitution. - -Sat Sep 27 12:57:44 1997 Lars Magne Ingebrigtsen - - * gnus-salt.el (gnus-pick-mouse-pick-region): Use it. - - * gnus-xmas.el (gnus-xmas-window-edges): New function. - - * gnus-score.el (gnus-score-edit-current-scores): Don't select - window. - -Sat Sep 27 12:52:31 1997 Hallvard B. Furuseth - - * messcompat.el ((boundp 'mail-mode-hook)): Check. - -Sat Sep 27 09:22:15 1997 Lars Magne Ingebrigtsen - - * nndraft.el (nndraft-possibly-change-group): Always open server. - - * gnus-sum.el (gnus-summary-pop-article): Force. - - * gnus-art.el (gnus-article-prepare): Push the article onto the - history. - - * gnus-sum.el (gnus-summary-pop-article): Pop to the right - article. - - * gnus-demon.el (gnus-demon-scan-news): Save excursion. - -Sat Sep 27 09:06:55 1997 Hallvard B. Furuseth - - * gnus-cache.el (gnus-summary-limit-include-cached): New command - and keystroke. - -Sat Sep 27 06:45:58 1997 Lars Magne Ingebrigtsen - - * gnus-uu.el (gnus-uu-invert-processable): Make interactive. - -Sat Sep 27 06:43:38 1997 Kim-Minh Kaplan - - * gnus-picon.el: Doc fixes. - -1997-09-23 Hrvoje Niksic - - * gnus.el: Removed definition of `custom-face-lookup'. - -Sat Sep 27 05:36:11 1997 Lars Magne Ingebrigtsen - - * nndraft.el: Would block nnmh. - - * gnus-sum.el (gnus-mark-article-as-unread): Don't allow marking - negative articles. - - * gnus-group.el (gnus-fetch-group): Use `gnus-no-server'. - - * gnus-agent.el (gnus-agent-with-fetch): Moved. - - * gnus-sum.el (gnus-nov-read-integer): Really skip to next field. - -Sat Sep 27 04:32:45 1997 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.11 is released. - -Sat Sep 27 03:50:12 1997 Lars Magne Ingebrigtsen - - * message.el (message-send): Post without asking. - (message-mode): Modify paragraphs-start and paragraph-separate. - (message-newline-and-reformat): New command and keystroke. - -Thu Sep 25 00:13:41 1997 Lars Magne Ingebrigtsen - - * nnmail.el (nnmail-activate): Init server buffer. - -Wed Sep 24 04:11:59 1997 Lars Magne Ingebrigtsen - - * gnus-draft.el (gnus-draft-setup): Inexplicable binding problem - worked around. - - * nnsoup.el (nnsoup-always-save): Renamed. - -Wed Sep 24 04:11:02 1997 Nelson Jose dos Santos Ferreira - - * nnsoup.el (nnsoup-commit-reply-now): New variable. - (nnsoup-store-reply): Use it. - -Wed Sep 24 02:30:44 1997 Lars Magne Ingebrigtsen - - * gnus-ems.el (gnus-deactivate-mark): New alias. - -Tue Sep 23 07:56:07 1997 Lars Magne Ingebrigtsen - - * gnus.el: Win-away! - - * gnus-msg.el (gnus-setup-message): Don't trust make-symbol. - -Tue Sep 23 07:45:11 1997 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.10 is released. - -Tue Sep 23 01:41:04 1997 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-read-all-headers): New function. - (gnus-select-newsgroup): Use it. - (gnus-summary-refer-thread): Ditto. - (gnus-refer-thread-limit): New variable. - (gnus-summary-refer-thread): Use it. - - * gnus-nocem.el (gnus-nocem-message-wanted-p): New function. - (gnus-nocem-check-article): Use it. - (gnus-nocem-issuers): Dox ofx. - - * dgnushack.el (dgnushack-compile): Check for cus-edit. - - * message.el (message-included-forward-headers): Include Mime - headers. - (message-send): Allow posting without confirming from Agent. - -Mon Sep 22 05:43:14 1997 Lars Magne Ingebrigtsen - - * dgnushack.el (byte-compile-warnings): Don't warn about obsolete - variables. - - * gnus-sum.el (gnus-summary-refer-thread): New command and - keystroke. - (gnus-summary-limit-include-thread): New command and keystroke. - (gnus-summary-articles-in-thread): New function. - (gnus-articles-in-thread): Renamed. - -Sun Sep 21 23:54:50 1997 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.9 is released. - -Sun Sep 21 23:38:46 1997 Lars Magne Ingebrigtsen - - * gnus.el (gnus-splash-face): ForestGreen everywhere. - - * gnus-sum.el (gnus-simplify-subject-fully): Use new variable. - (gnus-general-simplify-subject): Ditto. - -Sun Sep 21 23:34:13 1997 Kurt Swanson - - * gnus-sum.el (gnus-simplify-subject-functions): New variable. - (gnus-simplify-whitespace): New function. - - * gnus-util.el (gnus-map-function): New function. - -Sun Sep 21 23:22:04 1997 Michelangelo Grigni - - * gnus-score.el (gnus-score-regexp-bad-p): New function. - -Sun Sep 21 00:14:40 1997 Lars Magne Ingebrigtsen - - * gnus-score.el (gnus-summary-lower-score): Use sym pref. - (gnus-summary-increase-score): Use it. - - * gnus.el (gnus-current-prefix-symbol): New variable. - (gnus-current-prefix-symbols): New variable. - - * gnus-score.el (gnus-summary-increase-score): Take symbolic - prefix. - - * gnus.el (gnus-interactive): Removed. - (gnus-interactive): Renamed from gnus-interactive-1. - (gnus-symbolic-argument): New command. - - * gnus-draft.el (gnus-draft-send-message): Disable message - checks. - (gnus-draft-send): Ditto. - (gnus-draft-setup): Don't save buffer. - - * dgnushack.el (dgnushack-compile): Warn people about Custom. - - * gnus-group.el (gnus-group-iterate): Use gensymmed variables. - - * pop3.el (pop3-md5): `with-temp-buffer' doesn't exist in Emacs - 19.34. - - * nneething.el (nneething-directory): Defvarred. - - * message.el: Autoloaded nndraft things. - (message-set-auto-save-file-name): Use it. - - * dgnushack.el (dgnushack-compile): Warn about things. - - * gnus-art.el: Autoload w3-region. - - * gnus-vm.el (gnus-summary-save-in-vm): Simplified. - - * gnus.el: Changed `compiled-function-p' to `byte-code-function-p' - throughout. - - * gnus-sum.el (gnus-summary-edit-article): Supply additional - param. - - * gnus-group.el (gnus-group-iterate): Undo bogus change. - - * gnus-agent.el (gnus-agentize): Just call gnus-open-agent - directly. - - * gnus.el (gnus-interactive): New macro. - (gnus-interactive-1): New function. - - * gnus-sum.el (gnus-fetch-old-headers): Allow `invisible'. - (gnus-cut-thread): Use it. - (gnus-cut-threads): Ditto. - (gnus-summary-initial-limit): Ditto. - (gnus-summary-limit-children): Ditto. - - * gnus-art.el (gnus-article-edit-done): Accept a prefix arg. - (gnus-boring-article-headers): Allow `long-to' param. - (article-hide-boring-headers): Use it. - - * gnus-sum.el (gnus-summary-edit-article-done): Accept a - no-highlight param. - - * nntp.el (nntp-rlogin-program): New variable. - (nntp-open-rlogin): Use it. - - * nnvirtual.el (nnvirtual-request-post): New function. - - * gnus-msg.el (gnus-message-group-art): New variable. - - * gnus-draft.el (gnus-draft-setup): Don't use message-setup. - - * nndraft.el (nndraft): Allow editing articles. - - * gnus-ems.el (gnus-x-splash): Ditto. - - * gnus.el (gnus-splash-face): Darker face. - - * gnus-draft.el (gnus-draft-setup): Clobbered variables. - -Sat Sep 20 23:23:49 1997 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.8 is released. - -Sat Sep 20 20:41:16 1997 Lars Magne Ingebrigtsen - - * gnus-start.el (gnus-setup-news-hook): New hook. - - * gnus-agent.el (gnus-agentize): Really set up queue group. - (gnus-open-agent): Setup queue here. - -Sat Sep 20 20:23:07 1997 Matt Simmons - - * message.el (message-set-auto-save-file-name): Make things work - without drafts. - -Sat Sep 20 18:32:02 1997 Lars Magne Ingebrigtsen - - * nnmh.el (nnmh-request-list-1): Check for links to ".". - - * nndraft.el (nndraft-possibly-change-group): New function. - - * gnus-agent.el (gnus-agent-queue-setup): New function. - -Thu Sep 18 04:54:59 1997 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.7 is released. - -Thu Sep 18 03:33:54 1997 Lars Magne Ingebrigtsen - - * gnus-msg.el (gnus-setup-message): Slap a progn around forms. - - * nndraft.el (nndraft-articles): Make sure directory exists. - - * message.el (message-mode): Don't delete article. - - * nnmh.el (nnmh-request-accept-article): Don't save when - noinsert. - -Wed Sep 17 03:37:59 1997 Lars Magne Ingebrigtsen - - * nndraft.el (nndraft-directory): Changed defaults. - - * gnus-agent.el (gnus-agent-fetch-session): Bind command method. - -Wed Sep 17 03:28:36 1997 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.6 is released. - -1997-08-17 SL Baur - - * dgnushack.el (dgnushack-compile): Ignore .el files beginning - with an `=' character. - -Wed Sep 17 02:30:04 1997 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-build-sparse-threads): Allow display of looped - References. - - * gnus-agent.el (gnus-agent-fetch-group-1): Separated out into - function. - - * message.el (message-delete-not-region): New command and - keystroke. - -Tue Sep 16 00:58:26 1997 Lars Magne Ingebrigtsen - - * nndraft.el (nndraft-directory): Changed value. - - * message.el (message-kill-buffer): Disassociate draft. - (message-mode): Use kill hook to disassociate. - (message-disassociate-draft): Double-check. - - * gnus-agent.el (gnus-agentize): Don't set twice. - - * gnus-art.el (gnus-article-prepare): Go to the right line before - marking. - - * gnus-start.el: Renamed the drafts group. - - * gnus-agent.el (gnus-agent-lib-file): Changed name of directory. - - * gnus-draft.el (gnus-draft-mode): Simplify. - -Tue Sep 16 00:18:11 1997 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.5 is released. - -Mon Sep 15 00:53:50 1997 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-alter-header-function): New variable. - (gnus-nov-parse-line): Use it. - (gnus-get-newsgroup-headers): Ditto. - - * gnus-draft.el (gnus-group-send-drafts): Don't send when - unplugged. - - * gnus-sum.el (gnus-summary-read-group): Don't show-all when - skipping groups. - - * gnus-start.el (gnus-start-draft-setup): Changed name. - -Mon Sep 15 00:40:09 1997 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.4 is released. - -Mon Sep 15 00:19:07 1997 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-summary-goto-article): Accept Message-ID's. - -Sun Sep 14 21:41:35 1997 Lars Magne Ingebrigtsen - - * gnus-sum.el (gnus-group-make-articles-read): No params. - - * nndraft.el (nndraft-status-string): Fix. - - * gnus-draft.el (gnus-group-send-drafts): New command. - - * gnus-sum.el (gnus-compute-read-articles): Separated. - (gnus-update-read-articles): Allow computation. - - * nndraft.el (nndraft-articles): New function. - - * message.el (message-send): Disabled test. - -Sun Sep 14 21:17:34 1997 Lars Magne Ingebrigtsen - - * gnus.el: Quassia Gnus v0.3 is released. - -Sun Sep 14 01:51:45 1997 Lars Magne Ingebrigtsen - - * gnus-agent.el (gnus-agent-short-article): New variables. - - * message.el (message-set-auto-save-file-name): Use drafts. - - * nndraft.el (nndraft-request-expire-articles): Use it. - - * nnmh.el (nnmh-deletable-article-p): Change. - (nnmh-allow-delete-final): New variable. - - * gnus-msg.el (gnus-summary-send-draft): Removed. - - * gnus.el (gnus-article-mark-lists): Save unsendable marks. - - * gnus-sum.el (gnus-newsgroup-unsendable): New variable. - - * gnus-draft.el: New file. - - * gnus-sum.el (gnus-unsendable-mark): New variable. - - * nndraft.el (nndraft-execute-nnmh-command): Cleanup. - - * message.el (message-send-news): Use `gnus-request-post'. + * gnus-art.el (gnus-article-decode-mime-words): New command and + keystroke. - * gnus-agent.el (gnus-agentize): New command. + * qp.el (quoted-printable-decode-region): Don't use hexl. - * gnus-bcklg.el (gnus-backlog-remove-article): Remove the ident - from the list. + * gnus-xmas.el (gnus-xmas-logo-color-style): Changed to dino. -Sun Sep 14 00:26:47 1997 Lars Magne Ingebrigtsen + * gnus-sum.el (gnus-parse-headers-hook): Default to nil. + (gnus-structured-field-decoder): Removed. + (gnus-unstructured-field-decoder): Ditto. - * gnus.el: Quassia Gnus v0.2 is released. + * mm-decode.el: New file. -Sun Sep 14 00:24:52 1997 Lars Magne Ingebrigtsen + * qp.el: New file. - * gnus-score.el (gnus-score-headers): Make sure the summary buffer - exists. + * gnus-art.el (article-mime-decode-quoted-printable): Removed. -Sat Sep 13 23:35:28 1997 Greg Stark + * gnus-ems.el (fboundp): Removed gnus-split-string. - * gnus-ems.el (gnus-x-splash): New function. + * gnus.el (gnus-splash-face): Doc fix. -Sat Sep 13 22:46:16 1997 Lars Magne Ingebrigtsen + * gnus-ems.el (fboundp): Don't bind mail-file-babyl-p. - * gnus-start.el (gnus-1): Use it. + * gnus-art.el (article-mime-decode-quoted-printable): Don't use + hexl. - * gnus-ems.el (gnus-decode-coding-string): New alias. + * nnheader.el (nnheader-temp-write): Removed. - * message.el (message-unix-mail-delimiter): Dox fox. +Sat Aug 29 20:34:17 1998 Lars Magne Ingebrigtsen - * nnmh.el (nnmh-request-list-1): Don't use coding system. + * gnus.el: Gnus v0.3 is released. - * gnus-sum.el (gnus-summary-catchup): Reverse logic. +Sat Aug 29 19:32:06 1998 Lars Magne Ingebrigtsen -Sat Sep 13 21:21:38 1997 Lars Magne Ingebrigtsen + * gnus.el: Gnus v0.2 is released. - * gnus.el: Quassia Gnus v0.1 is released. diff --git a/lisp/drums.el b/lisp/drums.el index 1f45a89..0344956 100644 --- a/lisp/drums.el +++ b/lisp/drums.el @@ -56,6 +56,8 @@ (modify-syntax-entry ?\\ "/" table) (modify-syntax-entry ?< "(" table) (modify-syntax-entry ?> ")" table) + (modify-syntax-entry ?( "(" table) + (modify-syntax-entry ?) ")" table) table)) (defsubst drums-init (string) @@ -110,8 +112,7 @@ (setq result (buffer-substring (1+ (point)) - (progn (forward-sexp 1) (1- (point))))) - (goto-char (point-max))) + (progn (forward-sexp 1) (1- (point)))))) (t (forward-char 1)))) result))) @@ -119,7 +120,7 @@ (defun drums-parse-address (string) "Parse STRING and return a MAILBOX / DISPLAY-NAME pair." (with-temp-buffer - (let (display-name mailbox c) + (let (display-name mailbox c display-string) (drums-init string) (while (not (eobp)) (setq c (following-char)) @@ -133,8 +134,8 @@ (push (buffer-substring (1+ (point)) (progn (forward-sexp 1) (1- (point)))) display-name)) - ((looking-at (concat "[" drums-atext-token "]")) - (push (buffer-substring (point) (progn (forward-word 1) (point))) + ((looking-at (concat "[" drums-atext-token "@" "]")) + (push (buffer-substring (point) (progn (forward-sexp 1) (point))) display-name)) ((eq c ?<) (setq mailbox @@ -146,9 +147,14 @@ (t (error "Unknown symbol: %c" c)))) ;; If we found no display-name, then we look for comments. (if display-name - (setq display-name (mapconcat 'identity (nreverse display-name) " ")) - (setq display-name (drums-get-comment string))) - (when mailbox + (setq display-string + (mapconcat 'identity (reverse display-name) " ")) + (setq display-string (drums-get-comment string))) + (if (not mailbox) + (when (string-match "@" display-string) + (cons + (mapconcat 'identity (nreverse display-name) "") + (drums-get-comment string))) (cons mailbox display-name))))) (defun drums-parse-addresses (string) @@ -179,7 +185,7 @@ (defun drums-parse-date (string) "Return an Emacs time spec from STRING." - (encode-time (parse-time-string string))) + (apply 'encode-time (parse-time-string string))) (provide 'drums) diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index aaa700b..cf6b1bd 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -27,7 +27,8 @@ (require 'gnus-cache) (require 'nnvirtual) (require 'gnus-sum) -(eval-when-compile (require 'cl)) +(eval-when-compile (require 'cl) + (require 'gnus-score)) (defcustom gnus-agent-directory (nnheader-concat gnus-directory "agent/") "Where the Gnus agent will store its files." @@ -77,8 +78,6 @@ If nil, only read articles will be expired." ;;; Internal variables -(defvar gnus-agent-meta-information-header "X-Gnus-Agent-Meta-Information") - (defvar gnus-agent-history-buffers nil) (defvar gnus-agent-buffer-alist nil) (defvar gnus-agent-article-alist nil) @@ -94,6 +93,13 @@ If nil, only read articles will be expired." (defvar gnus-agent-send-mail-function nil) (defvar gnus-agent-article-file-coding-system 'no-conversion) +(defconst gnus-agent-scoreable-headers + (list + "subject" "from" "date" "message-id" + "references" "chars" "lines" "xref") + "Headers that are considered when scoring articles +for download via the Agent.") + ;; Dynamic variables (defvar gnus-headers) (defvar gnus-score) @@ -127,7 +133,7 @@ If nil, only read articles will be expired." (defun gnus-agent-read-file (file) "Load FILE and do a `read' there." - (nnheader-temp-write nil + (with-temp-buffer (ignore-errors (nnheader-insert-file-contents file) (goto-char (point-min)) @@ -427,7 +433,7 @@ be a select method." (defun gnus-agent-write-servers () "Write the alist of covered servers." - (nnheader-temp-write (nnheader-concat gnus-agent-directory "lib/servers") + (with-temp-file (nnheader-concat gnus-agent-directory "lib/servers") (prin1 gnus-agent-covered-methods (current-buffer)))) ;;; @@ -537,7 +543,7 @@ the actual number of articles toggled is returned." (gnus-agent-lib-file "active") (gnus-agent-lib-file "groups")))) (gnus-make-directory (file-name-directory file)) - (nnheader-temp-write file + (with-temp-file file (when (file-exists-p file) (nnheader-insert-file-contents file)) (goto-char (point-min)) @@ -654,7 +660,7 @@ the actual number of articles toggled is returned." (let ((dir (concat (gnus-agent-directory) (gnus-agent-group-path group) "/")) - (date (gnus-time-to-day (current-time))) + (date (time-to-day (current-time))) (case-fold-search t) pos crosses id elem) (gnus-make-directory dir) @@ -662,7 +668,7 @@ the actual number of articles toggled is returned." ;; Fetch the articles from the backend. (if (gnus-check-backend-function 'retrieve-articles group) (setq pos (gnus-retrieve-articles articles group)) - (nnheader-temp-write nil + (with-temp-file nil (let (article) (while (setq article (pop articles)) (when (gnus-request-article article group) @@ -745,41 +751,41 @@ the actual number of articles toggled is returned." nil 'silent) (pop gnus-agent-buffer-alist)) (while gnus-agent-group-alist - (nnheader-temp-write (caar gnus-agent-group-alist) + (with-temp-file (caar gnus-agent-group-alist) (princ (cdar gnus-agent-group-alist)) (insert "\n")) (pop gnus-agent-group-alist)))) (defun gnus-agent-fetch-headers (group &optional force) (let ((articles (if (gnus-agent-load-alist group) - (gnus-sorted-intersection - (gnus-list-of-unread-articles group) - (gnus-uncompress-range - (cons (1+ (caar (last gnus-agent-article-alist))) - (cdr (gnus-active group))))) - (gnus-list-of-unread-articles group)))) + (gnus-sorted-intersection + (gnus-list-of-unread-articles group) + (gnus-uncompress-range + (cons (1+ (caar (last gnus-agent-article-alist))) + (cdr (gnus-active group))))) + (gnus-list-of-unread-articles group)))) ;; Fetch them. (when articles (gnus-message 7 "Fetching headers for %s..." group) (save-excursion - (set-buffer nntp-server-buffer) - (unless (eq 'nov (gnus-retrieve-headers articles group)) - (nnvirtual-convert-headers)) - ;; Save these headers for later processing. - (copy-to-buffer gnus-agent-overview-buffer (point-min) (point-max)) - (let (file) - (when (file-exists-p - (setq file (gnus-agent-article-name ".overview" group))) - (gnus-agent-braid-nov group articles file)) - (gnus-make-directory (nnheader-translate-file-chars - (file-name-directory file))) - (write-region (point-min) (point-max) file nil 'silent) - (gnus-agent-save-alist group articles nil) - (gnus-agent-enter-history - "last-header-fetched-for-session" - (list (cons group (nth (- (length articles) 1) articles))) - (gnus-time-to-day (current-time))) - articles))))) + (set-buffer nntp-server-buffer) + (unless (eq 'nov (gnus-retrieve-headers articles group)) + (nnvirtual-convert-headers)) + ;; Save these headers for later processing. + (copy-to-buffer gnus-agent-overview-buffer (point-min) (point-max)) + (let (file) + (when (file-exists-p + (setq file (gnus-agent-article-name ".overview" group))) + (gnus-agent-braid-nov group articles file)) + (gnus-make-directory (nnheader-translate-file-chars + (file-name-directory file))) + (write-region (point-min) (point-max) file nil 'silent) + (gnus-agent-save-alist group articles nil) + (gnus-agent-enter-history + "last-header-fetched-for-session" + (list (cons group (nth (- (length articles) 1) articles))) + (time-to-day (current-time))) + articles))))) (defsubst gnus-agent-copy-nov-line (article) (let (b e) @@ -840,9 +846,9 @@ the actual number of articles toggled is returned." (defun gnus-agent-save-alist (group &optional articles state dir) "Save the article-state alist for GROUP." - (nnheader-temp-write (if dir - (concat dir ".agentview") - (gnus-agent-article-name ".agentview" group)) + (with-temp-file (if dir + (concat dir ".agentview") + (gnus-agent-article-name ".agentview" group)) (princ (setq gnus-agent-article-alist (nconc gnus-agent-article-alist (mapcar (lambda (article) (cons article state)) @@ -897,27 +903,63 @@ the actual number of articles toggled is returned." ;; Parse them and see which articles we want to fetch. (setq gnus-newsgroup-dependencies (make-vector (length articles) 0)) - (setq gnus-newsgroup-headers - (gnus-get-newsgroup-headers-xover articles nil nil group)) + ;; No need to call `gnus-get-newsgroup-headers-xover' with + ;; the entire .overview for group as we still have the just + ;; downloaded headers in `gnus-agent-overview-buffer'. + (let ((nntp-server-buffer gnus-agent-overview-buffer)) + (setq gnus-newsgroup-headers + (gnus-get-newsgroup-headers-xover articles nil nil group))) (setq category (gnus-group-category group)) (setq predicate (gnus-get-predicate - (or (gnus-group-get-parameter group 'agent-predicate) + (or (gnus-group-get-parameter group 'agent-predicate t) (cadr category)))) - (setq score-param - (or (gnus-group-get-parameter group 'agent-score) - (caddr category))) - (when score-param - (gnus-score-headers (list (list score-param)))) - (setq arts nil) - (while (setq gnus-headers (pop gnus-newsgroup-headers)) - (setq gnus-score - (or (cdr (assq (mail-header-number gnus-headers) - gnus-newsgroup-scored)) - gnus-summary-default-score)) - (when (funcall predicate) - (push (mail-header-number gnus-headers) - arts))) + ;; Do we want to download everything, or nothing? + (if (or (eq (caaddr predicate) 'gnus-agent-true) + (eq (caaddr predicate) 'gnus-agent-false)) + ;; Yes. + (setq arts (symbol-value + (cadr (assoc (caaddr predicate) + '((gnus-agent-true articles) + (gnus-agent-false nil)))))) + ;; No, we need to decide what we want. + (setq score-param + (let ((score-method (or + (gnus-group-get-parameter group 'agent-score t) + (caddr category)))) + (when score-method + (require 'gnus-score) + (if (eq score-method 'file) + (let ((entries + (gnus-score-load-files + (gnus-all-score-files group))) + list score-file) + (while (setq list (car entries)) + (push (car list) score-file) + (setq list (cdr list)) + (while list + (when (member (caar list) + gnus-agent-scoreable-headers) + (push (car list) score-file)) + (setq list (cdr list))) + (setq score-param + (append score-param (list (nreverse score-file))) + score-file nil entries (cdr entries))) + (list score-param)) + (if (stringp (car score-method)) + score-method + (list (list score-method))))))) + (when score-param + (gnus-score-headers score-param)) + (setq arts nil) + (while (setq gnus-headers (pop gnus-newsgroup-headers)) + (setq gnus-score + (or (cdr (assq (mail-header-number gnus-headers) + gnus-newsgroup-scored)) + gnus-summary-default-score)) + (when (funcall predicate) + (push (mail-header-number gnus-headers) + arts)))) ;; Fetch the articles. (when arts (gnus-agent-fetch-articles group arts))) @@ -1087,7 +1129,7 @@ The following commands are available: "Write the category alist." (setq gnus-category-predicate-cache nil gnus-category-group-cache nil) - (nnheader-temp-write (nnheader-concat gnus-agent-directory "lib/categories") + (with-temp-file (nnheader-concat gnus-agent-directory "lib/categories") (prin1 gnus-category-alist (current-buffer)))) (defun gnus-category-edit-predicate (category) @@ -1261,7 +1303,7 @@ The following commands are available: "Expire all old articles." (interactive) (let ((methods gnus-agent-covered-methods) - (day (- (gnus-time-to-day (current-time)) gnus-agent-expire-days)) + (day (- (time-to-day (current-time)) gnus-agent-expire-days)) gnus-command-method sym group articles history overview file histories elem art nov-file low info unreads marked article) diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 4eab8db..d76fe6e 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -33,6 +33,7 @@ (require 'gnus-spec) (require 'gnus-int) (require 'browse-url) +(require 'mm-bodies) (defgroup gnus-article nil "Article display." @@ -272,8 +273,6 @@ be fed to `format-time-string'." :group 'gnus-article-washing) (eval-and-compile - (autoload 'hexl-hex-string-to-integer "hexl") - (autoload 'timezone-make-date-arpa-standard "timezone") (autoload 'mail-extract-address-components "mail-extr")) (defcustom gnus-save-all-headers t @@ -399,7 +398,7 @@ beginning of a line." :type 'regexp :group 'gnus-article-various) -(defcustom gnus-article-mode-line-format "Gnus: %%b %S" +(defcustom gnus-article-mode-line-format "Gnus: %g %S" "*The format specification for the article mode line. See `gnus-summary-mode-line-format' for a closer description." :type 'string @@ -769,7 +768,7 @@ always hide." ((eq elem 'date) (let ((date (message-fetch-field "date"))) (when (and date - (< (gnus-days-between (current-time-string) date) + (< (days-between (current-time-string) date) 4)) (gnus-article-hide-header "date")))) ((eq elem 'long-to) @@ -946,84 +945,72 @@ characters to translate to." (process-send-region "article-x-face" beg end) (process-send-eof "article-x-face")))))))))) -(defun gnus-hack-decode-rfc1522 () - "Emergency hack function for avoiding problems when decoding." - (let ((buffer-read-only nil)) - (goto-char (point-min)) - ;; Remove encoded TABs. - (while (search-forward "=09" nil t) - (replace-match " " t t)) - ;; Remove encoded newlines. - (goto-char (point-min)) - (while (search-forward "=10" nil t) - (replace-match " " t t)))) +(defun gnus-article-decode-mime-words () + "Decode all MIME-encoded words in the article." + (interactive) + (save-excursion + (set-buffer gnus-article-buffer) + (let ((inhibit-point-motion-hooks t) + buffer-read-only) + (rfc2047-decode-region (point-min) (point-max))))) + +(defun gnus-article-decode-charset (&optional prompt) + "Decode charset-encoded text in the article. +If PROMPT (the prefix), prompt for a coding system to use." + (interactive "P") + (save-excursion + (set-buffer gnus-article-buffer) + (save-restriction + (message-narrow-to-head) + (let* ((inhibit-point-motion-hooks t) + (ct (message-fetch-field "Content-Type" t)) + (cte (message-fetch-field "Content-Transfer-Encoding" t)) + (charset (cond + (prompt + (mm-read-coding-system "Charset to decode: ")) + (ct + (mm-content-type-charset ct)) + (gnus-newsgroup-name + (gnus-group-find-parameter + gnus-newsgroup-name 'charset)))) + buffer-read-only) + (goto-char (point-max)) + (widen) + (narrow-to-region (point) (point-max)) + (when (or (not ct) + (string-match "text/plain" ct)) + (mm-decode-body + charset (and cte (intern (downcase + (gnus-strip-whitespace cte)))))))))) (defalias 'gnus-decode-rfc1522 'article-decode-rfc1522) (defalias 'gnus-article-decode-rfc1522 'article-decode-rfc1522) (defun article-decode-rfc1522 () - "Hack to remove QP encoding from headers." - (let ((case-fold-search t) - (inhibit-point-motion-hooks t) - (buffer-read-only nil) - string) + "Remove QP encoding from headers." + (let ((inhibit-point-motion-hooks t) + (buffer-read-only nil)) (save-restriction - (narrow-to-region - (goto-char (point-min)) - (or (search-forward "\n\n" nil t) (point-max))) - (goto-char (point-min)) - (while (re-search-forward - "=\\?iso-8859-1\\?q\\?\\([^?\t\n]*\\)\\?=" nil t) - (setq string (match-string 1)) - (save-restriction - (narrow-to-region (match-beginning 0) (match-end 0)) - (delete-region (point-min) (point-max)) - (insert string) - (article-mime-decode-quoted-printable - (goto-char (point-min)) (point-max)) - (subst-char-in-region (point-min) (point-max) ?_ ? ) - (goto-char (point-max))) - (goto-char (point-min)))))) + (message-narrow-to-head) + (rfc2047-decode-region (point-min) (point-max))))) (defun article-de-quoted-unreadable (&optional force) - "Do a naive translation of a quoted-printable-encoded article. -This is in no way, shape or form meant as a replacement for real MIME -processing, but is simply a stop-gap measure until MIME support is -written. + "Translate a quoted-printable-encoded article. If FORCE, decode the article whether it is marked as quoted-printable or not." (interactive (list 'force)) (save-excursion - (let ((case-fold-search t) - (buffer-read-only nil) + (let ((buffer-read-only nil) (type (gnus-fetch-field "content-transfer-encoding"))) (gnus-article-decode-rfc1522) (when (or force (and type (string-match "quoted-printable" (downcase type)))) (goto-char (point-min)) (search-forward "\n\n" nil 'move) - (article-mime-decode-quoted-printable (point) (point-max)))))) + (quoted-printable-decode-region (point) (point-max)))))) (defun article-mime-decode-quoted-printable-buffer () "Decode Quoted-Printable in the current buffer." - (article-mime-decode-quoted-printable (point-min) (point-max))) - -(defun article-mime-decode-quoted-printable (from to) - "Decode Quoted-Printable in the region between FROM and TO." - (interactive "r") - (goto-char from) - (while (search-forward "=" to t) - (cond ((eq (following-char) ?\n) - (delete-char -1) - (delete-char 1)) - ((looking-at "[0-9A-F][0-9A-F]") - (subst-char-in-region - (1- (point)) (point) ?= - (hexl-hex-string-to-integer - (buffer-substring (point) (+ 2 (point))))) - (delete-char 2)) - ((looking-at "=") - (delete-char 1)) - ((gnus-message 3 "Malformed MIME quoted-printable message"))))) + (quoted-printable-decode-region (point-min) (point-max))) (defun article-hide-pgp (&optional arg) "Toggle hiding of any PGP headers and signatures in the current article. @@ -1231,7 +1218,7 @@ Put point at the beginning of the signature separator." (setq b (point)) (point-max)) (setq e (point-max))) - (nnheader-temp-write nil + (with-temp-buffer (insert-buffer-substring gnus-article-buffer b e) (require 'url) (save-window-excursion @@ -1353,103 +1340,83 @@ how much time has lapsed since DATE." (defun article-make-date-line (date type) "Return a DATE line of TYPE." - (cond - ;; Convert to the local timezone. We have to slap a - ;; `condition-case' round the calls to the timezone - ;; functions since they aren't particularly resistant to - ;; buggy dates. - ((eq type 'local) - (concat "Date: " (condition-case () - (timezone-make-date-arpa-standard date) - (error date)))) - ;; Convert to Universal Time. - ((eq type 'ut) - (concat "Date: " - (condition-case () - (timezone-make-date-arpa-standard date nil "UT") - (error date)))) - ;; Get the original date from the article. - ((eq type 'original) - (concat "Date: " date)) - ;; Let the user define the format. - ((eq type 'user) - (if (gnus-functionp gnus-article-time-format) - (funcall - gnus-article-time-format - (ignore-errors - (gnus-encode-date - (timezone-make-date-arpa-standard - date nil "UT")))) + (let ((time (condition-case () + (date-to-time date) + (error '(0 0))))) + (cond + ;; Convert to the local timezone. We have to slap a + ;; `condition-case' round the calls to the timezone + ;; functions since they aren't particularly resistant to + ;; buggy dates. + ((eq type 'local) + (concat "Date: " (current-time-string time))) + ;; Convert to Universal Time. + ((eq type 'ut) + (concat "Date: " + (current-time-string + (let ((e (parse-time-string date))) + (setcar (last e) 0) + (apply 'encode-time e))))) + ;; Get the original date from the article. + ((eq type 'original) + (concat "Date: " date)) + ;; Let the user define the format. + ((eq type 'user) + (if (gnus-functionp gnus-article-time-format) + (funcall gnus-article-time-format time) + (concat + "Date: " + (format-time-string gnus-article-time-format time)))) + ;; ISO 8601. + ((eq type 'iso8601) (concat "Date: " - (format-time-string gnus-article-time-format - (ignore-errors - (gnus-encode-date - (timezone-make-date-arpa-standard - date nil "UT"))))))) - ;; ISO 8601. - ((eq type 'iso8601) - (concat - "Date: " - (format-time-string "%Y%M%DT%h%m%s" - (ignore-errors - (gnus-encode-date - (timezone-make-date-arpa-standard - date nil "UT")))))) - ;; Do an X-Sent lapsed format. - ((eq type 'lapsed) - ;; If the date is seriously mangled, the timezone functions are - ;; liable to bug out, so we ignore all errors. - (let* ((now (current-time)) - (real-time - (ignore-errors - (gnus-time-minus - (gnus-encode-date - (timezone-make-date-arpa-standard - (current-time-string now) - (current-time-zone now) "UT")) - (gnus-encode-date - (timezone-make-date-arpa-standard - date nil "UT"))))) - (real-sec (and real-time - (+ (* (float (car real-time)) 65536) - (cadr real-time)))) - (sec (and real-time (abs real-sec))) - num prev) - (cond - ((null real-time) - "X-Sent: Unknown") - ((zerop sec) - "X-Sent: Now") - (t - (concat - "X-Sent: " - ;; This is a bit convoluted, but basically we go - ;; through the time units for years, weeks, etc, - ;; and divide things to see whether that results - ;; in positive answers. - (mapconcat - (lambda (unit) - (if (zerop (setq num (ffloor (/ sec (cdr unit))))) - ;; The (remaining) seconds are too few to - ;; be divided into this time unit. - "" - ;; It's big enough, so we output it. - (setq sec (- sec (* num (cdr unit)))) - (prog1 - (concat (if prev ", " "") (int-to-string - (floor num)) - " " (symbol-name (car unit)) - (if (> num 1) "s" "")) - (setq prev t)))) - article-time-units "") - ;; If dates are odd, then it might appear like the - ;; article was sent in the future. - (if (> real-sec 0) - " ago" - " in the future")))))) - (t - (error "Unknown conversion type: %s" type)))) + (format-time-string "%Y%M%DT%h%m%s" time))) + ;; Do an X-Sent lapsed format. + ((eq type 'lapsed) + ;; If the date is seriously mangled, the timezone functions are + ;; liable to bug out, so we ignore all errors. + (let* ((now (current-time)) + (real-time (subtract-time now time)) + (real-sec (and real-time + (+ (* (float (car real-time)) 65536) + (cadr real-time)))) + (sec (and real-time (abs real-sec))) + num prev) + (cond + ((null real-time) + "X-Sent: Unknown") + ((zerop sec) + "X-Sent: Now") + (t + (concat + "X-Sent: " + ;; This is a bit convoluted, but basically we go + ;; through the time units for years, weeks, etc, + ;; and divide things to see whether that results + ;; in positive answers. + (mapconcat + (lambda (unit) + (if (zerop (setq num (ffloor (/ sec (cdr unit))))) + ;; The (remaining) seconds are too few to + ;; be divided into this time unit. + "" + ;; It's big enough, so we output it. + (setq sec (- sec (* num (cdr unit)))) + (prog1 + (concat (if prev ", " "") (int-to-string + (floor num)) + " " (symbol-name (car unit)) + (if (> num 1) "s" "")) + (setq prev t)))) + article-time-units "") + ;; If dates are odd, then it might appear like the + ;; article was sent in the future. + (if (> real-sec 0) + " ago" + " in the future")))))) + (t + (error "Unknown conversion type: %s" type))))) (defun article-date-local (&optional highlight) "Convert the current article date to the local timezone." @@ -1680,7 +1647,7 @@ Directory to save to is default to `gnus-article-save-directory'." (save-excursion (save-restriction (widen) - (gnus-output-to-rmail filename)))) + (rmail-output-to-rmail-file filename)))) filename) (defun gnus-summary-save-in-mail (&optional filename) @@ -1697,7 +1664,7 @@ Directory to save to is default to `gnus-article-save-directory'." (widen) (if (and (file-readable-p filename) (mail-file-babyl-p filename)) - (gnus-output-to-rmail filename t) + (rmail-output-to-rmail-file filename t) (gnus-output-to-mail filename))))) filename) @@ -1978,6 +1945,7 @@ commands: (buffer-disable-undo (current-buffer)) (setq buffer-read-only t) (set-syntax-table gnus-article-mode-syntax-table) + (mm-enable-multibyte) (gnus-run-hooks 'gnus-article-mode-hook)) (defun gnus-article-setup-buffer () @@ -2000,7 +1968,7 @@ commands: ;; Init original article buffer. (save-excursion (set-buffer (gnus-get-buffer-create gnus-original-article-buffer)) - (buffer-disable-undo (current-buffer)) + (mm-enable-multibyte) (setq major-mode 'gnus-original-article-mode) (make-local-variable 'gnus-original-article)) (if (get-buffer name) @@ -2189,7 +2157,7 @@ Provided for backwards compatibility." (defun gnus-output-to-file (file-name) "Append the current article to a file named FILE-NAME." (let ((artbuf (current-buffer))) - (nnheader-temp-write nil + (with-temp-buffer (insert-buffer-substring artbuf) ;; Append newline at end of the buffer as separator, and then ;; save it to file. @@ -3135,7 +3103,7 @@ specified by `gnus-button-alist'." (defun gnus-url-parse-query-string (query &optional downcase) (let (retval pairs cur key val) - (setq pairs (gnus-split-string query "&")) + (setq pairs (split-string query "&")) (while pairs (setq cur (car pairs) pairs (cdr pairs)) diff --git a/lisp/gnus-cache.el b/lisp/gnus-cache.el index 7f03b70..bce2f54 100644 --- a/lisp/gnus-cache.el +++ b/lisp/gnus-cache.el @@ -595,7 +595,7 @@ $ emacs -batch -l ~/.emacs -l gnus -f gnus-jog-cache" (when (or force (and gnus-cache-active-hashtb gnus-cache-active-altered)) - (nnheader-temp-write gnus-cache-active-file + (with-temp-file gnus-cache-active-file (mapatoms (lambda (sym) (when (and sym (boundp sym)) diff --git a/lisp/gnus-demon.el b/lisp/gnus-demon.el index 0015a90..d239dda 100644 --- a/lisp/gnus-demon.el +++ b/lisp/gnus-demon.el @@ -82,10 +82,6 @@ time Emacs has been idle for IDLE `gnus-demon-timestep's." (defvar gnus-inhibit-demon nil "*If non-nil, no daemonic function will be run.") -(eval-and-compile - (autoload 'timezone-parse-date "timezone") - (autoload 'timezone-make-arpa-date "timezone")) - ;;; Functions. (defun gnus-demon-add-handler (function time idle) @@ -155,9 +151,9 @@ time Emacs has been idle for IDLE `gnus-demon-timestep's." time (let* ((now (current-time)) ;; obtain NOW as discrete components -- make a vector for speed - (nowParts (apply 'vector (decode-time now))) + (nowParts (decode-time now)) ;; obtain THEN as discrete components - (thenParts (timezone-parse-time time)) + (thenParts (parse-time-string time)) (thenHour (string-to-int (elt thenParts 0))) (thenMin (string-to-int (elt thenParts 1))) ;; convert time as elements into number of seconds since EPOCH. @@ -268,8 +264,7 @@ minutes, the connection is closed." (defun gnus-demon-nntp-close-connection () (save-window-excursion - (when (nnmail-time-less '(0 300) - (nnmail-time-since nntp-last-command-time)) + (when (time-less-p '(0 300) (time-since nntp-last-command-time)) (nntp-close-server)))) (defun gnus-demon-add-scanmail () diff --git a/lisp/gnus-draft.el b/lisp/gnus-draft.el index bf9ecbe..3b85b57 100644 --- a/lisp/gnus-draft.el +++ b/lisp/gnus-draft.el @@ -131,13 +131,16 @@ (message-remove-header gnus-agent-meta-information-header))) ;; Then we send it. If we have no meta-information, we just send ;; it and let Message figure out how. - (if type - (let ((message-this-is-news (eq type 'news)) - (message-this-is-mail (eq type 'mail)) - (gnus-post-method method) - (message-post-method method)) - (message-send-and-exit)) - (message-send-and-exit)))) + (when (if type + (let ((message-this-is-news (eq type 'news)) + (message-this-is-mail (eq type 'mail)) + (gnus-post-method method) + (message-post-method method)) + (message-send-and-exit)) + (message-send-and-exit)) + (let ((gnus-verbose-backends nil)) + (gnus-request-expire-articles + (list article) (or group "nndraft:queue") t))))) (defun gnus-draft-send-all-messages () "Send all the sendable drafts." diff --git a/lisp/gnus-dup.el b/lisp/gnus-dup.el index 6958f02..b289639 100644 --- a/lisp/gnus-dup.el +++ b/lisp/gnus-dup.el @@ -98,7 +98,7 @@ seen in the same session." "Save the duplicate suppression list." (when (and gnus-save-duplicate-list gnus-dup-list-dirty) - (nnheader-temp-write gnus-duplicate-file + (with-temp-file gnus-duplicate-file (gnus-prin1 `(setq gnus-dup-list ',gnus-dup-list)))) (setq gnus-dup-list-dirty nil)) diff --git a/lisp/gnus-ems.el b/lisp/gnus-ems.el index 0e95762..f0e4362 100644 --- a/lisp/gnus-ems.el +++ b/lisp/gnus-ems.el @@ -45,9 +45,6 @@ (autoload 'gnus-xmas-redefine "gnus-xmas") (autoload 'appt-select-lowest-window "appt")) -(or (fboundp 'mail-file-babyl-p) - (fset 'mail-file-babyl-p 'rmail-file-p)) - ;;; Mule functions. (defun gnus-mule-cite-add-face (number prefix face) @@ -78,12 +75,6 @@ (truncate-string valstr (, max-width)) valstr)))) -(defun gnus-encode-coding-string (string system) - string) - -(defun gnus-decode-coding-string (string system) - string) - (eval-and-compile (if (string-match "XEmacs\\|Lucid" emacs-version) nil @@ -95,20 +86,6 @@ ((string-match "XEmacs\\|Lucid" emacs-version) (gnus-xmas-define)) - ((or (not (boundp 'emacs-minor-version)) - (and (< emacs-major-version 20) - (< emacs-minor-version 30))) - ;; Remove the `intangible' prop. - (let ((props (and (boundp 'gnus-hidden-properties) - gnus-hidden-properties))) - (while (and props (not (eq (car (cdr props)) 'intangible))) - (setq props (cdr props))) - (when props - (setcdr props (cdr (cdr (cdr props)))))) - (unless (fboundp 'buffer-substring-no-properties) - (defun buffer-substring-no-properties (beg end) - (format "%s" (buffer-substring beg end))))) - ((boundp 'MULE) (provide 'gnusutil)))) @@ -173,15 +150,11 @@ ;; `emacs-version'. In this case, implementation for XEmacs/mule ;; may be able to share between XEmacs and XEmacs/mule. - (defalias 'gnus-truncate-string 'truncate-string) - (defvar gnus-summary-display-table nil "Display table used in summary mode buffers.") (fset 'gnus-cite-add-face 'gnus-mule-cite-add-face) (fset 'gnus-max-width-function 'gnus-mule-max-width-function) (fset 'gnus-summary-set-display-table (lambda ())) - (fset 'gnus-encode-coding-string 'encode-coding-string) - (fset 'gnus-decode-coding-string 'decode-coding-string) (when (boundp 'gnus-check-before-posting) (setq gnus-check-before-posting @@ -234,7 +207,7 @@ (erase-buffer) (when (and dir (file-exists-p (setq file (concat dir "x-splash")))) - (nnheader-temp-write nil + (with-temp-buffer (insert-file-contents file) (goto-char (point-min)) (ignore-errors @@ -245,7 +218,7 @@ (make-face 'gnus-splash)) (setq height (/ (car pixmap) (frame-char-height)) width (/ (cadr pixmap) (frame-char-width))) - (set-face-foreground 'gnus-splash "ForestGreen") + (set-face-foreground 'gnus-splash "Brown") (set-face-stipple 'gnus-splash pixmap) (insert-char ?\n (* (/ (window-height) 2 height) height)) (setq i height) @@ -259,16 +232,6 @@ (goto-char (point-min)) (sit-for 0)))))) -(if (fboundp 'split-string) - (fset 'gnus-split-string 'split-string) - (defun gnus-split-string (string pattern) - "Return a list of substrings of STRING which are separated by PATTERN." - (let (parts (start 0)) - (while (string-match pattern string start) - (setq parts (cons (substring string start (match-beginning 0)) parts) - start (match-end 0))) - (nreverse (cons (substring string start) parts))))) - (provide 'gnus-ems) ;; Local Variables: diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index 612be02..51ca68c 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -35,6 +35,7 @@ (require 'gnus-range) (require 'gnus-win) (require 'gnus-undo) +(require 'time-date) (defcustom gnus-group-archive-directory "*ftp@ftp.hpc.uh.edu:/pub/emacs/ding-list/" @@ -2155,7 +2156,7 @@ score file entries for articles to include in the group." (push (cons header regexps) scores)) scores))) (gnus-group-make-group group "nnkiboze" address) - (nnheader-temp-write (gnus-score-file-name (concat "nnkiboze:" group)) + (with-temp-file (gnus-score-file-name (concat "nnkiboze:" group)) (let (emacs-lisp-mode-hook) (pp scores (current-buffer))))) @@ -2300,46 +2301,52 @@ If REVERSE, sort in reverse order." ;; Go through all the infos and replace the old entries ;; with the new infos. (while infos - (setcar entries (pop infos)) + (setcar (car entries) (pop infos)) (pop entries)) ;; Update the hashtable. (gnus-make-hashtable-from-newsrc-alist))) -(defun gnus-group-sort-selected-groups-by-alphabet (&optional reverse) +(defun gnus-group-sort-selected-groups-by-alphabet (&optional n reverse) "Sort the group buffer alphabetically by group name. -If REVERSE, sort in reverse order." - (interactive "P") - (gnus-group-sort-selected-groups 'gnus-group-sort-by-alphabet reverse)) +Obeys the process/prefix convention. If REVERSE (the symbolic prefix), +sort in reverse order." + (interactive (gnus-interactive "P\ny")) + (gnus-group-sort-selected-groups n 'gnus-group-sort-by-alphabet reverse)) -(defun gnus-group-sort-selected-groups-by-unread (&optional reverse) +(defun gnus-group-sort-selected-groups-by-unread (&optional n reverse) "Sort the group buffer by number of unread articles. -If REVERSE, sort in reverse order." - (interactive "P") - (gnus-group-sort-selected-groups 'gnus-group-sort-by-unread reverse)) +Obeys the process/prefix convention. If REVERSE (the symbolic prefix), +sort in reverse order." + (interactive (gnus-interactive "P\ny")) + (gnus-group-sort-selected-groups n 'gnus-group-sort-by-unread reverse)) -(defun gnus-group-sort-selected-groups-by-level (&optional reverse) +(defun gnus-group-sort-selected-groups-by-level (&optional n reverse) "Sort the group buffer by group level. -If REVERSE, sort in reverse order." - (interactive "P") - (gnus-group-sort-selected-groups 'gnus-group-sort-by-level reverse)) +Obeys the process/prefix convention. If REVERSE (the symbolic prefix), +sort in reverse order." + (interactive (gnus-interactive "P\ny")) + (gnus-group-sort-selected-groups n 'gnus-group-sort-by-level reverse)) -(defun gnus-group-sort-selected-groups-by-score (&optional reverse) +(defun gnus-group-sort-selected-groups-by-score (&optional n reverse) "Sort the group buffer by group score. -If REVERSE, sort in reverse order." - (interactive "P") - (gnus-group-sort-selected-groups 'gnus-group-sort-by-score reverse)) +Obeys the process/prefix convention. If REVERSE (the symbolic prefix), +sort in reverse order." + (interactive (gnus-interactive "P\ny")) + (gnus-group-sort-selected-groups n 'gnus-group-sort-by-score reverse)) -(defun gnus-group-sort-selected-groups-by-rank (&optional reverse) +(defun gnus-group-sort-selected-groups-by-rank (&optional n reverse) "Sort the group buffer by group rank. -If REVERSE, sort in reverse order." - (interactive "P") - (gnus-group-sort-selected-groups 'gnus-group-sort-by-rank reverse)) +Obeys the process/prefix convention. If REVERSE (the symbolic prefix), +sort in reverse order." + (interactive (gnus-interactive "P\ny")) + (gnus-group-sort-selected-groups n 'gnus-group-sort-by-rank reverse)) -(defun gnus-group-sort-selected-groups-by-method (&optional reverse) +(defun gnus-group-sort-selected-groups-by-method (&optional n reverse) "Sort the group buffer alphabetically by backend name. -If REVERSE, sort in reverse order." - (interactive "P") - (gnus-group-sort-selected-groups 'gnus-group-sort-by-method reverse)) +Obeys the process/prefix convention. If REVERSE (the symbolic prefix), +sort in reverse order." + (interactive (gnus-interactive "P\ny")) + (gnus-group-sort-selected-groups n 'gnus-group-sort-by-method reverse)) ;;; Sorting predicates. @@ -2940,8 +2947,9 @@ If N is negative, this group and the N-1 previous groups will be checked." (gnus-get-info group) (gnus-active group) t) (unless (gnus-virtual-group-p group) (gnus-close-group group)) - (gnus-agent-save-group-info - method (gnus-group-real-name group) (gnus-active group)) + (when gnus-agent + (gnus-agent-save-group-info + method (gnus-group-real-name group) (gnus-active group))) (gnus-group-update-group group)) (if (eq (gnus-server-status (gnus-find-method-for-group group)) 'denied) @@ -3373,7 +3381,7 @@ or `gnus-group-catchup-group-hook'." "Return the offset in seconds from the timestamp for GROUP to the current time, as a floating point number." (let* ((time (or (gnus-group-timestamp group) (list 0 0))) - (delta (gnus-time-minus (current-time) time))) + (delta (subtract-time (current-time) time))) (+ (* (nth 0 delta) 65536.0) (nth 1 delta)))) diff --git a/lisp/gnus-kill.el b/lisp/gnus-kill.el index abcc401..02ee66e 100644 --- a/lisp/gnus-kill.el +++ b/lisp/gnus-kill.el @@ -524,7 +524,7 @@ COMMAND must be a lisp expression or a string representing a key sequence." ;; It's on the form (regexp . date). (if (zerop (gnus-execute field (car kill-list) command nil (not all))) - (when (> (gnus-days-between date (cdr kill-list)) + (when (> (days-between date (cdr kill-list)) gnus-kill-expiry-days) (setq regexp nil)) (setcdr kill-list date)) @@ -535,7 +535,7 @@ COMMAND must be a lisp expression or a string representing a key sequence." (setq kdate (cdr kill)) (if (zerop (gnus-execute field (car kill) command nil (not all))) - (when (> (gnus-days-between date kdate) + (when (> (days-between date kdate) gnus-kill-expiry-days) ;; Time limit has been exceeded, so we ;; remove the match. diff --git a/lisp/gnus-logic.el b/lisp/gnus-logic.el index f2913f1..2c5517a 100644 --- a/lisp/gnus-logic.el +++ b/lisp/gnus-logic.el @@ -164,16 +164,16 @@ (funcall type match (or (aref gnus-advanced-headers index) 0)))) (defun gnus-advanced-date (index match type) - (let ((date (encode-time (parse-time-string - (aref gnus-advanced-headers index)))) - (match (encode-time (parse-time-string match)))) + (let ((date (apply 'encode-time (parse-time-string + (aref gnus-advanced-headers index)))) + (match (apply 'encode-time (parse-time-string match)))) (cond ((eq type 'at) (equal date match)) ((eq type 'before) - (gnus-time-less match date)) + (time-less-p match date)) ((eq type 'after) - (gnus-time-less date match)) + (time-less-p date match)) (t (error "No such date score type: %s" type))))) diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index b0e73aa..1330288 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -228,11 +228,20 @@ Thank you for your help in stamping out bugs. ;;; Post news commands of Gnus group mode and summary mode -(defun gnus-group-mail () - "Start composing a mail." - (interactive) - (gnus-setup-message 'message - (message-mail))) +(defun gnus-group-mail (&optional arg) + "Start composing a mail. +If ARG, use the group under the point to find a posting style. +If ARG is 1, prompt for a group name to find the posting style." + (interactive "P") + (let ((gnus-newsgroup-name + (if arg + (if (= 1 (prefix-numeric-value arg)) + (completing-read "Use style of group: " gnus-active-hashtb nil + (gnus-read-active-file-p)) + (gnus-group-group-name)) + ""))) + (gnus-setup-message 'message (message-mail)) + )) (defun gnus-group-post-news (&optional arg) "Start composing a news message. @@ -354,6 +363,9 @@ header line with the old Message-ID." ;; this buffer should be passed to all mail/news reply/post routines. (setq gnus-article-copy (gnus-get-buffer-create " *gnus article copy*")) (buffer-disable-undo gnus-article-copy) + (save-excursion + (set-buffer gnus-article-copy) + (mm-enable-multibyte)) (let ((article-buffer (or article-buffer gnus-article-buffer)) end beg) (if (not (and (get-buffer article-buffer) @@ -483,14 +495,16 @@ If SILENT, don't prompt the user." (list gnus-post-method))) gnus-secondary-select-methods (mapcar 'cdr gnus-server-alist) + (mapcar 'car gnus-opened-servers) (list gnus-select-method) (list group-method))) method-alist post-methods method) ;; Weed out all mail methods. (while methods (setq method (gnus-server-get-method "" (pop methods))) - (when (or (gnus-method-option-p method 'post) - (gnus-method-option-p method 'post-mail)) + (when (and (or (gnus-method-option-p method 'post) + (gnus-method-option-p method 'post-mail)) + (not (member method post-methods))) (push method post-methods))) ;; Create a name-method alist. (setq method-alist @@ -556,36 +570,6 @@ If SILENT, don't prompt the user." (concat " - \"" xemacs-codename "\"")))) (t emacs-version)))) -;; Written by "Mr. Per Persson" . -(defun gnus-inews-insert-mime-headers () - "Insert MIME headers. -Assumes ISO-Latin-1 is used iff 8-bit characters are present." - (goto-char (point-min)) - (let ((mail-header-separator - (progn - (goto-char (point-min)) - (if (and (search-forward (concat "\n" mail-header-separator "\n") - nil t) - (not (search-backward "\n\n" nil t))) - mail-header-separator - "")))) - (or (mail-position-on-field "Mime-Version") - (insert "1.0") - (cond ((save-restriction - (widen) - (goto-char (point-min)) - (re-search-forward "[^\000-\177]" nil t)) - (or (mail-position-on-field "Content-Type") - (insert "text/plain; charset=ISO-8859-1")) - (or (mail-position-on-field "Content-Transfer-Encoding") - (insert "8bit"))) - (t (or (mail-position-on-field "Content-Type") - (insert "text/plain; charset=US-ASCII")) - (or (mail-position-on-field "Content-Transfer-Encoding") - (insert "7bit"))))))) - -(custom-add-option 'message-header-hook 'gnus-inews-insert-mime-headers) - ;;; ;;; Gnus Mail Functions diff --git a/lisp/gnus-nocem.el b/lisp/gnus-nocem.el index d678531..7535a25 100644 --- a/lisp/gnus-nocem.el +++ b/lisp/gnus-nocem.el @@ -146,7 +146,7 @@ matches an previously scanned and verified nocem message." (save-excursion (let ((dependencies (make-vector 10 nil)) headers header) - (nnheader-temp-write nil + (with-temp-buffer (setq headers (if (eq 'nov (gnus-retrieve-headers @@ -190,9 +190,9 @@ matches an previously scanned and verified nocem message." (let ((date (mail-header-date header)) issuer b e type) (when (or (not date) - (nnmail-time-less - (nnmail-time-since (nnmail-date-to-time date)) - (nnmail-days-to-time gnus-nocem-expiry-wait))) + (time-less-p + (time-since (date-to-time date)) + (days-to-time gnus-nocem-expiry-wait))) (gnus-request-article-this-buffer (mail-header-number header) group) (goto-char (point-min)) (when (re-search-forward "-----BEGIN PGP MESSAGE-----" nil t) @@ -302,13 +302,13 @@ matches an previously scanned and verified nocem message." "Save the NoCeM cache." (when (and gnus-nocem-alist gnus-nocem-touched-alist) - (nnheader-temp-write (gnus-nocem-cache-file) + (with-temp-file (gnus-nocem-cache-file) (gnus-prin1 `(setq gnus-nocem-alist ',gnus-nocem-alist))) (setq gnus-nocem-touched-alist nil))) (defun gnus-nocem-save-active () "Save the NoCeM active file." - (nnheader-temp-write (gnus-nocem-active-file) + (with-temp-file (gnus-nocem-active-file) (gnus-prin1 `(setq gnus-nocem-active ',gnus-nocem-active)))) (defun gnus-nocem-alist-to-hashtb () @@ -316,11 +316,11 @@ matches an previously scanned and verified nocem message." (let* ((alist gnus-nocem-alist) (pprev (cons nil alist)) (prev pprev) - (expiry (nnmail-days-to-time gnus-nocem-expiry-wait)) + (expiry (days-to-time gnus-nocem-expiry-wait)) entry) (setq gnus-nocem-hashtb (gnus-make-hashtable (* (length alist) 51))) (while (setq entry (car alist)) - (if (not (nnmail-time-less (nnmail-time-since (car entry)) expiry)) + (if (not (time-less-p (time-since (car entry)) expiry)) ;; This entry has expired, so we remove it. (setcdr prev (cdr alist)) (setq prev alist) diff --git a/lisp/gnus-score.el b/lisp/gnus-score.el index c429950..d3813f5 100644 --- a/lisp/gnus-score.el +++ b/lisp/gnus-score.el @@ -743,6 +743,7 @@ used as score." (defun gnus-summary-score-entry (header match type score date &optional prompt silent) + (interactive) "Enter score file entry. HEADER is the header being scored. MATCH is the string we are looking for. @@ -794,9 +795,9 @@ If optional argument `SILENT' is nil, show effect of score entry." (type (list match score (and date (if (numberp date) date - (gnus-day-number date))) + (date-to-day date))) type)) - (date (list match score (gnus-day-number date))) + (date (list match score (date-to-day date))) (score (list match score)) (t (list match)))) ;; We see whether we can collapse some score entries. @@ -1121,7 +1122,7 @@ SCORE is the score to add." (or (not decay) (gnus-decay-scores alist decay))) (gnus-score-set 'touched '(t) alist) - (gnus-score-set 'decay (list (gnus-time-to-day (current-time))) alist)) + (gnus-score-set 'decay (list (time-to-day (current-time))) alist)) ;; We do not respect eval and files atoms from global score ;; files. (when (and files (not global)) @@ -1202,9 +1203,9 @@ SCORE is the score to add." ;; Couldn't read file. (setq gnus-score-alist nil) ;; Read file. - (save-excursion - (gnus-set-work-buffer) - (insert-file-contents file) + (with-temp-buffer + (let ((coding-system-for-write score-mode-coding-system)) + (insert-file-contents file)) (goto-char (point-min)) ;; Only do the loading if the score file isn't empty. (when (save-excursion (re-search-forward "[()0-9a-zA-Z]" nil t)) @@ -1290,7 +1291,7 @@ SCORE is the score to add." (setcar scor (list (caar scor) (nth 2 (car scor)) (and (nth 3 (car scor)) - (gnus-day-number (nth 3 (car scor)))) + (date-to-day (nth 3 (car scor)))) (if (nth 1 (car scor)) 'r 's))) (setq scor (cdr scor)))) (push (if (not (listp (cdr entry))) @@ -1337,7 +1338,8 @@ SCORE is the score to add." (delete-file file) ;; There are scores, so we write the file. (when (file-writable-p file) - (gnus-write-buffer file) + (let ((coding-system-for-write score-mode-coding-system)) + (gnus-write-buffer file)) (when gnus-score-after-write-file-function (funcall gnus-score-after-write-file-function file))))) (and gnus-score-uncacheable-files @@ -1385,7 +1387,7 @@ SCORE is the score to add." (when (and gnus-summary-default-score scores) (let* ((entries gnus-header-index) - (now (gnus-day-number (current-time-string))) + (now (date-to-day (current-time-string))) (expire (and gnus-score-expiry-days (- now gnus-score-expiry-days))) (headers gnus-newsgroup-headers) @@ -2209,9 +2211,9 @@ SCORE is the score to add." ;; Perform adaptive word scoring. (when (and (listp gnus-newsgroup-adaptive) (memq 'word gnus-newsgroup-adaptive)) - (nnheader-temp-write nil + (with-temp-buffer (let* ((hashtb (gnus-make-hashtable 1000)) - (date (gnus-day-number (current-time-string))) + (date (date-to-day (current-time-string))) (data gnus-newsgroup-data) (syntab (syntax-table)) word d score val) @@ -2625,7 +2627,7 @@ Destroys the current buffer." (defun gnus-sort-score-files (files) "Sort FILES so that the most general files come first." - (nnheader-temp-write nil + (with-temp-buffer (let ((alist (mapcar (lambda (file) @@ -2837,7 +2839,7 @@ If ADAPT, return the home adaptive file instead." (defun gnus-decay-scores (alist day) "Decay non-permanent scores in ALIST." - (let ((times (- (gnus-time-to-day (current-time)) day)) + (let ((times (- (time-to-day (current-time)) day)) kill entry updated score n) (unless (zerop times) ;Done decays today already? (while (setq entry (pop alist)) diff --git a/lisp/gnus-soup.el b/lisp/gnus-soup.el index 08f8176..71345c9 100644 --- a/lisp/gnus-soup.el +++ b/lisp/gnus-soup.el @@ -422,7 +422,7 @@ file. The vector contain three strings, [prefix name encoding]." "Write the AREAS file." (interactive) (when gnus-soup-areas - (nnheader-temp-write (concat gnus-soup-directory "AREAS") + (with-temp-file (concat gnus-soup-directory "AREAS") (let ((areas gnus-soup-areas) area) (while (setq area (pop areas)) @@ -443,7 +443,7 @@ file. The vector contain three strings, [prefix name encoding]." (defun gnus-soup-write-replies (dir areas) "Write a REPLIES file in DIR containing AREAS." - (nnheader-temp-write (concat dir "REPLIES") + (with-temp-file (concat dir "REPLIES") (let (area) (while (setq area (pop areas)) (insert (format "%s\t%s\t%s\n" diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index 97ab9b8..005d2d0 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -2530,8 +2530,8 @@ If FORCE is non-nil, the .newsrc file is read." enable-multibyte-characters (fboundp 'gnus-mule-get-coding-system) (gnus-mule-get-coding-system (symbol-name group))))) - (if coding - (setq str (gnus-decode-coding-string str (car coding)))) + (when coding + (setq str (nnheader-decode-coding-string str (car coding)))) (set group str))) (forward-line 1)))) (gnus-message 5 "Reading descriptions file...done") diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 8509f17..a5429c0 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -504,7 +504,7 @@ with some simple extensions. :group 'gnus-threading :type 'string) -(defcustom gnus-summary-mode-line-format "Gnus: %%b [%A] %Z" +(defcustom gnus-summary-mode-line-format "Gnus: %g [%A] %Z" "*The format specification for the summary mode line. It works along the same lines as a normal formatting string, with some simple extensions: @@ -663,18 +663,7 @@ is not run if `gnus-visual' is nil." :group 'gnus-summary-visual :type 'hook) -(defcustom gnus-structured-field-decoder 'identity - "Function to decode non-ASCII characters in structured field for summary." - :group 'gnus-various - :type 'function) - -(defcustom gnus-unstructured-field-decoder 'identity - "Function to decode non-ASCII characters in unstructured field for summary." - :group 'gnus-various - :type 'function) - -(defcustom gnus-parse-headers-hook - (list 'gnus-hack-decode-rfc1522 'gnus-decode-rfc1522) +(defcustom gnus-parse-headers-hook nil "*A hook called before parsing the headers." :group 'gnus-various :type 'hook) @@ -1395,6 +1384,10 @@ increase the score of each group you read." "c" gnus-article-highlight-citation "s" gnus-article-highlight-signature) + (gnus-define-keys (gnus-summary-wash-mime-map "M" gnus-summary-wash-map) + "w" gnus-article-decode-mime-words + "c" gnus-article-decode-charset) + (gnus-define-keys (gnus-summary-wash-time-map "T" gnus-summary-wash-map) "z" gnus-article-date-ut "u" gnus-article-date-ut @@ -1494,6 +1487,10 @@ increase the score of each group you read." ["Headers" gnus-article-highlight-headers t] ["Signature" gnus-article-highlight-signature t] ["Citation" gnus-article-highlight-citation t]) + ("MIME" + ["Words" gnus-article-decode-mime-words t] + ["Charset" gnus-article-decode-charset t] + ["QP" gnus-article-de-quoted-unreadable t]) ("Date" ["Local" gnus-article-date-local t] ["ISO8601" gnus-article-date-iso8601 t] @@ -1886,6 +1883,7 @@ The following commands are available: (make-local-hook 'pre-command-hook) (add-hook 'pre-command-hook 'gnus-set-global-variables nil t) (gnus-run-hooks 'gnus-summary-mode-hook) + (mm-enable-multibyte) (gnus-update-format-specifications nil 'summary 'summary-mode 'summary-dummy) (gnus-update-summary-mark-positions)) @@ -2032,21 +2030,6 @@ The following commands are available: (setcar (nthcdr 2 (car data)) (+ offset (nth 2 (car data)))) (setq data (cdr data)))) -(defun gnus-data-compute-positions () - "Compute the positions of all articles." - (setq gnus-newsgroup-data-reverse nil) - (let ((data gnus-newsgroup-data)) - (save-excursion - (gnus-save-hidden-threads - (gnus-summary-show-all-threads) - (goto-char (point-min)) - (while data - (while (get-text-property (point) 'gnus-intangible) - (forward-line 1)) - (gnus-data-set-pos (car data) (+ (point) 3)) - (setq data (cdr data)) - (forward-line 1)))))) - (defun gnus-summary-article-pseudo-p (article) "Say whether this article is a pseudo article or not." (not (vectorp (gnus-data-header (gnus-data-find article))))) @@ -2214,6 +2197,21 @@ marks of articles." ,@forms) (gnus-restore-hidden-threads-configuration ,config))))) +(defun gnus-data-compute-positions () + "Compute the positions of all articles." + (setq gnus-newsgroup-data-reverse nil) + (let ((data gnus-newsgroup-data)) + (save-excursion + (gnus-save-hidden-threads + (gnus-summary-show-all-threads) + (goto-char (point-min)) + (while data + (while (get-text-property (point) 'gnus-intangible) + (forward-line 1)) + (gnus-data-set-pos (car data) (+ (point) 3)) + (setq data (cdr data)) + (forward-line 1)))))) + (defun gnus-hidden-threads-configuration () "Return the current hidden threads configuration." (save-excursion @@ -3063,10 +3061,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns nil otherwise." (setq header (make-full-mail-header number ; number - (funcall - gnus-unstructured-field-decoder (gnus-nov-field)) ; subject - (funcall - gnus-structured-field-decoder (gnus-nov-field)) ; from + (rfc2047-decode-string (gnus-nov-field)) ; subject + (rfc2047-decode-string (gnus-nov-field)) ; from (gnus-nov-field) ; date (or (gnus-nov-field) (nnheader-generate-fake-message-id)) ; id @@ -3489,7 +3485,7 @@ If LINE, insert the rebuilt thread starting on line LINE." (defsubst gnus-article-sort-by-date (h1 h2) "Sort articles by root article date." - (gnus-time-less + (time-less-p (gnus-date-get-time (mail-header-date h1)) (gnus-date-get-time (mail-header-date h2)))) @@ -4209,7 +4205,7 @@ If WHERE is `summary', the summary mode line format will be used." ;; We might have to chop a bit of the string off... (when (> (length mode-string) max-len) (setq mode-string - (concat (gnus-truncate-string mode-string (- max-len 3)) + (concat (truncate-string mode-string (- max-len 3)) "..."))) ;; Pad the mode string a bit. (setq mode-string (format (format "%%-%ds" max-len) mode-string)))) @@ -4409,15 +4405,13 @@ The resulting hash table is returned, or nil if no Xrefs were found." (progn (goto-char p) (if (search-forward "\nsubject: " nil t) - (funcall - gnus-unstructured-field-decoder (nnheader-header-value)) + (rfc2047-decode-string (nnheader-header-value)) "(none)")) ;; From. (progn (goto-char p) (if (search-forward "\nfrom: " nil t) - (funcall - gnus-structured-field-decoder (nnheader-header-value)) + (rfc2047-decode-string (nnheader-header-value)) "(nobody)")) ;; Date. (progn @@ -4537,9 +4531,10 @@ list of headers that match SEQUENCE (see `nntp-retrieve-headers')." number dependencies force-new)))) (push header headers)) (forward-line 1)) - (error - (gnus-error 4 "Strange nov line (%d)" - (count-lines (point-min) (point))))) + ;(error + ; (gnus-error 4 "Strange nov line (%d)" + ; (count-lines (point-min) (point)))) + ) (forward-line 1)) ;; A common bug in inn is that if you have posted an article and ;; then retrieves the active file, it will answer correctly -- @@ -5936,13 +5931,13 @@ articles that are younger than AGE days." (interactive "nTime in days: \nP") (prog1 (let ((data gnus-newsgroup-data) - (cutoff (nnmail-days-to-time age)) + (cutoff (days-to-time age)) articles d date is-younger) (while (setq d (pop data)) (when (and (vectorp (gnus-data-header d)) (setq date (mail-header-date (gnus-data-header d)))) - (setq is-younger (nnmail-time-less - (nnmail-time-since (nnmail-date-to-time date)) + (setq is-younger (time-less-p + (time-since (date-to-time date)) cutoff)) (when (if younger-p is-younger @@ -6515,7 +6510,7 @@ Obeys the standard process/prefix convention." (gnus-summary-remove-process-mark article) (when (gnus-summary-display-article article) (save-excursion - (nnheader-temp-write nil + (with-temp-buffer (insert-buffer-substring gnus-original-article-buffer) ;; Remove some headers that may lead nndoc to make ;; the wrong guess. @@ -7166,10 +7161,7 @@ latter case, they will be copied into the relevant groups." lines (count-lines (point-min) (point-max))) (insert "From: " (read-string "From: ") "\n" "Subject: " (read-string "Subject: ") "\n" - "Date: " (timezone-make-date-arpa-standard - (current-time-string (nth 5 atts)) - (current-time-zone now) - (current-time-zone now)) + "Date: " (message-make-date (nth 5 atts)) "\n" "Message-ID: " (message-make-message-id) "\n" "Lines: " (int-to-string lines) "\n" @@ -7320,7 +7312,7 @@ groups." (interactive) ;; Replace the article. (let ((buf (current-buffer))) - (nnheader-temp-write nil + (with-temp-buffer (insert-buffer buf) (if (and (not read-only) (not (gnus-request-replace-article @@ -7338,7 +7330,7 @@ groups." (message-narrow-to-head) (let ((head (buffer-string)) header) - (nnheader-temp-write nil + (with-temp-buffer (insert (format "211 %d Article retrieved.\n" (cdr gnus-article-current))) (insert head) @@ -8158,7 +8150,7 @@ is non-nil or the Subject: of both articles are the same." (gnus-summary-select-article t t nil current-article)) (set-buffer gnus-original-article-buffer) (let ((buf (format "%s" (buffer-string)))) - (nnheader-temp-write nil + (with-temp-buffer (insert buf) (goto-char (point-min)) (if (re-search-forward "^References: " nil t) @@ -8501,7 +8493,7 @@ If N is a negative number, save the N previous articles. If N is nil and any articles have been marked with the process mark, save those articles instead." (interactive "P") - (let ((gnus-default-article-saver 'gnus-summary-save-in-rmail)) + (let ((gnus-default-article-saver 'rmail-output-to-rmail-file)) (gnus-summary-save-article arg))) (defun gnus-summary-save-article-file (&optional arg) diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index ac066e5..03b017a 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -33,11 +33,10 @@ (require 'custom) (eval-when-compile (require 'cl)) (require 'nnheader) -(require 'timezone) (require 'message) +(require 'time-date) (eval-and-compile - (autoload 'nnmail-date-to-time "nnmail") (autoload 'rmail-insert-rmail-file-header "rmail") (autoload 'rmail-count-new-messages "rmail") (autoload 'rmail-show-message "rmail")) @@ -75,9 +74,6 @@ (set symbol nil)) symbol)) -(defun gnus-truncate-string (str width) - (substring str 0 width)) - ;; Added by Geoffrey T. Dairiki . A safe way ;; to limit the length of a string. This function is necessary since ;; `(substr "abc" 0 30)' pukes with "Args out of range". @@ -106,25 +102,15 @@ (when (gnus-buffer-exists-p buf) (kill-buffer buf)))) -(if (fboundp 'point-at-bol) - (fset 'gnus-point-at-bol 'point-at-bol) - (defun gnus-point-at-bol () - "Return point at the beginning of the line." - (let ((p (point))) - (beginning-of-line) - (prog1 - (point) - (goto-char p))))) - -(if (fboundp 'point-at-eol) - (fset 'gnus-point-at-eol 'point-at-eol) - (defun gnus-point-at-eol () - "Return point at the end of the line." - (let ((p (point))) - (end-of-line) - (prog1 - (point) - (goto-char p))))) +(fset 'gnus-point-at-bol + (if (fboundp 'point-at-bol) + 'point-at-bol + 'line-beginning-position)) + +(fset 'gnus-point-at-eol + (if (fboundp 'point-at-eol) + 'point-at-eol + 'line-end-position)) (defun gnus-delete-first (elt list) "Delete by side effect the first occurrence of ELT as a member of LIST." @@ -231,43 +217,6 @@ ;;; Time functions. -(defun gnus-days-between (date1 date2) - ;; Return the number of days between date1 and date2. - (- (gnus-day-number date1) (gnus-day-number date2))) - -(defun gnus-day-number (date) - (let ((dat (mapcar (lambda (s) (and s (string-to-int s)) ) - (timezone-parse-date date)))) - (timezone-absolute-from-gregorian - (nth 1 dat) (nth 2 dat) (car dat)))) - -(defun gnus-time-to-day (time) - "Convert TIME to day number." - (let ((tim (decode-time time))) - (timezone-absolute-from-gregorian - (nth 4 tim) (nth 3 tim) (nth 5 tim)))) - -(defun gnus-encode-date (date) - "Convert DATE to internal time." - (let* ((parse (timezone-parse-date date)) - (date (mapcar (lambda (d) (and d (string-to-int d))) parse)) - (time (mapcar 'string-to-int (timezone-parse-time (aref parse 3))))) - (encode-time (caddr time) (cadr time) (car time) - (caddr date) (cadr date) (car date) - (* 60 (timezone-zone-to-minute (nth 4 date)))))) - -(defun gnus-time-minus (t1 t2) - "Subtract two internal times." - (let ((borrow (< (cadr t1) (cadr t2)))) - (list (- (car t1) (car t2) (if borrow 1 0)) - (- (+ (if borrow 65536 0) (cadr t1)) (cadr t2))))) - -(defun gnus-time-less (t1 t2) - "Say whether time T1 is less than time T2." - (or (< (car t1) (car t2)) - (and (= (car t1) (car t2)) - (< (nth 1 t1) (nth 1 t2))))) - (defun gnus-file-newer-than (file date) (let ((fdate (nth 5 (file-attributes file)))) (or (> (car fdate) (car date)) @@ -342,20 +291,7 @@ (defun gnus-dd-mmm (messy-date) "Return a string like DD-MMM from a big messy string." - (let ((datevec (ignore-errors (timezone-parse-date messy-date)))) - (if (or (not datevec) - (string-equal "0" (aref datevec 1))) - "??-???" - (format "%2s-%s" - (condition-case () - ;; Make sure leading zeroes are stripped. - (number-to-string (string-to-number (aref datevec 2))) - (error "??")) - (capitalize - (or (car - (nth (1- (string-to-number (aref datevec 1))) - timezone-months-assoc)) - "???")))))) + (format-time-string "%2d-%b" (date-to-time messy-date))) (defmacro gnus-date-get-time (date) "Convert DATE string to Emacs time. @@ -366,7 +302,7 @@ Cache the result as a text property stored in DATE." '(0 0) (or (get-text-property 0 'gnus-time d) ;; or compute the value... - (let ((time (nnmail-date-to-time d))) + (let ((time (date-to-time d))) ;; and store it back in the string. (put-text-property 0 1 'gnus-time time d) time))))) @@ -497,20 +433,8 @@ If N, return the Nth ancestor instead." (cons (and (numberp event) event) event))) (defun gnus-sortable-date (date) - "Make sortable string by string-lessp from DATE. -Timezone package is used." - (condition-case () - (progn - (setq date (inline (timezone-fix-time - date nil - (aref (inline (timezone-parse-date date)) 4)))) - (inline - (timezone-make-sortable-date - (aref date 0) (aref date 1) (aref date 2) - (inline - (timezone-make-time-string - (aref date 3) (aref date 4) (aref date 5)))))) - (error ""))) + "Make string suitable for sorting from DATE." + (gnus-time-iso8601 (date-to-time date))) (defun gnus-copy-file (file &optional to) "Copy FILE to TO." @@ -542,7 +466,7 @@ Timezone package is used." (erase-buffer)) (set-buffer (gnus-get-buffer-create gnus-work-buffer)) (kill-all-local-variables) - (buffer-disable-undo (current-buffer)))) + (mm-enable-multibyte))) (defmacro gnus-group-real-name (group) "Find the real name of a foreign newsgroup." @@ -715,58 +639,6 @@ with potentially long computations." ;;; Functions for saving to babyl/mail files. -(defvar rmail-default-rmail-file) -(defun gnus-output-to-rmail (filename &optional ask) - "Append the current article to an Rmail file named FILENAME." - (require 'rmail) - ;; Most of these codes are borrowed from rmailout.el. - (setq filename (expand-file-name filename)) - (setq rmail-default-rmail-file filename) - (let ((artbuf (current-buffer)) - (tmpbuf (gnus-get-buffer-create " *Gnus-output*"))) - (save-excursion - (or (get-file-buffer filename) - (file-exists-p filename) - (if (or (not ask) - (gnus-yes-or-no-p - (concat "\"" filename "\" does not exist, create it? "))) - (let ((file-buffer (create-file-buffer filename))) - (save-excursion - (set-buffer file-buffer) - (rmail-insert-rmail-file-header) - (let ((require-final-newline nil)) - (gnus-write-buffer filename))) - (kill-buffer file-buffer)) - (error "Output file does not exist"))) - (set-buffer tmpbuf) - (erase-buffer) - (insert-buffer-substring artbuf) - (gnus-convert-article-to-rmail) - ;; Decide whether to append to a file or to an Emacs buffer. - (let ((outbuf (get-file-buffer filename))) - (if (not outbuf) - (append-to-file (point-min) (point-max) filename) - ;; File has been visited, in buffer OUTBUF. - (set-buffer outbuf) - (let ((buffer-read-only nil) - (msg (and (boundp 'rmail-current-message) - (symbol-value 'rmail-current-message)))) - ;; If MSG is non-nil, buffer is in RMAIL mode. - (when msg - (widen) - (narrow-to-region (point-max) (point-max))) - (insert-buffer-substring tmpbuf) - (when msg - (goto-char (point-min)) - (widen) - (search-backward "\^_") - (narrow-to-region (point) (point-max)) - (goto-char (1+ (point-min))) - (rmail-count-new-messages t) - (rmail-show-message msg)) - (save-buffer))))) - (kill-buffer tmpbuf))) - (defun gnus-output-to-mail (filename &optional ask) "Append the current article to a mail file named FILENAME." (setq filename (expand-file-name filename)) diff --git a/lisp/gnus-xmas.el b/lisp/gnus-xmas.el index 00fc583..dc0f34c 100644 --- a/lisp/gnus-xmas.el +++ b/lisp/gnus-xmas.el @@ -41,6 +41,8 @@ automatically." directory) :group 'gnus-xmas) +;;(format "%02x%02x%02x" 114 66 20) "724214" + (defvar gnus-xmas-logo-color-alist '((flame "#cc3300" "#ff2200") (pine "#c0cc93" "#f8ffb8") @@ -52,16 +54,18 @@ automatically." (grape "#b264cc" "#cf7df") (labia "#cc64c2" "#fd7dff") (berry "#cc6485" "#ff7db5") + (dino "#724214" "#1e3f03") (neutral "#b4b4b4" "#878787") (september "#bf9900" "#ffcc00")) "Color alist used for the Gnus logo.") -(defcustom gnus-xmas-logo-color-style 'moss +(defcustom gnus-xmas-logo-color-style 'dino "*Color styles used for the Gnus logo." :type '(choice (const flame) (const pine) (const moss) (const irish) (const sky) (const tin) (const velvet) (const grape) (const labia) - (const berry) (const neutral) (const september)) + (const berry) (const neutral) (const september) + (const dino)) :group 'gnus-xmas) (defvar gnus-xmas-logo-colors @@ -394,24 +398,6 @@ call it with the value of the `gnus-data' text property." (event-to-character event)) event))) -(defun gnus-xmas-seconds-since-epoch (date) - "Return a floating point number that says how many seconds have lapsed between Jan 1 12:00:00 1970 and DATE." - (let* ((tdate (mapcar (lambda (ti) (and ti (string-to-int ti))) - (timezone-parse-date date))) - (ttime (mapcar (lambda (ti) (and ti (string-to-int ti))) - (timezone-parse-time - (aref (timezone-parse-date date) 3)))) - (edate (mapcar (lambda (ti) (and ti (string-to-int ti))) - (timezone-parse-date "Jan 1 12:00:00 1970"))) - (tday (- (timezone-absolute-from-gregorian - (nth 1 tdate) (nth 2 tdate) (nth 0 tdate)) - (timezone-absolute-from-gregorian - (nth 1 edate) (nth 2 edate) (nth 0 edate))))) - (+ (nth 2 ttime) - (* (nth 1 ttime) 60) - (* (float (nth 0 ttime)) 60 60) - (* (float tday) 60 60 24)))) - (defun gnus-xmas-define () (setq gnus-mouse-2 [button2]) @@ -456,16 +442,6 @@ call it with the value of the `gnus-data' text property." (defvar gnus-mouse-face-prop 'highlight) - (unless (fboundp 'encode-time) - (defun encode-time (sec minute hour day month year &optional zone) - (let ((seconds - (gnus-xmas-seconds-since-epoch - (timezone-make-arpa-date - year month day (timezone-make-time-string hour minute sec) - zone)))) - (list (floor (/ seconds (expt 2 16))) - (round (mod seconds (expt 2 16))))))) - (defun gnus-byte-code (func) "Return a form that can be `eval'ed based on FUNC." (let ((fval (indirect-function func))) diff --git a/lisp/gnus.el b/lisp/gnus.el index 0af6b9c..08ee518 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -250,10 +250,10 @@ is restarted, and sometimes reloaded." :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) -(defconst gnus-version-number "5.6.43" +(defconst gnus-version-number "0.18" "Version number for this version of Gnus.") -(defconst gnus-version (format "Gnus v%s" gnus-version-number) +(defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number) "Version string for this version of Gnus.") (defcustom gnus-inhibit-startup-message nil @@ -637,13 +637,13 @@ be set in `.emacs' instead." (defface gnus-splash-face '((((class color) (background dark)) - (:foreground "ForestGreen")) + (:foreground "Brown")) (((class color) (background light)) - (:foreground "ForestGreen")) + (:foreground "Brown")) (t ())) - "Level 1 newsgroup face.") + "Face of the splash screen.") (defun gnus-splash () (save-excursion @@ -1346,12 +1346,16 @@ face." (defcustom gnus-article-display-hook (if (and (string-match "XEmacs" emacs-version) (featurep 'xface)) - '(gnus-article-hide-headers-if-wanted + '(gnus-article-decode-charset + gnus-article-decode-rfc1522 + gnus-article-hide-headers-if-wanted gnus-article-hide-boring-headers gnus-article-treat-overstrike gnus-article-maybe-highlight gnus-article-display-x-face) - '(gnus-article-hide-headers-if-wanted + '(gnus-article-decode-charset + gnus-article-decode-rfc1522 + gnus-article-hide-headers-if-wanted gnus-article-hide-boring-headers gnus-article-treat-overstrike gnus-article-maybe-highlight)) @@ -1408,6 +1412,7 @@ want." ;;; Internal variables +(defvar gnus-agent-meta-information-header "X-Gnus-Agent-Meta-Information") (defvar gnus-group-get-parameter-function 'gnus-group-get-parameter) (defvar gnus-original-article-buffer " *Original Article*") (defvar gnus-newsgroup-name nil) @@ -1569,20 +1574,19 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.") (cdr package))))) '(("metamail" metamail-buffer) ("info" Info-goto-node) - ("hexl" hexl-hex-string-to-integer) ("pp" pp pp-to-string pp-eval-expression) + ("qp" quoted-printable-decode-region quoted-printable-decode-string) + ("rfc2047" rfc2047-decode-region rfc2047-decode-string) ("ps-print" ps-print-preprint) ("mail-extr" mail-extract-address-components) ("browse-url" browse-url) ("message" :interactive t message-send-and-exit message-yank-original) - ("nnmail" nnmail-split-fancy nnmail-article-group nnmail-date-to-time) + ("nnmail" nnmail-split-fancy nnmail-article-group) ("nnvirtual" nnvirtual-catchup-group nnvirtual-convert-headers) - ("timezone" timezone-make-date-arpa-standard timezone-fix-time - timezone-make-sortable-date timezone-make-time-string) ("rmailout" rmail-output) ("rmail" rmail-insert-rmail-file-header rmail-count-new-messages - rmail-show-message) + rmail-show-message rmail-output-to-rmail-file) ("gnus-audio" :interactive t gnus-audio-play) ("gnus-xmas" gnus-xmas-splash) ("gnus-soup" :interactive t @@ -1697,7 +1701,7 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.") gnus-article-treat-overstrike gnus-article-word-wrap gnus-article-remove-cr gnus-article-remove-trailing-blank-lines gnus-article-display-x-face gnus-article-de-quoted-unreadable - gnus-article-mime-decode-quoted-printable gnus-article-hide-pgp + gnus-article-hide-pgp gnus-article-hide-pem gnus-article-hide-signature gnus-article-strip-leading-blank-lines gnus-article-date-local gnus-article-date-original gnus-article-date-lapsed @@ -2000,14 +2004,13 @@ If ARG, insert string at point." (string-to-number (if (zerop major) (format "%s00%02d%02d" - (cond - ((member alpha '("(ding)" "d")) "4.99") - ((member alpha '("September" "s")) "5.01") - ((member alpha '("Red" "r")) "5.03") - ((member alpha '("Quassia" "q")) "5.05") - ((member alpha '("p")) "5.07") - ((member alpha '("o")) "5.09") - ((member alpha '("n")) "5.11")) + (if (member alpha '("(ding)" "d")) + "4.99" + (+ 5 (* 0.02 + (abs + (- (mm-char-int (aref (downcase alpha) 0)) + (mm-char-int ?t)))) + -0.01)) minor least) (format "%d.%02d%02d" major minor least)))))) diff --git a/lisp/lpath.el b/lisp/lpath.el index d41172b..cfee844 100644 --- a/lisp/lpath.el +++ b/lisp/lpath.el @@ -25,21 +25,28 @@ run-with-idle-timer mouse-minibuffer-check window-edges event-click-count track-mouse read-event mouse-movement-p event-end mouse-scroll-subr overlay-lists delete-overlay - set-face-stipple mail-abbrevs-setup char-int + set-face-stipple mail-abbrevs-setup make-char-table set-char-table-range font-create-object x-color-values widget-make-intangible error-message-string w3-form-encode-xwfu gnus-mule-get-coding-system - decode-coding-string mail-aliases-setup)) + decode-coding-string mail-aliases-setup + mm-copy-tree url-view-url w3-prepare-buffer + set-buffer-multibyte + find-non-ascii-charset-region char-charset + mule-write-region-no-coding-system + find-charset-region base64-decode-string)) (maybe-bind '(global-face-data mark-active transient-mark-mode mouse-selection-click-count mouse-selection-click-count-buffer buffer-display-table font-lock-defaults user-full-name user-login-name gnus-newsgroup-name gnus-article-x-face-too-ugly mail-mode-hook enable-multibyte-characters - adaptive-fill-first-line-regexp adaptive-fill-regexp))) + adaptive-fill-first-line-regexp adaptive-fill-regexp + url-current-mime-headers buffer-file-coding-system))) (maybe-bind '(mail-mode-hook enable-multibyte-characters browse-url-browser-function - adaptive-fill-first-line-regexp adaptive-fill-regexp)) + adaptive-fill-first-line-regexp adaptive-fill-regexp + url-current-mime-headers)) (maybe-fbind '(color-instance-rgb-components make-color-instance color-instance-name specifier-instance device-type device-class get-popup-menu-response event-object @@ -53,7 +60,9 @@ device-on-window-system-p make-gui-button Info-goto-node pp-to-string color-name gnus-mule-get-coding-system decode-coding-string - mail-aliases-setup))) + mail-aliases-setup + mm-copy-tree url-view-url w3-prepare-buffer + mule-write-region-no-coding-system char-int))) (setq load-path (cons "." load-path)) (require 'custom) diff --git a/lisp/message.el b/lisp/message.el index a7e5cd4..c92e62b 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -33,12 +33,13 @@ (require 'mailheader) (require 'nnheader) -(require 'timezone) (require 'easymenu) (require 'custom) (if (string-match "XEmacs\\|Lucid" emacs-version) (require 'mail-abbrevs) (require 'mailabbrev)) +(require 'rfc2047) +(require 'mm-bodies) (defgroup message '((user-mail-address custom-variable) (user-full-name custom-variable)) @@ -848,6 +849,7 @@ The cdr of ech entry is a function for applying the face to a region.") ;;; Internal variables. +(defvar message-default-charset nil) (defvar message-buffer-list nil) (defvar message-this-is-news nil) (defvar message-this-is-mail nil) @@ -948,7 +950,6 @@ The cdr of ech entry is a function for applying the face to a region.") (autoload 'gnus-point-at-eol "gnus-util") (autoload 'gnus-point-at-bol "gnus-util") (autoload 'gnus-output-to-mail "gnus-util") - (autoload 'gnus-output-to-rmail "gnus-util") (autoload 'mail-abbrev-in-expansion-header-p "mailabbrev") (autoload 'nndraft-request-associate-buffer "nndraft") (autoload 'nndraft-request-expire-articles "nndraft") @@ -1011,7 +1012,7 @@ The cdr of ech entry is a function for applying the face to a region.") (when (and (file-exists-p file) (file-readable-p file) (file-regular-p file)) - (nnheader-temp-write nil + (with-temp-buffer (nnheader-insert-file-contents file) (goto-char (point-min)) (looking-at message-unix-mail-delimiter)))) @@ -1023,6 +1024,20 @@ The cdr of ech entry is a function for applying the face to a region.") (when value (nnheader-replace-chars-in-string value ?\n ? )))) +(defun message-narrow-to-field () + "Narrow the buffer to the header on the current line." + (beginning-of-line) + (narrow-to-region + (point) + (progn + (forward-line 1) + (if (re-search-forward "^[^ \n\t]" nil t) + (progn + (beginning-of-line) + (point)) + (point-max)))) + (goto-char (point-min))) + (defun message-add-header (&rest headers) "Add the HEADERS to the message header, skipping those already present." (while headers @@ -1051,7 +1066,7 @@ The cdr of ech entry is a function for applying the face to a region.") (erase-buffer)) (set-buffer (get-buffer-create " *message work*")) (kill-all-local-variables) - (buffer-disable-undo (current-buffer)))) + (mm-enable-multibyte))) (defun message-functionp (form) "Return non-nil if FORM is funcallable." @@ -1111,7 +1126,8 @@ Return the number of headers removed." (goto-char (point-min))) (defun message-narrow-to-head () - "Narrow the buffer to the head of the message." + "Narrow the buffer to the head of the message. +Point is left at the beginning of the narrowed-to region." (widen) (narrow-to-region (goto-char (point-min)) @@ -1369,6 +1385,7 @@ C-c C-r message-caesar-buffer-body (rot13 the message body)." (setq adaptive-fill-first-line-regexp (concat "[ \t]*[-a-z0-9A-Z]*>+[ \t]*\\|" adaptive-fill-first-line-regexp)) + (mm-enable-multibyte) (run-hooks 'text-mode-hook 'message-mode-hook)) @@ -1604,9 +1621,10 @@ text was killed." ;; Then we translate the region. Do it this way to retain ;; text properties. (while (< b e) - (subst-char-in-region - b (1+ b) (char-after b) - (aref message-caesar-translation-table (char-after b))) + (when (< (char-after b) 255) + (subst-char-in-region + b (1+ b) (char-after b) + (aref message-caesar-translation-table (char-after b)))) (incf b)))) (defun message-make-caesar-translation-table (n) @@ -1871,7 +1889,8 @@ The text will also be indented the normal way." (bury-buffer buf) (when (eq buf (current-buffer)) (message-bury buf))) - (message-do-actions actions)))) + (message-do-actions actions) + t))) (defun message-dont-send () "Don't send the message you have been editing." @@ -2003,8 +2022,10 @@ the user from the mailer." (let ((message-deletable-headers (if news nil message-deletable-headers))) (message-generate-headers message-required-mail-headers)) + (rfc2047-encode-message-header) ;; Let the user do all of the above. (run-hooks 'message-header-hook)) + (message-encode-message-body) (unwind-protect (save-excursion (set-buffer tembuf) @@ -2173,8 +2194,10 @@ to find out how to use this." (message-narrow-to-headers) ;; Insert some headers. (message-generate-headers message-required-news-headers) + (rfc2047-encode-message-header) ;; Let the user do all of the above. (run-hooks 'message-header-hook)) + (message-encode-message-body) (message-cleanup-headers) (if (not (message-check-news-syntax)) (progn @@ -2468,7 +2491,7 @@ to find out how to use this." (y-or-n-p "Empty article. Really post? ")))) ;; Check for control characters. (message-check 'control-chars - (if (re-search-forward "[\000-\007\013\015-\037\200-\237]" nil t) + (if (re-search-forward "[\000-\007\013\015-\032\034-\037\200-\237]" nil t) (y-or-n-p "The article contains control characters. Really post? ") t)) @@ -2557,7 +2580,7 @@ to find out how to use this." "Append this article to Unix/babyl mail file.." (if (and (file-readable-p filename) (mail-file-babyl-p filename)) - (gnus-output-to-rmail filename t) + (rmail-output-to-rmail-file filename t) (gnus-output-to-mail filename t))) (defun message-cleanup-headers () @@ -2592,11 +2615,20 @@ to find out how to use this." (when (re-search-forward ",+$" nil t) (replace-match "" t t)))))) -(defun message-make-date () - "Make a valid data header." - (let ((now (current-time))) - (timezone-make-date-arpa-standard - (current-time-string now) (current-time-zone now)))) +(defun message-make-date (&optional now) + "Make a valid data header. +If NOW, use that time instead." + (let* ((now (or now (current-time))) + (zone (nth 8 (decode-time now))) + (sign "+")) + ;; We do all of this because XEmacs doesn't have the %z spec. + (when (> (/ zone 3600) 12) + (setq sign "-" + zone (- zone (* 3600 12)))) + (concat (format-time-string "%d %b %Y %H:%M:%S " (or now (current-time))) + (format "%s%02d%02d" + sign (/ zone 3600) + (% zone 3600))))) (defun message-make-message-id () "Make a unique Message-ID." @@ -2721,9 +2753,7 @@ to find out how to use this." ;; Add the future to current. (setcar current (+ (car current) (round (/ future (expt 2 16))))) (setcar (cdr current) (+ (nth 1 current) (% (round future) (expt 2 16)))) - ;; Return the date in the future in UT. - (timezone-make-date-arpa-standard - (current-time-string current) (current-time-zone current) '(0 "UT")))) + (message-make-date current))) (defun message-make-path () "Return uucp path." @@ -3055,7 +3085,7 @@ Headers already prepared in the buffer are not modified." (let ((max 988) (cut 4) refs) - (nnheader-temp-write nil + (with-temp-buffer (insert references) (goto-char (point-min)) (while (re-search-forward "<[^>]+>" nil t) @@ -3583,7 +3613,7 @@ header line with the old Message-ID." (defun message-wash-subject (subject) "Remove junk like \"Re:\", \"(fwd)\", etc. that was added to the subject by previous forwarders, replyers, etc." - (nnheader-temp-write nil + (with-temp-buffer (insert-string subject) (goto-char (point-min)) ;; strip Re/Fwd stuff off the beginning @@ -4002,6 +4032,35 @@ regexp varstr." (setq idx (1+ idx))) string)) +;;; +;;; MIME functions +;;; + +(defun message-encode-message-body () + "Examine the message body, encode it, and add the requisite headers." + (when (featurep 'mule) + (save-excursion + (save-restriction + (message-narrow-to-headers) + (message-remove-header + "^Content-Transfer-Encoding:\\|^Content-Type:\\|^Mime-Version:" t) + (goto-char (point-max)) + (widen) + (narrow-to-region (point) (point-max)) + (let* ((charset (mm-encode-body)) + (encoding (mm-body-encoding))) + (when (consp charset) + (error "Can't encode messages with multiple charsets (yet)")) + (widen) + (message-narrow-to-headers) + (goto-char (point-max)) + (setq charset (or charset (mm-mule-charset-to-mime-charset 'ascii))) + ;; We don't insert MIME headers if they only say the default. + (unless (and (eq charset 'ascii) + (eq encoding '7bit)) + (mm-insert-rfc822-headers charset encoding)) + (mm-encode-body)))))) + (run-hooks 'message-load-hook) (provide 'message) diff --git a/lisp/messagexmas.el b/lisp/messagexmas.el index 7e3edd3..52619dd 100644 --- a/lisp/messagexmas.el +++ b/lisp/messagexmas.el @@ -100,8 +100,8 @@ If it is non-nil, it must be a toolbar. The five legal values are "Create a rot table with offset N." (let ((i -1) (table (make-string 256 0)) - (a (char-int ?a)) - (A (char-int ?A))) + (a (mm-char-int ?a)) + (A (mm-char-int ?A))) (while (< (incf i) 256) (aset table i i)) (concat diff --git a/lisp/mm-bodies.el b/lisp/mm-bodies.el index 23ee6f6..c74994e 100644 --- a/lisp/mm-bodies.el +++ b/lisp/mm-bodies.el @@ -51,7 +51,14 @@ If no encoding was done, nil is returned." charsets) ;; We encode. (t - (let ((mime-charset (mm-mule-charset-to-mime-charset (car charsets))) + (let ((mime-charset + (or + (coding-system-get + (get-charset-property (car charsets) 'prefered-coding-system) + 'mime-charset) + (car (memq (car charsets) + (find-coding-systems-region + (point-min) (point-max)))))) start) (when (or t ;; We always decode. diff --git a/lisp/nndb.el b/lisp/nndb.el index 0a0f3ef..17f5359 100644 --- a/lisp/nndb.el +++ b/lisp/nndb.el @@ -70,7 +70,6 @@ (autoload 'cancel-timer "timer") (autoload 'telnet "telnet" nil t) (autoload 'telnet-send-input "telnet" nil t) - (autoload 'timezone-parse-date "timezone") (autoload 'gnus-declare-backend "gnus-start")) ;; Declare nndb as derived from nntp @@ -181,8 +180,7 @@ article was posted to nndb") msg)) (if (nnmail-expired-article-p group - (gnus-encode-date - (substring msg (match-beginning 1) (match-end 1))) + (date-to-time (substring msg (match-beginning 1) (match-end 1))) force) (progn (setq delete-list (concat delete-list " " (int-to-string art))) diff --git a/lisp/nndraft.el b/lisp/nndraft.el index f7182a5..d2489ee 100644 --- a/lisp/nndraft.el +++ b/lisp/nndraft.el @@ -130,8 +130,6 @@ (when (nndraft-request-article article group server (current-buffer)) (message-remove-header "xref") (message-remove-header "lines") - (let ((gnus-verbose-backends nil)) - (nndraft-request-expire-articles (list article) group server t)) t)) (deffoo nndraft-request-update-info (group info &optional server) @@ -156,7 +154,7 @@ (let ((gnus-verbose-backends nil) (buf (current-buffer)) article file) - (nnheader-temp-write nil + (with-temp-buffer (insert-buffer buf) (setq article (nndraft-request-accept-article group (nnoo-current-server 'nndraft) t 'noinsert)) diff --git a/lisp/nneething.el b/lisp/nneething.el index 7da5466..6aaa529 100644 --- a/lisp/nneething.el +++ b/lisp/nneething.el @@ -68,8 +68,6 @@ If this variable is nil, no files will be excluded.") -(autoload 'gnus-encode-coding-string "gnus-ems") - ;;; Interface functions. (nnoo-define-basics nneething) @@ -243,7 +241,7 @@ If this variable is nil, no files will be excluded.") (setq files (cdr files))) (when (and touched (not nneething-read-only)) - (nnheader-temp-write map-file + (with-temp-file map-file (insert "(setq nneething-map '") (gnus-prin1 nneething-map) (insert ")\n(setq nneething-active '") diff --git a/lisp/nnfolder.el b/lisp/nnfolder.el index db9666b..b6ba830 100644 --- a/lisp/nnfolder.el +++ b/lisp/nnfolder.el @@ -511,17 +511,20 @@ Returns t if successful, nil otherwise." "Delete the message that point is in. If optional argument LEAVE-DELIM is t, then mailbox delimiter is not deleted. Point is left where the deleted region was." - (delete-region - (save-excursion - (forward-line 1) ; in case point is at beginning of message already - (nnmail-search-unix-mail-delim-backward) - (if leave-delim (progn (forward-line 1) (point)) - (point))) - (progn - (forward-line 1) - (if (nnmail-search-unix-mail-delim) - (point) - (point-max))))) + (save-restriction + (narrow-to-region + (save-excursion + (forward-line 1) ; in case point is at beginning of message already + (nnmail-search-unix-mail-delim-backward) + (if leave-delim (progn (forward-line 1) (point)) + (point))) + (progn + (forward-line 1) + (if (nnmail-search-unix-mail-delim) + (point) + (point-max)))) + (run-hooks 'nnfolder-delete-mail-hook) + (delete-region (point-min) (point-max)))) (defun nnfolder-possibly-change-group (group &optional server dont-check) ;; Change servers. @@ -797,7 +800,8 @@ deleted. Point is left where the deleted region was." (defun nnfolder-group-pathname (group) "Make pathname for GROUP." - (setq group (gnus-encode-coding-string group nnmail-pathname-coding-system)) + (setq group + (nnheader-encode-coding-string group nnmail-pathname-coding-system)) (let ((dir (file-name-as-directory (expand-file-name nnfolder-directory)))) ;; If this file exists, we use it directly. (if (or nnmail-use-long-file-names diff --git a/lisp/nngateway.el b/lisp/nngateway.el index 2139885..41dc00a 100644 --- a/lisp/nngateway.el +++ b/lisp/nngateway.el @@ -54,7 +54,7 @@ parameter -- the gateway address.") (nngateway-open-server server)) ;; Rewrite the header. (let ((buf (current-buffer))) - (nnheader-temp-write nil + (with-temp-buffer (insert-buffer-substring buf) (message-narrow-to-head) (funcall nngateway-header-transformation nngateway-address) diff --git a/lisp/nnheader.el b/lisp/nnheader.el index bc725b6..98da659 100644 --- a/lisp/nnheader.el +++ b/lisp/nnheader.el @@ -61,8 +61,7 @@ on your system, you could say something like: (autoload 'cancel-function-timers "timers") (autoload 'gnus-point-at-eol "gnus-util") (autoload 'gnus-delete-line "gnus-util") - (autoload 'gnus-buffer-live-p "gnus-util") - (autoload 'gnus-encode-coding-string "gnus-ems")) + (autoload 'gnus-buffer-live-p "gnus-util")) ;;; Header access macros. @@ -498,52 +497,6 @@ the line could be found." (erase-buffer)) (current-buffer)) -(defmacro nnheader-temp-write (file &rest forms) - "Create a new buffer, evaluate FORMS there, and write the buffer to FILE. -Return the value of FORMS. -If FILE is nil, just evaluate FORMS and don't save anything. -If FILE is t, return the buffer contents as a string." - (let ((temp-file (make-symbol "temp-file")) - (temp-buffer (make-symbol "temp-buffer")) - (temp-results (make-symbol "temp-results"))) - `(save-excursion - (let* ((,temp-file ,file) - (default-major-mode 'fundamental-mode) - (,temp-buffer - (set-buffer - (get-buffer-create - (generate-new-buffer-name " *nnheader temp*")))) - ,temp-results) - (unwind-protect - (progn - (setq ,temp-results (progn ,@forms)) - (cond - ;; Don't save anything. - ((null ,temp-file) - ,temp-results) - ;; Return the buffer contents. - ((eq ,temp-file t) - (set-buffer ,temp-buffer) - (buffer-string)) - ;; Save a file. - (t - (set-buffer ,temp-buffer) - ;; Make sure the directory where this file is - ;; to be saved exists. - (when (not (file-directory-p - (file-name-directory ,temp-file))) - (make-directory (file-name-directory ,temp-file) t)) - ;; Save the file. - (write-region (point-min) (point-max) - ,temp-file nil 'nomesg) - ,temp-results))) - ;; Kill the buffer. - (when (buffer-name ,temp-buffer) - (kill-buffer ,temp-buffer))))))) - -(put 'nnheader-temp-write 'lisp-indent-function 1) -(put 'nnheader-temp-write 'edebug-form-spec '(form body)) - (defvar jka-compr-compression-info-list) (defvar nnheader-numerical-files (if (boundp 'jka-compr-compression-info-list) @@ -700,7 +653,7 @@ without formatting." (concat dir group "/") ;; If not, we translate dots into slashes. (concat dir - (gnus-encode-coding-string + (nnheader-encode-coding-string (nnheader-replace-chars-in-string group ?. ?/) nnheader-pathname-coding-system) "/"))) @@ -856,6 +809,14 @@ find-file-hooks, etc. (fset 'nnheader-cancel-timer 'cancel-timer) (fset 'nnheader-cancel-function-timers 'cancel-function-timers) +(if (fboundp 'encode-coding-string) + (fset 'nnheader-encode-coding-string 'encode-coding-string) + (fset 'nnheader-encode-coding-string (lambda (s a) s))) + +(if (fboundp 'decode-coding-string) + (fset 'nnheader-decode-coding-string 'decode-coding-string) + (fset 'nnheader-decode-coding-string (lambda (s a) s))) + (when (string-match "XEmacs\\|Lucid" emacs-version) (require 'nnheaderxm)) diff --git a/lisp/nnkiboze.el b/lisp/nnkiboze.el index c47a10d..b3e8f7d 100644 --- a/lisp/nnkiboze.el +++ b/lisp/nnkiboze.el @@ -136,7 +136,7 @@ ;; Remove NOV lines of articles that are marked as read. (when (and (file-exists-p (nnkiboze-nov-file-name)) nnkiboze-remove-read-articles) - (nnheader-temp-write (nnkiboze-nov-file-name) + (with-temp-file (nnkiboze-nov-file-name) (let ((cur (current-buffer))) (nnheader-insert-file-contents (nnkiboze-nov-file-name)) (goto-char (point-min)) @@ -230,7 +230,7 @@ Finds out what articles are to be part of the nnkiboze groups." ;; Load the kiboze newsrc file for this group. (when (file-exists-p newsrc-file) (load newsrc-file)) - (nnheader-temp-write nov-file + (with-temp-file nov-file (when (file-exists-p nov-file) (insert-file-contents nov-file)) (setq nov-buffer (current-buffer)) @@ -318,7 +318,7 @@ Finds out what articles are to be part of the nnkiboze groups." (gnus-message 3 "nnkiboze: Checking %s...done" (caar newsrc)) (setq newsrc (cdr newsrc)))) ;; We save the kiboze newsrc for this group. - (nnheader-temp-write newsrc-file + (with-temp-file newsrc-file (insert "(setq nnkiboze-newsrc '") (gnus-prin1 nnkiboze-newsrc) (insert ")\n"))) diff --git a/lisp/nnmail.el b/lisp/nnmail.el index 16541b1..2581172 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -28,15 +28,13 @@ (eval-when-compile (require 'cl)) (require 'nnheader) -(require 'timezone) (require 'message) (require 'custom) (require 'gnus-util) (eval-and-compile (autoload 'gnus-error "gnus-util") - (autoload 'gnus-buffer-live-p "gnus-util") - (autoload 'gnus-encode-coding-string "gnus-ems")) + (autoload 'gnus-buffer-live-p "gnus-util")) (defgroup nnmail nil "Reading mail with Gnus." @@ -409,7 +407,7 @@ Example: :group 'nnmail-split :type '(repeat (cons :format "%v" symbol regexp))) -(defcustom nnmail-delete-incoming t +(defcustom nnmail-delete-incoming nil "*If non-nil, the mail backends will delete incoming files after splitting." :group 'nnmail-retrieve @@ -483,7 +481,7 @@ parameter. It should return nil, `warn' or `delete'." (defun nnmail-request-post (&optional server) (mail-send-and-exit nil)) -(defvar nnmail-file-coding-system 'raw-text +(defvar nnmail-file-coding-system 'binary "Coding system used in nnmail.") (defun nnmail-find-file (file) @@ -494,7 +492,7 @@ parameter. It should return nil, `warn' or `delete'." (after-insert-file-functions nil)) (condition-case () (let ((coding-system-for-read nnmail-file-coding-system) - (pathname-coding-system 'binary)) + (pathname-coding-system nnmail-file-coding-system)) (insert-file-contents file) t) (file-error nil)))) @@ -514,55 +512,12 @@ parameter. It should return nil, `warn' or `delete'." (concat dir group "/") ;; If not, we translate dots into slashes. (concat dir - (gnus-encode-coding-string + (nnheader-encode-coding-string (nnheader-replace-chars-in-string group ?. ?/) nnmail-pathname-coding-system) "/"))) (or file ""))) -(defun nnmail-date-to-time (date) - "Convert DATE into time." - (condition-case () - (let* ((d1 (timezone-parse-date date)) - (t1 (timezone-parse-time (aref d1 3)))) - (apply 'encode-time - (mapcar (lambda (el) - (and el (string-to-number el))) - (list - (aref t1 2) (aref t1 1) (aref t1 0) - (aref d1 2) (aref d1 1) (aref d1 0) - (number-to-string - (* 60 (timezone-zone-to-minute - (or (aref d1 4) (current-time-zone))))))))) - ;; If we get an error, then we just return a 0 time. - (error (list 0 0)))) - -(defun nnmail-time-less (t1 t2) - "Say whether time T1 is less than time T2." - (or (< (car t1) (car t2)) - (and (= (car t1) (car t2)) - (< (nth 1 t1) (nth 1 t2))))) - -(defun nnmail-days-to-time (days) - "Convert DAYS into time." - (let* ((seconds (* 1.0 days 60 60 24)) - (rest (expt 2 16)) - (ms (condition-case nil (floor (/ seconds rest)) - (range-error (expt 2 16))))) - (list ms (condition-case nil (round (- seconds (* ms rest))) - (range-error (expt 2 16)))))) - -(defun nnmail-time-since (time) - "Return the time since TIME, which is either an internal time or a date." - (when (stringp time) - ;; Convert date strings to internal time. - (setq time (nnmail-date-to-time time))) - (let* ((current (current-time)) - (rest (when (< (nth 1 current) (nth 1 time)) - (expt 2 16)))) - (list (- (+ (car current) (if rest -1 0)) (car time)) - (- (+ (or rest 0) (nth 1 current)) (nth 1 time))))) - ;; Function rewritten from rmail.el. (defun nnmail-move-inbox (inbox) "Move INBOX to `nnmail-crash-box'." @@ -706,7 +661,7 @@ nn*-request-list should have been called before calling this function." "Save GROUP-ASSOC in ACTIVE-FILE." (let ((coding-system-for-write nnmail-active-file-coding-system)) (when file-name - (nnheader-temp-write file-name + (with-temp-file file-name (nnmail-generate-active group-assoc))))) (defun nnmail-generate-active (alist) @@ -1203,8 +1158,9 @@ Return the number of characters in the body." (insert (format "Xref: %s" (system-name))) (while group-alist (insert (format " %s:%d" - (gnus-encode-coding-string (caar group-alist) - nnmail-pathname-coding-system) + (nnheader-encode-coding-string + (caar group-alist) + nnmail-pathname-coding-system) (cdar group-alist))) (setq group-alist (cdr group-alist))) (insert "\n")))) @@ -1672,9 +1628,9 @@ See the documentation for the variable `nnmail-split-fancy' for documentation." ;; This is an ange-ftp group, and we don't have any dates. nil) ((numberp days) - (setq days (nnmail-days-to-time days)) + (setq days (days-to-time days)) ;; Compare the time with the current time. - (nnmail-time-less days (nnmail-time-since time))))))) + (time-less-p days (time-since time))))))) (defvar nnmail-read-passwd nil) (defun nnmail-read-passwd (prompt &rest args) diff --git a/lisp/nnmh.el b/lisp/nnmh.el index 8aafd7d..a393ebb 100644 --- a/lisp/nnmh.el +++ b/lisp/nnmh.el @@ -229,8 +229,8 @@ (expand-file-name nnmh-toplev)))) dir) (nnheader-replace-chars-in-string - (gnus-decode-coding-string (substring dir (match-end 0)) - nnmail-pathname-coding-system) + (nnheader-decode-coding-string (substring dir (match-end 0)) + nnmail-pathname-coding-system) ?/ ?.)) (apply 'max files) (apply 'min files))))))) @@ -533,7 +533,7 @@ (setq articles (sort articles (lambda (art1 art2) (> (car art1) (car art2))))) ;; Finally write this list back to the .nnmh-articles file. - (nnheader-temp-write nnmh-file + (with-temp-file nnmh-file (insert ";; Gnus article active file for " group "\n\n") (insert "(setq nnmh-newsgroup-articles '") (gnus-prin1 articles) diff --git a/lisp/nnml.el b/lisp/nnml.el index e7a1df9..42581c0 100644 --- a/lisp/nnml.el +++ b/lisp/nnml.el @@ -249,9 +249,8 @@ all. This may very well take some time.") (deffoo nnml-request-list (&optional server) (save-excursion (let ((nnmail-file-coding-system nnmail-active-file-coding-system) - (pathname-coding-system 'binary)) ; for XEmacs/mule - (nnmail-find-file nnml-active-file) - ) + (pathname-coding-system 'binary)) + (nnmail-find-file nnml-active-file)) (setq nnml-group-alist (nnmail-get-active)) t)) @@ -469,7 +468,7 @@ all. This may very well take some time.") ((not (file-exists-p file)) (nnheader-report 'nnml "File %s does not exist" file)) (t - (nnheader-temp-write file + (with-temp-file file (nnheader-insert-file-contents file) (nnmail-replace-status name value)) t)))) diff --git a/lisp/nnsoup.el b/lisp/nnsoup.el index e764150..4ccb28c 100644 --- a/lisp/nnsoup.el +++ b/lisp/nnsoup.el @@ -376,7 +376,7 @@ backend for the messages.") (or force nnsoup-group-alist-touched)) (setq nnsoup-group-alist-touched nil) - (nnheader-temp-write nnsoup-active-file + (with-temp-file nnsoup-active-file (gnus-prin1 `(setq nnsoup-group-alist ',nnsoup-group-alist)) (insert "\n") (gnus-prin1 `(setq nnsoup-current-prefix ,nnsoup-current-prefix)) diff --git a/lisp/nnspool.el b/lisp/nnspool.el index 6914f78..b2075be 100644 --- a/lisp/nnspool.el +++ b/lisp/nnspool.el @@ -28,7 +28,6 @@ (require 'nnheader) (require 'nntp) -(require 'timezone) (require 'nnoo) (eval-when-compile (require 'cl)) @@ -280,7 +279,7 @@ there.") (while (and (not (looking-at "\\([^ ]+\\) +\\([0-9]+\\)[0-9][0-9][0-9] ")) (zerop (forward-line -1)))) - (let ((seconds (nnspool-seconds-since-epoch date)) + (let ((seconds (time-to-seconds (date-to-time date))) groups) ;; Go through lines and add the latest groups to a list. (while (and (looking-at "\\([^ ]+\\) +[0-9]+ ") @@ -453,18 +452,6 @@ there.") "Find the path for GROUP." (nnheader-group-pathname group nnspool-spool-directory article)) -(defun nnspool-seconds-since-epoch (date) - (let* ((tdate (mapcar (lambda (ti) (and ti (string-to-int ti))) - (timezone-parse-date date))) - (ttime (mapcar (lambda (ti) (and ti (string-to-int ti))) - (timezone-parse-time - (aref (timezone-parse-date date) 3)))) - (unix (encode-time (nth 2 ttime) (nth 1 ttime) (nth 0 ttime) - (nth 2 tdate) (nth 1 tdate) (nth 0 tdate) - (nth 4 tdate)))) - (+ (* (car unix) 65536.0) - (cadr unix)))) - (provide 'nnspool) ;;; nnspool.el ends here diff --git a/lisp/nntp.el b/lisp/nntp.el index 487c72d..1fb9960 100644 --- a/lisp/nntp.el +++ b/lisp/nntp.el @@ -30,10 +30,6 @@ (nnoo-declare nntp) -(eval-and-compile - (unless (fboundp 'open-network-stream) - (require 'tcp))) - (eval-when-compile (require 'cl)) (defvoo nntp-address nil @@ -728,7 +724,7 @@ If this variable is nil, which is the default, no timers are set.") (prog1 (nntp-send-command "^\\.\r?\n" "NEWGROUPS" - (format-time-string "%y%m%d %H%M%S" (nnmail-date-to-time date))) + (format-time-string "%y%m%d %H%M%S" (date-to-time date))) (nntp-decode-text)))) (deffoo nntp-request-post (&optional server) @@ -796,7 +792,7 @@ If SEND-IF-FORCE, only send authinfo to the server if the The authinfo login name is taken from the user's login name and the password contained in '~/.nntp-authinfo'." (when (file-exists-p "~/.nntp-authinfo") - (nnheader-temp-write nil + (with-temp-buffer (insert-file-contents "~/.nntp-authinfo") (goto-char (point-min)) (nntp-send-command "^3.*\r?\n" "AUTHINFO USER" (user-login-name)) diff --git a/lisp/nnweb.el b/lisp/nnweb.el index 5a673cd..4ab9ec4 100644 --- a/lisp/nnweb.el +++ b/lisp/nnweb.el @@ -34,11 +34,17 @@ (require 'message) (require 'gnus-util) (require 'gnus) -(require 'w3) -(require 'url) (require 'nnmail) -(ignore-errors - (require 'w3-forms)) +(eval-when-compile + (ignore-errors + (require 'w3) + (require 'url) + (require 'w3-forms))) +;; Report failure to find w3 at load time if appropriate. +(eval '(progn + (require 'w3) + (require 'url) + (require 'w3-forms))) (nnoo-declare nnweb) @@ -219,7 +225,7 @@ and `altavista'.") (defun nnweb-read-overview (group) "Read the overview of GROUP and build the map." (when (file-exists-p (nnweb-overview-file group)) - (nnheader-temp-write nil + (with-temp-buffer (nnheader-insert-file-contents (nnweb-overview-file group)) (goto-char (point-min)) (let (header) @@ -233,7 +239,7 @@ and `altavista'.") (defun nnweb-write-overview (group) "Write the overview file for GROUP." - (nnheader-temp-write (nnweb-overview-file group) + (with-temp-file (nnweb-overview-file group) (let ((articles nnweb-articles)) (while articles (nnheader-insert-nov (cadr (pop articles))))))) @@ -254,7 +260,7 @@ and `altavista'.") (defun nnweb-write-active () "Save the active file." - (nnheader-temp-write (nnheader-concat nnweb-directory "active") + (with-temp-file (nnheader-concat nnweb-directory "active") (prin1 `(setq nnweb-group-alist ',nnweb-group-alist) (current-buffer)))) (defun nnweb-read-active () diff --git a/lisp/parse-time.el b/lisp/parse-time.el index e25abbb..2871623 100644 --- a/lisp/parse-time.el +++ b/lisp/parse-time.el @@ -38,10 +38,8 @@ (eval-when-compile (require 'cl)) ;and ah ain't kiddin' 'bout it -(put 'parse-time-syntax 'char-table-extra-slots 0) - -(defvar parse-time-syntax (make-char-table 'parse-time-syntax)) -(defvar parse-time-digits (make-char-table 'parse-time-syntax)) +(defvar parse-time-syntax (make-vector 256 nil)) +(defvar parse-time-digits (make-vector 256 nil)) ;; Byte-compiler warnings (defvar elt) @@ -49,18 +47,18 @@ (unless (aref parse-time-digits ?0) (loop for i from ?0 to ?9 - do (set-char-table-range parse-time-digits i (- i ?0)))) + do (aset parse-time-digits i (- i ?0)))) (unless (aref parse-time-syntax ?0) (loop for i from ?0 to ?9 - do (set-char-table-range parse-time-syntax i ?0)) + do (aset parse-time-syntax i ?0)) (loop for i from ?A to ?Z - do (set-char-table-range parse-time-syntax i ?A)) + do (aset parse-time-syntax i ?A)) (loop for i from ?a to ?z - do (set-char-table-range parse-time-syntax i ?a)) - (set-char-table-range parse-time-syntax ?+ 1) - (set-char-table-range parse-time-syntax ?- -1) - (set-char-table-range parse-time-syntax ?: ?d) + do (aset parse-time-syntax i ?a)) + (aset parse-time-syntax ?+ 1) + (aset parse-time-syntax ?- -1) + (aset parse-time-syntax ?: ?d) ) (defsubst digit-char-p (char) @@ -89,7 +87,8 @@ (setq integer (+ (* integer 10) digit) index (1+ index))) (if (/= index end) - (signal 'parse-error `("not an integer" ,(substring string (or start 0) end))) + (signal 'parse-error `("not an integer" + ,(substring string (or start 0) end))) (* sign integer)))))) (defun parse-time-tokenize (string) @@ -114,17 +113,17 @@ list))) (nreverse list))) -(defvar parse-time-months '(("Jan" . 1) ("Feb" . 2) ("Mar" . 3) - ("Apr" . 4) ("May" . 5) ("Jun" . 6) - ("Jul" . 7) ("Aug" . 8) ("Sep" . 9) - ("Oct" . 10) ("Nov" . 11) ("Dec" . 12))) -(defvar parse-time-weekdays '(("Sun" . 0) ("Mon" . 1) ("Tue" . 2) - ("Wed" . 3) ("Thu" . 4) ("Fri" . 5) ("Sat" . 6))) -(defvar parse-time-zoneinfo `(("Z" 0) ("UT" 0) ("GMT" 0) - ("PST" ,(* -8 3600)) ("PDT" ,(* -7 3600) t) - ("MST" ,(* -7 3600)) ("MDT" ,(* -6 3600) t) - ("CST" ,(* -6 3600)) ("CDT" ,(* -5 3600) t) - ("EST" ,(* -5 3600)) ("EDT" ,(* -4 3600) t)) +(defvar parse-time-months '(("jan" . 1) ("feb" . 2) ("mar" . 3) + ("apr" . 4) ("may" . 5) ("jun" . 6) + ("jul" . 7) ("aug" . 8) ("sep" . 9) + ("oct" . 10) ("nov" . 11) ("dec" . 12))) +(defvar parse-time-weekdays '(("sun" . 0) ("mon" . 1) ("tue" . 2) + ("wed" . 3) ("thu" . 4) ("fri" . 5) ("sat" . 6))) +(defvar parse-time-zoneinfo `(("z" 0) ("ut" 0) ("gmt" 0) + ("pst" ,(* -8 3600)) ("pdt" ,(* -7 3600) t) + ("mst" ,(* -7 3600)) ("mdt" ,(* -6 3600) t) + ("cst" ,(* -6 3600)) ("cdt" ,(* -5 3600) t) + ("est" ,(* -5 3600)) ("edt" ,(* -4 3600) t)) "(zoneinfo seconds-off daylight-savings-time-p)") (defvar parse-time-rules @@ -150,11 +149,14 @@ (* 60 (parse-integer elt 1 3))) (if (= (aref elt 0) ?-) -1 1)))) ((5 4 3) - ,#'(lambda () (and (stringp elt) (= (length elt) 10) (= (aref elt 4) ?-) (= (aref elt 7) ?-))) + ,#'(lambda () (and (stringp elt) + (= (length elt) 10) + (= (aref elt 4) ?-) + (= (aref elt 7) ?-))) [0 4] [5 7] [8 10]) - ((2 1) + ((2 1 0) ,#'(lambda () (and (stringp elt) (= (length elt) 5) (= (aref elt 2) ?:))) - [0 2] [3 5]) + [0 2] [3 5] ,#'(lambda () 0)) ((5) (70 99) ,#'(lambda () (+ 1900 elt)))) "(slots predicate extractor...)") @@ -163,7 +165,7 @@ The values are identical to those of `decode-time', but any values that are unknown are returned as nil." (let ((time (list nil nil nil nil nil nil nil nil nil nil)) - (temp (parse-time-tokenize string))) + (temp (parse-time-tokenize (downcase string)))) (while temp (let ((elt (pop temp)) (rules parse-time-rules) @@ -173,25 +175,27 @@ unknown are returned as nil." (slots (pop rule)) (predicate (pop rule)) (val)) - (if (and (not (nth (car slots) time)) ;not already set - (setq val (cond ((and (consp predicate) - (not (eq (car predicate) 'lambda))) - (and (numberp elt) - (<= (car predicate) elt) - (<= elt (cadr predicate)) - elt)) - ((symbolp predicate) - (cdr (assoc elt (symbol-value predicate)))) - ((funcall predicate))))) - (progn - (setq exit t) - (while slots - (let ((new-val (and rule - (let ((this (pop rule))) - (if (vectorp this) - (parse-integer elt (aref this 0) (aref this 1)) - (funcall this)))))) - (rplaca (nthcdr (pop slots) time) (or new-val val)))))))))) + (when (and (not (nth (car slots) time)) ;not already set + (setq val (cond ((and (consp predicate) + (not (eq (car predicate) + 'lambda))) + (and (numberp elt) + (<= (car predicate) elt) + (<= elt (cadr predicate)) + elt)) + ((symbolp predicate) + (cdr (assoc elt + (symbol-value predicate)))) + ((funcall predicate))))) + (setq exit t) + (while slots + (let ((new-val (and rule + (let ((this (pop rule))) + (if (vectorp this) + (parse-integer + elt (aref this 0) (aref this 1)) + (funcall this)))))) + (rplaca (nthcdr (pop slots) time) (or new-val val))))))))) time)) (provide 'parse-time) diff --git a/lisp/qp.el b/lisp/qp.el index d0e93bc..ea88dbd 100644 --- a/lisp/qp.el +++ b/lisp/qp.el @@ -65,12 +65,13 @@ matched by that regexp." (save-restriction (narrow-to-region from to) (goto-char (point-min)) - (while (re-search-forward - (or class "[\000-\007\013\015-\037\200-\377=]") nil t) + (while (and (skip-chars-forward + (or class "^\000-\007\013\015-\037\200-\377=")) + (not (eobp))) (insert (prog1 - (upcase (format "=%x" (char-after (1- (point))))) - (delete-char -1)))) + (upcase (format "=%x" (char-after (point)))) + (delete-char 1)))) (when fold ;; Fold long lines. (goto-char (point-min)) diff --git a/lisp/rfc2047.el b/lisp/rfc2047.el index 0fe7328..907a084 100644 --- a/lisp/rfc2047.el +++ b/lisp/rfc2047.el @@ -55,7 +55,7 @@ The values can be: (iso-8859-2 . Q) (iso-8859-3 . Q) (iso-8859-4 . Q) - (iso-8859-5 . Q) + (iso-8859-5 . B) (koi8-r . Q) (iso-8859-7 . Q) (iso-8859-8 . Q) @@ -73,13 +73,13 @@ Valid encodings are nil, `Q' and `B'.") (defvar rfc2047-encoding-function-alist '((Q . rfc2047-q-encode-region) - (B . base64-encode-region) + (B . rfc2047-b-encode-region) (nil . ignore)) "Alist of RFC2047 encodings to encoding functions.") (defvar rfc2047-q-encoding-alist - '(("\\(From\\|Cc\\|To\\|Bcc\||Reply-To\\):" . "[^-A-Za-z0-9!*+/=_]") - ("." . "[\000-\007\013\015-\037\200-\377=_?]")) + '(("\\(From\\|Cc\\|To\\|Bcc\||Reply-To\\):" . "-A-Za-z0-9!*+/=_") + ("." . "^\000-\007\013\015-\037\200-\377=_?")) "Alist of header regexps and valid Q characters.") ;;; @@ -140,36 +140,36 @@ Should be called narrowed to the head of the message." (setq found t))) found)) +(defun rfc2047-dissect-region (b e) + "Dissect the region between B and E." + (let (words) + (save-restriction + (narrow-to-region b e) + (goto-char (point-min)) + (while (re-search-forward "[^ \t\n]+" nil t) + (push + (list (match-beginning 0) (match-end 0) + (car + (delq 'ascii + (find-charset-region (match-beginning 0) + (match-end 0))))) + words)) + words))) + (defun rfc2047-encode-region (b e) "Encode all encodable words in REGION." - (let (prev c start qstart qprev qend) - (save-excursion - (goto-char b) - (while (re-search-forward "[^ \t\n]+" nil t) - (save-restriction - (narrow-to-region (match-beginning 0) (match-end 0)) - (goto-char (setq start (point-min))) - (setq prev nil) - (while (not (eobp)) - (unless (eq (setq c (char-charset (following-char))) 'ascii) - (cond - ((eq c prev) - ) - ((null prev) - (setq qstart (or qstart start) - qend (point-max) - qprev c) - (setq prev c)) - (t - ;(rfc2047-encode start (setq start (point)) prev) - (setq prev c)))) - (forward-char 1))) - (when (and (not prev) qstart) - (rfc2047-encode qstart qend qprev) - (setq qstart nil))) - (when qstart - (rfc2047-encode qstart qend qprev) - (setq qstart nil))))) + (let ((words (rfc2047-dissect-region b e)) + beg end current word) + (while (setq word (pop words)) + (if (equal (nth 2 word) current) + (setq beg (nth 0 word)) + (when current + (rfc2047-encode beg end current)) + (setq current (nth 2 word) + beg (nth 0 word) + end (nth 1 word)))) + (when current + (rfc2047-encode beg end current)))) (defun rfc2047-encode-string (string) "Encode words in STRING." @@ -180,9 +180,15 @@ Should be called narrowed to the head of the message." (defun rfc2047-encode (b e charset) "Encode the word in the region with CHARSET." - (let* ((mime-charset (mm-mule-charset-to-mime-charset charset)) - (encoding (cdr (assq mime-charset - rfc2047-charset-encoding-alist))) + (let* ((mime-charset + (or + (coding-system-get + (get-charset-property charset 'prefered-coding-system) + 'mime-charset) + (car (memq charset (find-coding-systems-region b e))))) + (encoding (or (cdr (assq mime-charset + rfc2047-charset-encoding-alist)) + 'B)) (start (concat "=?" (downcase (symbol-name mime-charset)) "?" (downcase (symbol-name encoding)) "?"))) @@ -204,6 +210,10 @@ Should be called narrowed to the head of the message." (insert "?=\n " start) (end-of-line))))) +(defun rfc2047-b-encode-region (b e) + "Encode the header contained in REGION with the B encoding." + (base64-encode-region b e t)) + (defun rfc2047-q-encode-region (b e) "Encode the header contained in REGION with the Q encoding." (save-excursion diff --git a/lisp/score-mode.el b/lisp/score-mode.el index 24c31f6..c1c7158 100644 --- a/lisp/score-mode.el +++ b/lisp/score-mode.el @@ -26,7 +26,6 @@ ;;; Code: (require 'easymenu) -(require 'timezone) (eval-when-compile (require 'cl)) (defvar gnus-score-mode-hook nil @@ -51,6 +50,8 @@ table) "Syntax table used in score-mode buffers.") +(defvar score-mode-coding-system 'binary) + ;;;###autoload (defun gnus-score-mode () "Mode for editing Gnus score files. @@ -81,7 +82,7 @@ This mode is an extended emacs-lisp mode. (defun gnus-score-edit-insert-date () "Insert date in numerical format." (interactive) - (princ (gnus-score-day-number (current-time)) (current-buffer))) + (princ (time-to-day (current-time)) (current-buffer))) (defun gnus-score-pretty-print () "Format the current score file." @@ -98,7 +99,8 @@ This mode is an extended emacs-lisp mode. (interactive) (unless (file-exists-p (file-name-directory (buffer-file-name))) (make-directory (file-name-directory (buffer-file-name)) t)) - (save-buffer) + (let ((coding-system-for-write score-mode-coding-system)) + (save-buffer)) (bury-buffer (current-buffer)) (let ((buf (current-buffer))) (when gnus-score-edit-exit-function @@ -106,11 +108,6 @@ This mode is an extended emacs-lisp mode. (when (eq buf (current-buffer)) (switch-to-buffer (other-buffer (current-buffer)))))) -(defun gnus-score-day-number (time) - (let ((dat (decode-time time))) - (timezone-absolute-from-gregorian - (nth 4 dat) (nth 3 dat) (nth 5 dat)))) - (provide 'score-mode) ;;; score-mode.el ends here diff --git a/lisp/time-date.el b/lisp/time-date.el index cd6f9e9..4f07bbc 100644 --- a/lisp/time-date.el +++ b/lisp/time-date.el @@ -24,42 +24,25 @@ ;;; Code: -(eval-and-compile - (eval - '(if (not (string-match "XEmacs" emacs-version)) - (require 'parse-time) - - (require 'timezone) - (defun parse-time-string (date) - "Convert DATE into time." - (decode-time - (condition-case () - (let* ((d1 (timezone-parse-date date)) - (t1 (timezone-parse-time (aref d1 3)))) - (apply 'encode-time - (mapcar (lambda (el) - (and el (string-to-number el))) - (list - (aref t1 2) (aref t1 1) (aref t1 0) - (aref d1 2) (aref d1 1) (aref d1 0) - (number-to-string - (* 60 (timezone-zone-to-minute (aref d1 4)))))))) - ;; If we get an error, then we just return a 0 time. - (error (list 0 0)))))))) +(require 'parse-time) (defun date-to-time (date) "Convert DATE into time." - (apply 'encode-time (parse-time-string date))) + (condition-case () + (apply 'encode-time (parse-time-string date)) + (error (error "Invalid date: %s" date)))) -(defun time-to-float (time) +(defun time-to-seconds (time) "Convert TIME to a floating point number." (+ (* (car time) 65536.0) - (cadr time))) - -(defun float-to-time (float) - "Convert FLOAT (a floating point number) to an Emacs time structure." - (list (floor float 65536) - (floor (mod float 65536)))) + (cadr time) + (/ (or (caddr time) 0) 1000000.0))) + +(defun seconds-to-time (seconds) + "Convert SECONDS (a floating point number) to an Emacs time structure." + (list (floor seconds 65536) + (floor (mod seconds 65536)) + (floor (* (- seconds (ffloor seconds)) 1000000)))) (defun time-less-p (t1 t2) "Say whether time T1 is less than time T2." diff --git a/texi/ChangeLog b/texi/ChangeLog index fd2879c..f87f6eb 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,1004 +1,24 @@ -1998-08-27 07:29:17 Lars Magne Ingebrigtsen - - * gnus.texi (Mail Folders): Addition. - -1998-08-25 08:06:28 Lars Magne Ingebrigtsen - - * gnus.texi (Posting Styles): Document this-is. - (Virtual Groups): Addition. - -1998-08-18 00:30:05 Lars Magne Ingebrigtsen - - * gnus.texi (Article Hiding): Addition. - -1998-08-16 14:53:45 Lars Magne Ingebrigtsen - - * gnus.texi (NNTP): Reinstated. - (Asynchronous Fetching): No header prefetch. - -1998-08-15 13:01:41 Lars Magne Ingebrigtsen - - * gnus.texi (Summary Score Commands): Change. - -1998-08-14 01:31:36 Simon Josefsson - - * gnus.texi (Posting Styles): New 'body style. - -1998-08-13 21:17:00 Lars Magne Ingebrigtsen - - * gnus.texi (Paging the Article): Addition. - -1998-08-13 00:13:47 Simon Josefsson - - * gnus.texi (Mail Group Commands): Typo. - -1998-08-12 21:28:09 Simon Josefsson - - * gnus.texi (Article Caching): gnus-cacheable-groups. - (Newest Features): remove gnus-cacheable-groups. - -1998-08-12 22:01:12 Lars Magne Ingebrigtsen - - * message.texi (Forwarding): Addition. - -1998-08-11 20:33:53 Justin Zaglio - - * gnus.texi (Group Maintenance): Fix. - -1998-08-11 11:44:20 Lars Magne Ingebrigtsen - - * gnus.texi (Group Maintenance): Fix. - -1998-08-10 08:59:25 Lars Magne Ingebrigtsen - - * gnus.texi (Article Highlighting): Addition. - (Article Fontisizing): Fix. - (Article Hiding): Change. - (Article Hiding): Fix. - -1998-08-09 15:32:24 Lars Magne Ingebrigtsen - - * gnus.texi (Hiding Headers): Fix. - (Article Hiding): Addition. - (Document Groups): Addition. - -1998-08-08 06:06:37 Lars Magne Ingebrigtsen - - * gnus.texi (Fancy Mail Splitting): Change. - -1998-08-06 02:12:04 Lars Magne Ingebrigtsen - - * gnus.texi: De-legalize. - - * message.texi: De-legalize. - - * gnus.texi (Summary Maneuvering): Fix. - -1998-07-21 17:51 Simon Josefsson - - * gnus.texi (Splitting Mail): junk is fancy splitting only - - * gnus.texi (Fancy Mail Splitting): warn about junk - -1998-07-27 02:28:33 Lars Magne Ingebrigtsen - - * gnus.texi (Topic Commands): Fix. - -1998-07-27 02:23:17 Robert Bihlmeyer - - * gnus.texi (Score Decays): Fix. - -Sun Jul 12 04:03:27 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Home Score File): Addition. - -Fri Jul 10 04:26:23 1998 Lars Magne Ingebrigtsen - - * gnus.texi (NNTP): Addition. - -Sat Jul 4 14:24:29 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Gnus Utility Functions): Addition. - -Thu Jul 2 11:37:51 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Posting Styles): Ununcommented. - -Wed Jul 1 17:57:54 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Topic Commands): Addition. - -Tue Jun 30 16:11:27 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Topic Commands): Addition. - -Mon Jun 29 21:46:13 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Article Keymap): Typo. - -Sun Jun 28 17:41:10 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Formatting Fonts): Typo fix. - -Sat Jun 27 04:37:14 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Mail-To-News Gateways): Addition. - (Mail-To-News Gateways): Typo. - -Fri Jun 26 13:33:00 1998 Yoshiki Hayashi - - * gnus.texi (Summary Buffer Lines): Typo fix. - -Fri Jun 26 05:53:22 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Score File Format): Addition. - (Mode Line Formatting): New. - (Summary Buffer Mode Line): Addition. - -Thu Jun 25 11:24:14 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Summary Score Commands): Deletia. - -Wed Jun 24 00:37:32 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Auto Save): Addition. - (Mail-To-News Gateways): Addition. - (NNTP): Addition. - -Wed Jun 3 03:30:47 1998 Lars Magne Ingebrigtsen - - * message.texi (Message Headers): Addition. - - * gnus.texi (Compatibility): Addition. - -Tue May 19 02:44:31 1998 Mike Pullen - - * gnus.texi.orig: Typo fixes. - -Wed Apr 29 21:52:28 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Key Index): Untabified. - (Group Parameters): Fix. - -Sun Apr 26 15:32:45 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Summary Post Commands): Ref to Message. - - * message.texi (Various Message Variables): Deletia. - -Fri Apr 24 16:00:40 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Unread Articles): Typo. - (Summary Buffer Lines): Fix. - (Foreign Groups): Addition. - (Posting Server): Addition. - -Sat Mar 28 08:57:46 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Example Methods): Addition. - -Thu Mar 26 15:47:54 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Limiting): Mention `/ *'. - -Thu Mar 19 13:02:20 1998 Lars Magne Ingebrigtsen - - * gnus.texi (NNTP): Addition. - Removed spurious white space. - -Fri Mar 13 21:05:47 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Quassia Gnus): Fix. - (Agent Expiry): Addition. - -Sun Mar 8 13:56:37 1998 James Troup - - * gnus.texi (Group Highlighting): Removed old example. - -Sun Mar 8 00:19:24 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Group Info): Fix ".". - -Sat Mar 7 17:09:49 1998 Lars Magne Ingebrigtsen - - * gnus.texi: Took direntries out again, since makeinfo doesn't - understand them. - (Agent Expiry): New. - (Quassia Gnus): New. - -Sat Mar 7 16:14:10 1998 Dan Christensen - - * gnus.texi (Group Parameters): Mention add-to-list. - -Sat Feb 28 14:21:12 1998 Lars Magne Ingebrigtsen - - * gnus.texi (NNTP): Addition. - -1998-03-01 Kim-Minh Kaplan - - * gnus.texi (Easy Picons): Removed references to - `gnus-group-display-picons'. - (Hard Picons): Ditto. - -1998-03-01 Kim-Minh Kaplan - - * gnus.texi (Easy Picons): Removed references to - `gnus-group-display-picons'. - (Hard Picons): Ditto. - -Mon Feb 23 18:05:09 1998 Lars Magne Ingebrigtsen - - * gnus.texi: Direntry not handled by Emacs 19.34. - -1998-02-21 SL Baur - - * gnus.texi: Add a direntry field. - * message.texi: Ditto. (Data taken from Emacs 20.2 info/dir). - -Sun Feb 22 03:24:43 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Score File Format): Addition. - -1998-02-18 Jason R Mastaler - - * gnus.texi: Corrected typo. - -Thu Feb 19 02:20:29 1998 Francois Felix Ingrand - - * gnus.texi (Sorting): Fix order of args. - -Sun Feb 15 23:04:02 1998 Lars Magne Ingebrigtsen - - * gnus.texi (NNTP): Change. - -Sat Feb 14 17:46:33 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Virtual Groups): Fix. - (NNTP): Addition. - (Really Various Summary Commands): Addition. - -Fri Feb 13 18:23:19 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Mail Group Commands): Typo. - (NNTP): Addition. - (Mail and Procmail): Addition. - -Mon Feb 9 16:30:30 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Article Date): Addition. - -Sun Feb 8 16:28:35 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Newest Features): Addition. - -Mon Feb 2 19:21:43 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Agent Variables): Addition. - -Sun Feb 1 18:08:45 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Using MIME): Addition. - -Tue Jan 6 07:22:41 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Batching Agents): New. - -1998-01-04 Christoph Wedler - - * gnus.texi (Newest Features): Delete spaces after @end example. - In XEmacs, `texinfo-format-buffer' would bug out. - -Sun Jan 4 12:04:45 1998 Lars Magne Ingebrigtsen - - * gnus.texi (Conformity): Removed GNKSA. - -Sun Dec 14 11:06:23 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Adaptive Scoring): Addition. - -1997-11-26 SL Baur - - * message.texi (Insertion): Fix typo. - (Responses): Ditto. - (Reply): Ditto. - -Wed Nov 26 12:57:00 1997 Lars Magne Ingebrigtsen - - * message.texi (Insertion): Addition. - -Wed Nov 26 12:55:15 1997 Hallvard B. Furuseth - - * message.texi (Insertion): Addition. - -Wed Nov 26 12:36:08 1997 Lars Magne Ingebrigtsen - - * message.texi (Responses): New. - (Appendices): New. - - * gnus.texi (Group Info): Fix. - -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. - -Mon Oct 13 00:08:06 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Agent Commands): Addition. - -Sun Oct 12 16:50:23 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Article Washing): Addition. - (Group Highlighting): New. - (Canceling and Superseding): Addition. - -Wed Oct 1 18:37:55 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Startup Files): Addition. - -Sat Sep 27 09:37:17 1997 Lars Magne Ingebrigtsen - - * message.texi (Sending Variables): Fix. - - * gnus.texi (Choosing Commands): Addition. - -Sat Sep 27 05:56:44 1997 Hallvard B. Furuseth - - * gnus.texi: Various fixes. - -Sat Sep 27 04:24:41 1997 Lars Magne Ingebrigtsen - - * message.texi (Various Commands): Addition. - -Wed Sep 24 02:38:21 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Example Setup): Wrong info. - (SOUP Groups): Addition. - (Contributors): Addition. - -1997-09-22 SL Baur - - * gnus.texi (Finding the Parent): Fix typo. - (NoCeM): Fix typos. - -Tue Sep 23 07:05:48 1997 Lars Magne Ingebrigtsen - - * gnus.texi (NoCeM): Addition. - (Finding the Parent): Addition. - -Mon Sep 22 06:13:00 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Filling In Threads): Addition. - (Finding the Parent): Addition. - -Sun Sep 21 04:35:56 1997 Lars Magne Ingebrigtsen - - * gnus.texi (NNTP): Addition. - (Hiding Headers): Addition. - (Symbolic Prefixes): New. - (Extended Interactive): New. - (Summary Score Commands): Addition. - -Sat Sep 20 20:53:43 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Startup Variables): Addition. - -1997-09-16 SL Baur - - * gnus.texi: Correct typo. - -Wed Sep 17 02:32:56 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Customizing Threading): Broken up into five nodes. - (Article Washing): Addition. - - * message.texi (Various Commands): Add. - -Tue Sep 16 04:04:03 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Example Setup): New. - -Mon Sep 15 23:10:05 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Customizing Threading): Addition. - -Sun Sep 14 21:59:07 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Outgoing Messages): New. - (Score File Format): Note. - (Subscription Methods): Fix. - (Starting Up): Fix. - (Threading): Add. - -Sat Jul 19 23:02:03 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Followups To Yourself): \\(_-_\\)? - -Sat Jul 12 16:29:35 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Picon Configuration): Moved Picons to under XEmacs. - (Smileys): New section. - -Fri Jul 11 11:58:20 1997 Lars Magne Ingebrigtsen - - * gnus.texi (NNTP): Addition. - -Tue Jun 17 23:52:17 1997 Justin Sheehy - - * gnus.texi (Group Parameters): Addition. - -Sun May 25 14:40:17 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Expiring Mail): Addition. - -Sat May 24 05:26:17 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Score File Format): Update. - -Tue May 20 21:56:03 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Document Server Internals): Typo. - -Sun May 18 05:59:24 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Topic Commands): Addition. - -Sun May 11 20:09:24 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Article Hiding): Change. - -Thu May 8 23:48:36 1997 James Troup - - * gnus.texi (Saving Articles): Typo. - -Wed May 7 19:00:48 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Saving Articles): Addition. - -Wed May 7 19:00:43 1997 Mark Boyns - - * gnus.texi (Saving Articles): Addition. - -Thu May 1 14:06:57 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Score File Format): Fix. - -Sun Apr 27 11:11:43 1997 Lars Magne Ingebrigtsen - - * gnus.texi (NNTP): Addition. - -Sat Apr 12 16:51:32 1997 Robert Bihlmeyer +1998-09-06 Mike McEwan - * gnus.texi (Thwarting Email Spam): Addition. + * gnus.texi (Category Syntax): Added doc about agent categories + and download scoring. -Tue Apr 15 16:11:38 1997 Lars Magne Ingebrigtsen +1998-09-05 17:36:14 Lars Magne Ingebrigtsen - * message.texi (Various Message Variables): Addition. + * gnus.texi (Sorting Groups): Change. + (Various Summary Stuff): Addition. - * gnus.texi (Thwarting Email Spam): Addition. +1998-09-04 00:40:07 David S. Goldberg -Sat Apr 12 00:26:47 1997 Francois Felix Ingrand + * gnus.texi (Article Hiding): Verify. - * gnus.texi (NoCeM): Addition. +1998-08-31 11:46:57 Lars Magne Ingebrigtsen -Thu Apr 10 21:25:14 1997 Hrvoje Niksic - - * gnus.texi (Emacs/XEmacs Code): Addition. - -Thu Apr 10 20:45:47 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Group Information): Fix. - -Wed Apr 2 11:48:44 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Sorting): Use total score. - -Tue Apr 1 11:44:57 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Subscription Methods): Addition. - (Group Info): Addition. - (Gnus Utility Functions): New. - (Thwarting Email Spam): Addition. - -Mon Mar 31 16:15:54 1997 Lars Magne Ingebrigtsen - - * message.texi (Various Message Variables): Addition. - -Sun Mar 23 02:16:19 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Thwarting Email Spam): New. - (Unavailable Servers): Fix. - -Wed Mar 19 15:45:17 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Various Summary Stuff): Addition. - (Mail Backend Variables): Addition. - -Tue Mar 18 14:43:32 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Article Washing): Not addition. - -Mon Mar 17 16:15:54 1997 Philippe Schnoebelen - - * Makefile (install): Install properly. - -Fri Mar 14 21:00:33 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Group Parameters): Addition. - (Expiring Mail): Addition. - -Wed Mar 12 06:57:14 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Various Various): Addition. - -Sat Mar 8 03:41:47 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Group Parameters): Added example. - (Duplicates): Fix. - -Fri Mar 7 10:49:43 1997 Lars Magne Ingebrigtsen - - * Makefile: New "install" target. - -Thu Mar 6 08:01:37 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Mail and Procmail): Fix. - -Sun Mar 2 02:08:40 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Startup Files): Addition. - (Score File Format): Fix. - -Fri Feb 28 23:23:31 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Archived Messages): Clarify. - (Fuzzy Matching): New. - -Mon Feb 24 23:41:57 1997 Lars Magne Ingebrigtsen - - * message.texi (Compatibility): New. - -Thu Feb 20 03:29:17 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Foreign Groups): Addition. - -Wed Feb 19 02:57:51 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Server Variables): New. - -Sun Feb 16 15:43:34 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Mail Backend Variables): Fix. - - * message.texi (Various Message Variables): Addition. - -Mon Feb 10 07:18:16 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Article Commands): Addition. - -Mon Feb 3 19:59:10 1997 Paul Franklin - - * gnus-group.el (gnus-group-edit-group): Allow editing of bad - groups. - -Wed Feb 5 02:00:46 1997 Lars Magne Ingebrigtsen - - * message.texi (Mail Variables): Change. - -Tue Feb 4 02:33:31 1997 Lars Magne Ingebrigtsen - - * message.texi (Mail Aliases): New. - - * gnus.texi (Splitting Mail): Addition. - -Mon Feb 3 07:31:47 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Mode Lines): Addition. - -Mon Jan 27 17:51:29 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Highlighting and Menus): Removed - `gnus-display-type'. - -Sat Jan 25 08:09:30 1997 Lars Magne Ingebrigtsen - - * gnus.texi (The Active File): Addition. - -Fri Jan 24 05:07:28 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Summary Mail Commands): Addition. - (Required Backend Functions): Deletia. - (Article Washing): Addition. - (Summary Mail Commands): Addition. - -Mon Jan 20 22:19:40 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Followups To Yourself): Fix. - -Fri Jan 17 00:55:51 1997 Lars Magne Ingebrigtsen - - * gnus.texi (NoCeM): Update. - -Wed Jan 15 02:23:03 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Mail Group Commands): Fix. - -Tue Jan 7 09:36:36 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Summary Buffer Lines): Correction. - -Mon Jan 6 22:49:12 1997 Lars Magne Ingebrigtsen - - * gnus.texi (NoCeM): Addition. - -Fri Jan 3 18:13:02 1997 Lars Magne Ingebrigtsen - - * message.texi (Various Commands): Addition. - -Thu Jan 2 16:12:27 1997 Lars Magne Ingebrigtsen - - * gnus.texi (Optional Backend Functions): Fix. - -Mon Dec 16 13:53:28 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Exiting the Summary Buffer): Update. - -Fri Dec 13 01:04:41 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Limiting): Addition. - -Sat Dec 7 21:10:23 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Example Methods): Addition. - -Fri Dec 6 12:38:14 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Group Parameters): Update. - -1996-11-30 Lars Magne Ingebrigtsen - - * gnus.texi (Terminology): Addition. - -Wed Nov 27 03:13:05 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Selecting a Group): Addition. - -Tue Nov 26 12:42:47 1996 Martin Buchholz - - * message.texi: Typo fixes and stuff. - -Thu Nov 21 17:45:57 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Canceling and Superseding): Fix. - -Wed Nov 20 15:42:36 1996 Lars Magne Ingebrigtsen - - * gnus.texi (New Groups): Addition. - (Summary Sorting): Addition. - -Tue Nov 19 20:54:16 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Scanning New Messages): Addition. - -Sat Nov 9 06:04:22 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Group Parameters): Addition. - -Fri Nov 8 04:01:06 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Article Fontisizing): New. - (Fancy Mail Splitting): Addition. - (Summary Post Commands): Addition. - (Mail Spool): Addition. - (Server Commands): Addition. - (Fancy Mail Splitting): Addition. - -Wed Nov 6 06:39:44 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Misc Article): Addition. - (Emacsen): Updated. - -Wed Nov 6 03:52:05 1996 C. R. Oldham - - * Makefile (.texi.dvi): Fix rule. - -Tue Nov 5 10:45:39 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Other Decode Variables): Addition. - (Mail-like Backends): New. - -Tue Nov 5 06:41:46 1996 Hrvoje Niksic - - * gnus.texi (Score File Format): Added warning. - -Mon Oct 28 15:50:08 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Startup Variables): Addition. - -Fri Oct 25 09:04:59 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Summary Mail Commands): Addition. - -Wed Oct 23 08:28:29 1996 Hrvoje Niksic - - * gnus.texi (Fancy Mail Splitting): Removed trailing garbage. - -Tue Oct 22 07:36:02 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Converting Kill Files): New. - -Sat Oct 19 07:17:28 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Saving Articles): Addition. - - * message.texi (Various Message Variables): Addition. - -Thu Oct 17 06:53:04 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Contributors): Added names. - -Fri Oct 11 12:38:59 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Adaptive Scoring): Addition. - -Tue Oct 8 13:16:41 1996 Lars Magne Ingebrigtsen - - * Makefile (all): Make custom. - -Wed Oct 2 01:32:49 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Group Timestamps): New. - -Tue Oct 1 01:34:45 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Expiring Mail): Addition. - (Group Line Specification): Addition. - -Sat Sep 28 21:36:40 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Foreign Groups): Addition. - -Mon Sep 23 22:17:44 1996 Lars Magne Ingebrigtsen - - * gnus.texi (The Summary Buffer): Addition. - -Mon Sep 23 18:25:38 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Thread Commands): Correction. - (Group Information): Correction. - -Sat Sep 21 08:11:43 1996 Lars Magne Ingebrigtsen - - * gnus.texi (New Groups): Split into three nodes. - (Group Parameters): Shortened. - (Browse Foreign Server): Corrected. - -Thu Sep 19 18:45:15 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Mail and Procmail): Addition. - -Wed Sep 18 07:33:11 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Other Marks): Edited. - (The Manual): New. - (Contributors): Updated. - (Asynchronous Fetching): Addition. - (New Features): Split. - ((ding) Gnus): Renamed. - (September Gnus): New. - (Red Gnus): New, - (Undo): New. - -Thu Sep 12 23:55:53 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Archived Messages): Fix. - -Sat Sep 7 12:14:23 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Various Various): Addition. - -Fri Sep 6 07:57:26 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Startup Files): Addition. - (Splitting Mail): Addition. - (Sorting Groups): Addition. - (Topic Sorting): New. - (Really Various Summary Commands): Deletia. - (Summary Generation Commands): New. - (Setting Process Marks): Addition. - -Thu Sep 5 07:34:27 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Terminology): Addition. - (Web Searches): Fix. - (Windows Configuration): Addition. - -Sun Sep 1 11:07:09 1996 Lars Magne Ingebrigtsen - - * gnus.texi (XEmacs Enhancements): New. - -Sat Aug 31 02:55:50 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Washing Mail): Addition. - -Fri Aug 30 09:10:17 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Washing Mail): New. - (Fancy Mail Splitting): Change. - -Fri Aug 30 00:21:59 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Foreign Groups): Change. - -Thu Aug 29 23:51:45 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Daemons): Addition. - -Thu Aug 29 02:09:24 1996 François Pinard - - * gnus.texi (Web Searches): Typo. - -Wed Aug 28 08:21:36 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Server Commands): Addition. - (Really Various Summary Commands): Addition. - -Mon Aug 26 18:29:23 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Optional Backend Functions): Deletia. - (Asynchronous Fetching): Deletia and addition. - -Sun Aug 25 23:39:03 1996 Lars Magne Ingebrigtsen - - * gnus.texi: Include the version number. - -Sun Aug 25 21:31:33 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Really Various Summary Commands): Addition. - -Sat Aug 17 22:24:34 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Startup Files): Addition. - (Anything Groups): Addition. - -Thu Aug 22 17:27:31 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Adaptive Scoring): Addition. - (Adaptive Scoring): Addition. - -Mon Aug 19 00:30:07 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Fancy Mail Splitting): Addition. - (Splitting Mail): Addition. - (Group Parameters): Addition. - (Topic Variables): Addition. - (Mail Group Commands): Addition. - (Group Information): Addition. - (Article Washing): Addition. - -Sun Aug 18 18:06:49 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Web Searches): Change and addition. - -Sat Aug 17 22:24:34 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Startup Files): Addition. - (Anything Groups): Addition. - -Thu Aug 15 17:59:12 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Followups To Yourself): Addition. - (Setting Process Marks): Addition. - (Process/Prefix): Addition. - (Startup Files): Addition. - (Mail-To-News Gateways): New. - -Wed Aug 14 15:02:14 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Home Score File): Fix. - (Various Various): New. - -Tue Aug 13 10:38:47 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Error Messaging): New. - (Mail Backend Variables): Fix. - (Foreign Groups): Added references. - (Sorting Groups): Addition. - -Sun Aug 11 02:52:37 1996 Lars Magne Ingebrigtsen - - * gnus.texi (User-Defined Specs): Correction. - (Unavailable Servers): Addition. - (Moderation): New. - (Summary Mail Commands): Addition. - (Crosspost Handling): Addition. - -Sat Aug 10 00:13:39 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Summary Buffer Lines): Correction. - (Top): Name fix. - (Compilation ): Addition. + * gnus.texi (Mail Folders): Addition. (Group Parameters): Addition. - (Troubleshooting): Addition. + (MIME Commands): New. -Fri Aug 9 07:17:59 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Selecting a Group): Addition. - (Score Decays): New. - (Score File Format): Addition. - (Changing Servers): Addition. - (Selecting a Group): Addition. - (Really Various Summary Commands): Addition. - -Thu Aug 8 05:39:31 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Read Articles): Addition. - (Foreign Groups): Addition. - (User-Defined Specs): Separated. - (Formatting Fonts): Ditto. - (Advanced Formatting): New. - (Formatting Basics): Addition. - (Formatting Variables): Split. - -Wed Aug 7 22:00:56 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Hooking New Backends Into Gnus): New node. - -Wed Aug 7 01:02:08 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Setting Marks): Addition. - (Formatting Variables): Addition. - -Mon Aug 5 20:20:42 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Formatting Variables): Addition. - -Sun Aug 4 07:15:28 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Score File Format): Addition. - (Adaptive Scoring): Addition. - -Sat Aug 3 17:35:36 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Group Parameters): Addition. - (Home Score File): New. - (Topic Parameters): New. - -Wed Jul 31 15:34:12 1996 Lars Magne Ingebrigtsen - - * gnus.texi (are): Fix. - -Wed Jul 31 15:32:57 1996 David S. Goldberg - - * gnus.texi (buffer-name): Addition. - -Fri Aug 2 00:32:39 1996 Lars Magne Ingebrigtsen - - * gnus.texi (Pick and Read): Addition. - (Article Hiding): Addition. - (Article Signature): Made into own node. - -Thu Aug 1 00:25:41 1996 Lars Magne Ingebrigtsen - - * message.texi (Wide Reply): Addition. - (Bouncing): Addition. - - * gnus.texi (Crosspost Handling): Made into own node. - (Duplicate Suppression): New. - (Document Server Internals): New. - (Changing Servers): New. - -Wed Jul 31 15:37:44 1996 Lars Magne Ingebrigtsen - - * gnus.texi: Fix +1998-08-27 07:29:17 Lars Magne Ingebrigtsen -Mon Jul 29 10:12:24 1996 Lars Magne Ingebrigtsen + * gnus.texi (Mail Folders): Addition. - * gnus.texi (Misc Article): Addition. - (Advanced Scoring Tips): New. - (Advanced Scoring Example): New. - (Advanced Scoring Syntax): New. - (Advanced Scoring): New. diff --git a/texi/gnus.texi b/texi/gnus.texi index 0a6de64..b5e10b1 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Gnus 5.6.43 Manual +@settitle Pterodactyl Gnus 0.18 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -318,7 +318,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Gnus 5.6.43 Manual +@title Pterodactyl Gnus 0.18 Manual @author by Lars Magne Ingebrigtsen @page @@ -354,7 +354,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 Gnus 5.6.43. +This manual corresponds to Pterodactyl Gnus 0.18. @end ifinfo @@ -2120,6 +2120,11 @@ are arbitrary comments on the group. They are currently ignored by Gnus, but provide a place for you to store information on particular groups. +@item charset +Elements that look like @code{(charset . iso-8859-1)} will make +@code{iso-8859-1} the default charset; that is, the charset that will be +used for all articles that do not specify a charset. + @item @var{(variable form)} You can use the group parameters to set variables local to the group you are entering. If you want to turn threading off in @samp{news.answers}, @@ -2335,7 +2340,11 @@ Sort the group buffer alphabetically by backend name @end table -When given a prefix, all these commands will sort in reverse order. +All the commands below obeys the process/prefix convention +(@pxref{Process/Prefix}). + +When given a symbolic prefix (@pxref{Symbolic Prefixes}), all these +commands will sort in reverse order. You can also sort a subset of the groups: @@ -2343,38 +2352,38 @@ You can also sort a subset of the groups: @item G P a @kindex G P a (Group) @findex gnus-group-sort-selected-groups-by-alphabet -Sort the process/prefixed groups in the group buffer alphabetically by -group name (@code{gnus-group-sort-selected-groups-by-alphabet}). +Sort the groups alphabetically by group name +(@code{gnus-group-sort-selected-groups-by-alphabet}). @item G P u @kindex G P u (Group) @findex gnus-group-sort-selected-groups-by-unread -Sort the process/prefixed groups in the group buffer by the number of -unread articles (@code{gnus-group-sort-selected-groups-by-unread}). +Sort the groups by the number of unread articles +(@code{gnus-group-sort-selected-groups-by-unread}). @item G P l @kindex G P l (Group) @findex gnus-group-sort-selected-groups-by-level -Sort the process/prefixed groups in the group buffer by group level +Sort the groups by group level (@code{gnus-group-sort-selected-groups-by-level}). @item G P v @kindex G P v (Group) @findex gnus-group-sort-selected-groups-by-score -Sort the process/prefixed groups in the group buffer by group score +Sort the groups by group score (@code{gnus-group-sort-selected-groups-by-score}). @xref{Group Score}. @item G P r @kindex G P r (Group) @findex gnus-group-sort-selected-groups-by-rank -Sort the process/prefixed groups in the group buffer by group rank +Sort the groups by group rank (@code{gnus-group-sort-selected-groups-by-rank}). @xref{Group Score}. @item G P m @kindex G P m (Group) @findex gnus-group-sort-selected-groups-by-method -Sort the process/prefixed groups in the group buffer alphabetically by -backend name (@code{gnus-group-sort-selected-groups-by-method}). +Sort the groups alphabetically by backend name +(@code{gnus-group-sort-selected-groups-by-method}). @end table @@ -3193,6 +3202,7 @@ You can have as many summary buffers open as you wish. * Saving Articles:: Ways of customizing article saving. * Decoding Articles:: Gnus can treat series of (uu)encoded articles. * Article Treatment:: The article buffer can be mangled at will. +* MIME Commands:: Doing MIMEy things with the articles. * Article Commands:: Doing various things with the article buffer. * Summary Sorting:: Sorting the summary buffer in various ways. * Finding the Parent:: No child support? Get the parent. @@ -4914,10 +4924,7 @@ The default is 4. @item gnus-parse-headers-hook @vindex gnus-parse-headers-hook -Hook run before parsing any headers. The default value is -@code{(gnus-decode-rfc1522)}, which means that QPized headers will be -slightly decoded in a hackish way. This is likely to change in the -future when Gnus becomes @sc{MIME}ified. +Hook run before parsing any headers. @item gnus-alter-header-function @vindex gnus-alter-header-function @@ -6289,7 +6296,22 @@ Signature}. @vindex gnus-article-hide-pgp-hook Hide @sc{pgp} signatures (@code{gnus-article-hide-pgp}). The @code{gnus-article-hide-pgp-hook} hook will be run after a @sc{pgp} -signature has been hidden. +signature has been hidden. For example, to automatically verify +articles that have signatures in them do: +@lisp +;;; Hide pgp cruft if any. + +(add-hook 'gnus-article-display-hook 'gnus-article-hide-pgp) + +;;; After hiding pgp, verify the message; +;;; only happens if pgp signature is found. + +(add-hook 'gnus-article-hide-pgp-hook + (lambda () + (save-excursion + (set-buffer gnus-original-article-buffer) + (mc-verify)))) +@end lisp @item W W P @kindex W W P (Summary) @@ -6759,6 +6781,31 @@ the regular expression @samp{^---*Forwarded article}, then it isn't a signature after all. +@node MIME Commands +@section MIME Commands +@cindex MIME decoding + +@table @kbd +@item W M w +@kindex W M w (Summary) +Decode RFC2047-encoded words in the article headers +(@code{gnus-article-decode-mime-words}). + +@item W M c +@kindex W M c (Summary) +Decode encoded article bodies as well as charsets +(@code{gnus-article-decode-charset}). + +This command looks in the @code{Content-Type} header to determine the +charset. If there is no such header in the article, you can give it a +prefix, which will prompt for the charset to decode as. In regional +groups where people post using some common encoding (but do not include +MIME headers), you can set the @code{charset} group/topic parameter to +the required charset (@pxref{Group Parameters}). + +@end table + + @node Article Commands @section Article Commands @@ -7322,6 +7369,11 @@ It is called after the summary buffer has been generated. You might use it to, for instance, highlight lines or modify the look of the buffer in some other ungodly manner. I don't care. +@vindex gnus-summary-prepared-hook +@item gnus-summary-prepared-hook +A hook called as the very last thing after the summary buffer has been +generated. + @vindex gnus-summary-ignore-duplicates @item gnus-summary-ignore-duplicates When Gnus discovers two articles that have the same @code{Message-ID}, @@ -10419,6 +10471,12 @@ your @file{.emacs} file: (add-hook 'nnfolder-save-buffer-hook 'turn-off-backup) @end lisp +@item nnfolder-delete-mail-hook +@vindex nnfolder-delete-mail-hook +Hook run in a buffer narrowed to the message that is to be deleted. +This function can be used to copy the message to somewhere else, or to +extract some information from it before removing it. + @end table @@ -11506,11 +11564,21 @@ are eligible for downloading; and @item a score rule which (generally) gives you a finer granularity when deciding what articles to download. (Note that this @dfn{download -score} is wholly unrelated to normal scores.) +score} is not necessarily related to normal scores.) @end enumerate -A predicate consists of predicates with logical operators sprinkled in -between. +A predicate in its simplest form can be a single predicate such as +@code{true} or @code{false}. These two will download every available +article or nothing respectively. In the case of these two special +predicates an additional score rule is superfluous. + +Predicates of @code{high} or @code{low} download articles in respect of +their scores in relationship to @code{gnus-agent-high-score} and +@code{gnus-agent-low-score} as descibed below. + +To gain even finer control of what is to be regarded eligible for +download a predicate can consist of a number of predicates with logical +operators sprinkled in between. Perhaps some examples are in order. @@ -11578,14 +11646,186 @@ to know: The functions are called with no parameters, but the @code{gnus-headers} and @code{gnus-score} dynamic variables are bound to useful values. +For example, you could decide that you don't want to download articles +that were posted more than a certain number of days ago (e.g. posted +more than @code{gnus-agent-expire-days} ago) you might write a function +something along the lines of the following: + +@lisp +(defun my-article-old-p () + "Say whether an article is old." + (< (time-to-day (date-to-time (mail-header-date gnus-headers))) + (- (time-to-day (current-time)) gnus-agent-expire-days))) +@end lisp + +with the predicate then defined as: + +@lisp +(not my-article-old-p) +@end lisp + +or you could append your predicate to the predefined +@code{gnus-category-predicate-alist} in your @file{~/.gnus.el} or +wherever. (Note: this would have to be at a point *after* +@code{gnus-agent} has been loaded via @code{(gnus-agentize)}) + +@lisp +(defvar gnus-category-predicate-alist + (append gnus-category-predicate-alist + '((old . my-article-old-p)))) +@end lisp + +and simply specify your predicate as: + +@lisp +(not old) +@end lisp + +If/when using something like the above, be aware that there are many +misconfigured systems/mailers out there and so an article's date is not +always a reliable indication of when it was posted. Hell, some people +just don't give a damm. + + +The above predicates apply to *all* the groups which belong to the +category. However, if you wish to have a specific predicate for an +individual group within a category, or you're just too lazy to set up a +new category, you can enter a group's individual predicate in it's group +parameters like so: + +@lisp +(agent-predicate . short) +@end lisp + +This is the group parameter equivalent of the agent category +default. Note that when specifying a single word predicate like this, +the @code{agent-predicate} specification must be in dotted pair +notation. + +The equivalent of the longer example from above would be: + +@lisp +(agent-predicate or high (and (not low) (not long))) +@end lisp + +The outer parenthesis required in the category specification are not +entered here as, not being in dotted pair notation, the value of the +predicate is assumed to be a list. + + Now, the syntax of the download score is the same as the syntax of normal score files, except that all elements that require actually seeing the article itself are verboten. This means that only the -following headers can be scored on: @code{From}, @code{Subject}, -@code{Date}, @code{Xref}, @code{Lines}, @code{Chars}, @code{Message-ID}, -and @code{References}. +following headers can be scored on: @code{Subject}, @code{From}, +@code{Date}, @code{Message-ID}, @code{References}, @code{Chars}, +@code{Lines}, and @code{Xref}. + +As with predicates, the specification of the @code{download score rule} +to use in respect of a group can be in either the category definition if +it's to be applicable to all groups in therein, or a group's parameters +if it's to be specific to that group. + +In both of these places the @code{download score rule} can take one of +three forms: + +@table @code +@enumerate +@item +Score rule + +This has the same syntax as a normal gnus score file except only a +subset of scoring keywords are available as mentioned above. + +example: + +@itemize @bullet +@item +Category specification + +@lisp +(("from" + ("Lars Ingebrigtsen" 1000000 nil s)) +("lines" + (500 -100 nil <))) +@end lisp + +@item +Group Parameter specification + +@lisp +(agent-score ("from" + ("Lars Ingebrigtsen" 1000000 nil s)) + ("lines" + (500 -100 nil <))) +@end lisp + +Again, note the omission of the outermost parenthesis here. +@end itemize + +@item +Agent score file + +These score files must *only* contain the permitted scoring keywords +stated above. + +example: + +@itemize @bullet +@item +Category specification + +@lisp +("~/News/agent.SCORE") +@end lisp + +or perhaps + +@lisp +("~/News/agent.SCORE" "~/News/agent.group.SCORE") +@end lisp +@item +Group Parameter specification +@lisp +(agent-score "~/News/agent.SCORE") +@end lisp + +Additional score files can be specified as above. Need I say anything +about parenthesis. +@end itemize + +@item +Use @code{normal} score files + +If you dont want to maintain two sets of scoring rules for a group, and +your desired @code{downloading} criteria for a group are the same as your +@code{reading} criteria then you can tell the agent to refer to your +@code{normal} score files when deciding what to download. + +These directives in either the category definition or a group's +parameters will cause the agent to read in all the applicable score +files for a group, *filtering out* those those sections that do not +relate to one of the permitted subset of scoring keywords. + +@itemize @bullet +@item +Category Specification + +@lisp +file +@end lisp + +@item +Group Parameter specification + +@lisp +(agent-score . file) +@end lisp +@end itemize +@end enumerate +@end table + @node The Category Buffer @subsubsection The Category Buffer @@ -14352,7 +14592,8 @@ Do highlights in the group buffer. @item summary-highlight Do highlights in the summary buffer. @item article-highlight -Do highlights in the article buffer. +Do highlights according to @code{gnus-article-display-hook} in the +article buffer. @item highlight Turn on highlighting in all buffers. @item group-menu @@ -15654,8 +15895,8 @@ We do have some breaches to this one. @table @emph @item MIME -Gnus does no MIME handling, and this standard-to-be seems to think that -MIME is the bees' knees, so we have major breakage here. +Gnus does not yet fully handle MIME, and this standard-to-be seems to +think that MIME is the bees' knees, so we have major breakage here. @item X-Newsreader This is considered to be a ``vanity header'', while I consider it to be @@ -15665,6 +15906,13 @@ those for posting articles. I would not have known that if it wasn't for the @code{X-Newsreader} header. @end table +@item USEFOR +@cindex USEFOR +USEFOR is an IETF working group writing a successor to RFC 1036, based +on Son-of-RFC 1036. They have produced a number of drafts proposing +various changes to the format of news articles. The Gnus towers will +look into implementing the changes when the draft is accepted as an RFC. + @end table If you ever notice Gnus acting non-compliant with regards to the texts @@ -15684,13 +15932,10 @@ Gnus should work on : @itemize @bullet @item -Emacs 19.32 and up. - -@item -XEmacs 19.14 and up. +Emacs 20.2 and up. @item -Mule versions based on Emacs 19.32 and up. +XEmacs 20.4 and up. @end itemize @@ -17859,6 +18104,9 @@ gnus-fetch-group and friends should exit Gnus when the user exits the group. @item +The jingle is only played on the second invocation of Gnus. + +@item Solve the halting problem. @c TODO diff --git a/texi/message.texi b/texi/message.texi index ece5eca..e81be33 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Message 5.6.43 Manual +@settitle Pterodactyl Message 0.18 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -42,7 +42,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Message 5.6.43 Manual +@title Pterodactyl Message 0.18 Manual @author by Lars Magne Ingebrigtsen @page @@ -83,9 +83,9 @@ Message mode buffers. * Key Index:: List of Message mode keys. @end menu -This manual corresponds to Message 5.6.43. Message is distributed with -the Gnus distribution bearing the same version number as this manual -has. +This manual corresponds to Pterodactyl Message 0.18. Message is +distributed with the Gnus distribution bearing the same version number +as this manual has. @node Interface