From 38e587f56b58092757d2313a12a43e468809fde9 Mon Sep 17 00:00:00 2001 From: ichikawa Date: Sun, 30 Aug 1998 05:53:51 +0000 Subject: [PATCH] Sync up with pgnus-0.6. --- ChangeLog | 12 +++++++ GNUS-NEWS | 100 ---------------------------------------------------- Makefile.in | 6 ++-- lisp/ChangeLog | 78 ++++++++++++++++++++++++++++++++++++---- lisp/gnus-agent.el | 18 +++++----- lisp/gnus-art.el | 42 +++++++++++++++++++--- lisp/gnus-cache.el | 2 +- lisp/gnus-dup.el | 2 +- lisp/gnus-group.el | 2 +- lisp/gnus-nocem.el | 6 ++-- lisp/gnus-score.el | 4 +-- lisp/gnus-soup.el | 4 +-- lisp/gnus-start.el | 4 +-- lisp/gnus-sum.el | 21 +++++++---- lisp/gnus-util.el | 22 ++++++++---- lisp/gnus-xmas.el | 3 +- lisp/gnus.el | 23 ++++++++---- lisp/lpath.el | 14 +++++--- lisp/message.el | 9 ++--- lisp/nndraft.el | 2 +- lisp/nneething.el | 4 +-- lisp/nnfolder.el | 3 +- lisp/nngateway.el | 2 +- lisp/nnheader.el | 59 ++++++------------------------- lisp/nnkiboze.el | 6 ++-- lisp/nnmail.el | 12 +++---- lisp/nnmh.el | 6 ++-- lisp/nnml.el | 2 +- lisp/nnsoup.el | 2 +- lisp/nntp.el | 2 +- lisp/nnweb.el | 6 ++-- texi/gnus.texi | 6 ++-- texi/message.texi | 10 +++--- 33 files changed, 248 insertions(+), 246 deletions(-) diff --git a/ChangeLog b/ChangeLog index c5976e8..eaec24d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,17 @@ 1998-08-30 Tatsuya Ichikawa + * New branch ... pgnus-ichikawa + + * lisp/gnus.el (gnus-original-version-number) + (gnus-original-product-name) : New variable. + + * lisp/gnus.el (gnus-version-number): Update to 6.0.01. + Third version number 0x means Original gnus's status in beta version. + + * Sync up with Pterodactyl Gnus 0.6. + +1998-08-30 Tatsuya Ichikawa + * lisp/gnus-agent.el (gnus-agent-fetch-headers): Bug Fix. When add a new newsgroup , gnus-agent cannot fetch articles. 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..82fd420 100644 --- a/Makefile.in +++ b/Makefile.in @@ -5,7 +5,7 @@ srcdir = @srcdir@ @SET_MAKE@ EMACS = @EMACS@ -XEMACS = xemacs +XEMACS = xemacs21 all: lick info @@ -35,7 +35,7 @@ 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 d06cf06..855143a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,67 @@ + Sun Aug 30 00:59:15 1998 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.6 is released. + +1998-08-30 00:36:28 Lars Magne Ingebrigtsen + + * nnheader.el (fboundp): Protect code-coding-string. + + * gnus-art.el (gnus-article-mode): Check that set-buffer-multibyte + is available. + +Sat Aug 29 23:24:31 1998 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.5 is released. + +1998-08-29 22:38:35 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-article-mode): Make article buffer multibyte. + (gnus-hack-decode-rfc1522): Removed. + + * mm-decode.el (mm-charset-coding-system-alist): Check better. + +Sat Aug 29 22:20:39 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v0.4 is released. + +1998-08-29 20:53:29 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-article-decode-mime-words): New command and + keystroke. + + * qp.el (quoted-printable-decode-region): Don't use hexl. + + * gnus-xmas.el (gnus-xmas-logo-color-style): Changed to dino. + + * gnus-sum.el (gnus-parse-headers-hook): Default to nil. + (gnus-structured-field-decoder): Removed. + (gnus-unstructured-field-decoder): Ditto. + + * mm-decode.el: New file. + + * qp.el: New file. + + * gnus-art.el (article-mime-decode-quoted-printable): Removed. + + * gnus-ems.el (fboundp): Removed gnus-split-string. + + * gnus.el (gnus-splash-face): Doc fix. + + * gnus-ems.el (fboundp): Don't bind mail-file-babyl-p. + + * gnus-art.el (article-mime-decode-quoted-printable): Don't use + hexl. + + * nnheader.el (nnheader-temp-write): Removed. + +Sat Aug 29 20:34:17 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v0.3 is released. + +Sat Aug 29 19:32:06 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v0.2 is released. + Sat Aug 29 19:17:19 1998 Lars Magne Ingebrigtsen * gnus.el: Gnus v5.6.42 is released. @@ -242,7 +306,7 @@ Sun Aug 16 18:59:41 1998 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-remove-thread): Didn't work with sparse threads. -1998-08-14 François Pinard +1998-08-14 Fran$BmP(Bis Pinard * nndoc.el (nndoc-generate-mime-parts-head): Use original Subject, Message-ID, and References in fully blown articles. @@ -409,7 +473,7 @@ Sun Aug 9 19:37:40 1998 Lars Magne Ingebrigtsen * gnus.el: Gnus v5.6.31 is released. -1998-08-09 François Pinard +1998-08-09 Fran$BmP(Bis Pinard * nndoc.el: Split MIME multipart messages, maybe recursively. (nndoc-mime-parts-type-p, nndoc-transform-mime-parts, @@ -550,7 +614,7 @@ Tue Aug 4 05:25:01 1998 Lars Magne Ingebrigtsen * gnus-group.el (gnus-group-read-ephemeral-group): Make the server unique. -1998-07-28 François Pinard +1998-07-28 Fran$BmP(Bis Pinard * gnus-uu.el (gnus-uu-reginize-string): Consider the number of parts as part of the fixed subject, instead of a wild quantity. @@ -733,7 +797,7 @@ 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 +Fri Jul 10 03:03:48 1998 Fran$BmP(Bis Pinard * gnus-sum.el (gnus-summary-respool-trace): New command and keystroke. @@ -793,7 +857,7 @@ 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 +Wed Jul 1 12:24:06 1998 Fran$BmP(Bis Pinard * gnus-util.el (gnus-delete-if): Would do the opposite. @@ -1806,7 +1870,7 @@ 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 +Sat Feb 28 08:03:23 1998 Fran$BmP(Bis Pinard * gnus: configure'd. @@ -2160,7 +2224,7 @@ Fri Feb 13 19:01:19 1998 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-summary-exit): Call purging function. -Fri Feb 13 18:59:16 1998 François Pinard +Fri Feb 13 18:59:16 1998 Fran$BmP(Bis Pinard * nnmail.el (nnmail-get-new-mail): Don't clear split-history. (nnmail-purge-split-history): New function. diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index c170e7e..a605706 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -127,7 +127,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 +427,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 +537,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)) @@ -662,7 +662,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,7 +745,7 @@ 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)))) @@ -844,9 +844,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)) @@ -1091,7 +1091,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) diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 6ce4290..3b450d3 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -275,7 +275,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")) @@ -958,6 +957,18 @@ characters to translate to." (process-send-region "article-x-face" beg end) (process-send-eof "article-x-face")))))))))) +(defun gnus-article-decode-mime-words () + "Decode all MIME-encoded words in the article." + (interactive) + (save-excursion + (let ((inhibit-point-motion-hooks t) + buffer-read-only) + (mm-decode-words-region (point-min) (point-max))))) + +(defalias 'gnus-decode-rfc1522 'gnus-article-decode-rfc1522) + +;; +;; Semi-gnus specific (defun gnus-article-decode-rfc1522 () "Decode MIME encoded-words in header fields." (let (buffer-read-only) @@ -966,6 +977,27 @@ characters to translate to." default-mime-charset))) (eword-decode-header charset) ))) +;; +;; Semi-gnus specific + +(defun article-de-quoted-unreadable (&optional force) + "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 ((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) + (quoted-printable-decode-region (point) (point-max)))))) + +(defun article-mime-decode-quoted-printable-buffer () + "Decode Quoted-Printable in the current buffer." + (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. @@ -1162,7 +1194,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 @@ -1907,6 +1939,8 @@ commands: (buffer-disable-undo (current-buffer)) (setq buffer-read-only t) (set-syntax-table gnus-article-mode-syntax-table) + (when (fboundp 'set-buffer-multibyte) + (set-buffer-multibyte t)) (gnus-run-hooks 'gnus-article-mode-hook)) (defun gnus-article-setup-buffer () @@ -2160,7 +2194,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. @@ -3097,7 +3131,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 f28662b..45acb20 100644 --- a/lisp/gnus-cache.el +++ b/lisp/gnus-cache.el @@ -602,7 +602,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-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-group.el b/lisp/gnus-group.el index 612be02..6eddfca 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -2155,7 +2155,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))))) diff --git a/lisp/gnus-nocem.el b/lisp/gnus-nocem.el index d678531..66974ee 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 @@ -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 () diff --git a/lisp/gnus-score.el b/lisp/gnus-score.el index 8cff072..f2c3b3a 100644 --- a/lisp/gnus-score.el +++ b/lisp/gnus-score.el @@ -2209,7 +2209,7 @@ 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))) (data gnus-newsgroup-data) @@ -2625,7 +2625,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) 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 95a3527..4081d3b 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -2528,8 +2528,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 08c7ac0..19d0f44 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -1405,6 +1405,9 @@ 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) + (gnus-define-keys (gnus-summary-wash-time-map "T" gnus-summary-wash-map) "z" gnus-article-date-ut "u" gnus-article-date-ut @@ -1504,6 +1507,9 @@ 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] + ["QP" gnus-article-de-quoted-unreadable t]) ("Date" ["Local" gnus-article-date-local t] ["ISO8601" gnus-article-date-iso8601 t] @@ -4569,9 +4575,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 -- @@ -6558,7 +6565,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. @@ -7363,7 +7370,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 @@ -7381,7 +7388,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) @@ -8195,7 +8202,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) diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index 38e6bce..b6c04db 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -109,25 +109,33 @@ (when (gnus-buffer-exists-p buf) (kill-buffer buf)))) -(if (fboundp 'point-at-bol) - (fset 'gnus-point-at-bol 'point-at-bol) +(cond + ((fboundp 'point-at-bol) + (fset 'gnus-point-at-bol 'point-at-bol)) + ((fboundp 'line-beginning-position) + (fset 'gnus-point-at-bol 'line-beginning-position)) + (t (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) + (goto-char p)))))) + +(cond + ((fboundp 'point-at-eol) + (fset 'gnus-point-at-eol 'point-at-eol)) + ((fboundp 'line-end-position) + (fset 'gnus-point-at-eol 'line-end-position)) + (t (defun gnus-point-at-eol () "Return point at the end of the line." (let ((p (point))) (end-of-line) (prog1 (point) - (goto-char p))))) + (goto-char p)))))) (defun gnus-delete-first (elt list) "Delete by side effect the first occurrence of ELT as a member of LIST." diff --git a/lisp/gnus-xmas.el b/lisp/gnus-xmas.el index d8106d1..340d653 100644 --- a/lisp/gnus-xmas.el +++ b/lisp/gnus-xmas.el @@ -52,11 +52,12 @@ automatically." (grape "#b264cc" "#cf7df") (labia "#cc64c2" "#fd7dff") (berry "#cc6485" "#ff7db5") + (dino "#cc6485" "#ff7db5") (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) diff --git a/lisp/gnus.el b/lisp/gnus.el index 89c6b23..3e2c239 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -253,12 +253,19 @@ is restarted, and sometimes reloaded." (defconst gnus-product-name "T-gnus" "Product name of this version of gnus.") -(defconst gnus-version-number "6.8.17" +(defconst gnus-version-number "6.9.01" "Version number for this version of gnus.") +(defconst gnus-original-version-number "0.6" + "Version number for this version of Gnus.") + +(defconst gnus-original-product-name "Pterodactyl Gnus" + "Version number for this version of Gnus.") + (defconst gnus-version - (format "%s %s (based on Gnus 5.6.42; for SEMI 1.8, FLIM 1.8/1.9)" - gnus-product-name gnus-version-number) + (format "%s %s (based on %s %s ; for SEMI 1.8, FLIM 1.8/1.9)" + gnus-product-name gnus-version-number + gnus-original-product-name gnus-original-version-number) "Version string for this version of gnus.") (defcustom gnus-inhibit-startup-message nil @@ -642,13 +649,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 @@ -1574,6 +1581,8 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.") '(("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) + ("mm-decode" mm-decode-words-region mm-decode-words-string) ("ps-print" ps-print-preprint) ("mail-extr" mail-extract-address-components) ("browse-url" browse-url) @@ -2008,7 +2017,7 @@ If ARG, insert string at point." ((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 '("Pterodactyl" "p")) "5.07") ((member alpha '("o")) "5.09") ((member alpha '("n")) "5.11")) minor least) diff --git a/lisp/lpath.el b/lisp/lpath.el index c8ee274..fc3688d 100644 --- a/lisp/lpath.el +++ b/lisp/lpath.el @@ -35,17 +35,21 @@ 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)) (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))) (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 @@ -59,7 +63,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 + char-int mule-write-region-no-coding-system))) (setq load-path (cons "." load-path)) (require 'custom) diff --git a/lisp/message.el b/lisp/message.el index b4475e2..8589d74 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -1126,7 +1126,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)))) @@ -1226,7 +1226,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)) @@ -3362,7 +3363,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) @@ -4010,7 +4011,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 diff --git a/lisp/nndraft.el b/lisp/nndraft.el index f7182a5..39c6e28 100644 --- a/lisp/nndraft.el +++ b/lisp/nndraft.el @@ -156,7 +156,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..5efb0db 100644 --- a/lisp/nnfolder.el +++ b/lisp/nnfolder.el @@ -797,7 +797,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 e0de0a4..bbeba0f 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. @@ -499,52 +498,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) @@ -701,7 +654,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) "/"))) @@ -857,6 +810,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 38a0244..8caddfe 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) (nnheader-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 bc8d1f5..3124586 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -35,8 +35,7 @@ (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." @@ -514,7 +513,7 @@ 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) "/"))) @@ -705,7 +704,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) @@ -1202,8 +1201,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")))) 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..f4da479 100644 --- a/lisp/nnml.el +++ b/lisp/nnml.el @@ -469,7 +469,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/nntp.el b/lisp/nntp.el index 487c72d..863b655 100644 --- a/lisp/nntp.el +++ b/lisp/nntp.el @@ -796,7 +796,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..96784c2 100644 --- a/lisp/nnweb.el +++ b/lisp/nnweb.el @@ -219,7 +219,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 +233,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 +254,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/texi/gnus.texi b/texi/gnus.texi index 258e5a9..059f9b3 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Semi-gnus 6.8.17 Manual +@settitle Semi-gnus 6.9.01 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 Semi-gnus 6.8.17 Manual +@title Semi-gnus 6.9.01 Manual @author by Lars Magne Ingebrigtsen @page @@ -361,7 +361,7 @@ internationalization/localization and multiscript features based on MULE API. So Semi-gnus does not discriminate various language communities. Oh, if you are a Klingon, please wait Unicode Next Generation. -This manual corresponds to Semi-gnus 6.8.17. +This manual corresponds to Semi-gnus 6.9.01. @end ifinfo diff --git a/texi/message.texi b/texi/message.texi index 5399b2f..caced43 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Message 5.6.42 Manual +@settitle Pterodactyl Message 0.6 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.42 Manual +@title Pterodactyl Message 0.6 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.42. Message is distributed with -the Gnus distribution bearing the same version number as this manual -has. +This manual corresponds to Pterodactyl Message 0.6. Message is +distributed with the Gnus distribution bearing the same version number +as this manual has. @node Interface -- 1.7.10.4