From 61a6a32796c29e8bb7e8d58152b30aa18e3b7722 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Mon, 22 Oct 2001 01:18:30 +0000 Subject: [PATCH] Synch with Oort Gnus (the function `message-get-reply-headers' has not been synch'ed yet). --- ChangeLog | 9 ++++++ lisp/ChangeLog | 45 ++++++++++++++++++++++++++++++ lisp/gnus-sum.el | 7 ++--- lisp/lpath.el | 1 + lisp/message.el | 38 ++++++++++++++----------- lisp/mm-decode.el | 2 +- lisp/nnfolder.el | 4 +-- lisp/nnimap.el | 80 +++++++++++++++++++++++++++++++++++++++++------------ lisp/nnml.el | 4 +-- make-x.bat | 33 +++++++++++----------- texi/ChangeLog | 18 ++++++++++++ texi/Makefile.in | 3 +- texi/gnus-ja.texi | 15 ++++++---- texi/gnus.texi | 18 +++++++----- 14 files changed, 203 insertions(+), 74 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0fe294d..733656b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2001-10-22 Katsumi Yamaoka + + * lisp/message.el (rfc822-goto-eoh): Remove. + +2001-10-19 Kai Gro,A_(Bjohann + From Frank Schmitt . + + * make-x.bat: Use correct directory structure for XEmacs on Windows. + 2001-10-19 Katsumi Yamaoka * lisp/message.el (rfc822-goto-eoh): Define it when void. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f571cc2..b5bf879 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,48 @@ +2001-10-21 Simon Josefsson + + * nnimap.el (nnimap): Defgroup + (nnimap-strict-function, nnimap-strict-function-match): New + widget, from Per Abrahamsen . + (nnimap-split-crosspost, nnimap-split-inbox) + (nnimap-split-rule, nnimap-split-predicate) + (nnimap-split-predicate): Defcustom. + (nnimap-split-inbox, nnimap-expunge-search-string) + (nnimap-importantize-dormant): Remove "*" from doc. + +2001-10-20 Kai Gro,A_(Bjohann + + * gnus-sum.el (gnus-summary-limit-to-score): Prompt for score if + not supplied via prefix arg. From Lisp, make arg mandatory. + Suggested by Frank Schmitt. + +2001-10-20 Per Abrahamsen + + * message.el (message-do-auto-fill): Avoid calling + 'rfc822-goto-eoh'. + +2001-10-20 Kai Gro,A_(Bjohann + From Paul Jarc . + + * message.el (message-get-reply-headers): Restructure the logic + and add comments. From Paul Jarc . + +2001-10-20 Simon Josefsson + + * message.el (message-cancel-news): Support cancel-locks. + Suggested by Per Abrahamsson. + + * nnml.el (nnml-marks-changed-p): Use `equal' when comparing + conses. From David Z Maze . + + * nnfolder.el (nnfolder-marks-changed-p): Ditto. + +2001-10-19 Per Abrahamsen + + * mm-decode.el (mm-default-directory): Fix customize type. + + * message.el (message-setup-fill-variables): Kludge to use + normal-auto-fill-function even if auto fill is already activated. + 2001-10-19 Per Abrahamsen * message.el (message-do-auto-fill): New version that does not diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index e8ad47d..38f0130 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -6989,12 +6989,9 @@ Returns how many articles were removed." (gnus-summary-limit articles)) (gnus-summary-position-point))) -(defun gnus-summary-limit-to-score (&optional score) +(defun gnus-summary-limit-to-score (score) "Limit to articles with score at or above SCORE." - (interactive "P") - (setq score (if score - (prefix-numeric-value score) - (or gnus-summary-default-score 0))) + (interactive "NLimit to articles with score of at least: ") (let ((data gnus-newsgroup-data) articles) (while data diff --git a/lisp/lpath.el b/lisp/lpath.el index 689d117..1f7e589 100644 --- a/lisp/lpath.el +++ b/lisp/lpath.el @@ -22,6 +22,7 @@ mail-aliases-setup mm-copy-tree mule-write-region-no-coding-system put-image ring-elements + canlock-verify charsetp coding-system-p propertize make-mode-line-mouse2-map diff --git a/lisp/message.el b/lisp/message.el index dda1010..2874b51 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -453,9 +453,9 @@ The provided functions are: (defcustom message-cite-prefix-regexp (if (string-match "[[:digit:]]" "1") ;; support POSIX? - "\\([ \t]*[-_.[:word:]]+>+\\|[ \t]*[]>»|:}+]\\)+" + "\\([ \t]*[-_.[:word:]]+>+\\|[ \t]*[]>~|:}+]\\)+" ;; ?-, ?_ or ?. MUST NOT be in syntax entry w. - "\\([ \t]*\\(\\w\\|[-_.]\\)+>+\\|[ \t]*[]>»|:}+]\\)+") + "\\([ \t]*\\(\\w\\|[-_.]\\)+>+\\|[ \t]*[]>~|:}+]\\)+") "*Regexp matching the longest possible citation prefix on a line." :group 'message-insertion :type 'regexp) @@ -1875,8 +1875,6 @@ M-RET `message-newline-and-reformat' (break the line and reformat)." (unless (boundp 'adaptive-fill-first-line-regexp) (setq adaptive-fill-first-line-regexp nil)) (make-local-variable 'adaptive-fill-first-line-regexp) - (make-local-variable 'auto-fill-inhibit-regexp) - (make-local-variable 'normal-auto-fill-function) (let ((quote-prefix-regexp ;; User should change message-cite-prefix-regexp if ;; message-yank-prefix is set to an abnormal value. @@ -1895,10 +1893,19 @@ M-RET `message-newline-and-reformat' (break the line and reformat)." (concat quote-prefix-regexp "\\|" adaptive-fill-regexp)) (setq adaptive-fill-first-line-regexp (concat quote-prefix-regexp "\\|" - adaptive-fill-first-line-regexp)) - ;;(setq auto-fill-inhibit-regexp "^[A-Z][^: \n\t]+:") - (setq auto-fill-inhibit-regexp nil) - (setq normal-auto-fill-function 'message-do-auto-fill))) + adaptive-fill-first-line-regexp))) + (make-local-variable 'auto-fill-inhibit-regexp) + ;;(setq auto-fill-inhibit-regexp "^[A-Z][^: \n\t]+:") + (setq auto-fill-inhibit-regexp nil) + (make-local-variable 'normal-auto-fill-function) + (setq normal-auto-fill-function 'message-do-auto-fill) + ;; KLUDGE: auto fill might already be turned on in `text-mode-hook'. + ;; In that case, ensure that it uses the right function. The real + ;; solution would be not to use `define-derived-mode', and run + ;; `text-mode-hook' ourself at the end of the mode. + ;; -- Per Abrahamsen Date: 2001-10-19. + (when auto-fill-function + (setq auto-fill-function normal-auto-fill-function))) @@ -2200,16 +2207,15 @@ Prefix arg means justify as well." (message-newline-and-reformat arg t) t)) -(defun-maybe rfc822-goto-eoh () - ;; Go to header delimiter line in a mail message, following RFC822 rules - (goto-char (point-min)) - (while (looking-at "^[^: \n]+:\\|^[ \t]") - (forward-line 1)) - (point)) - (defun message-do-auto-fill () "Like `do-auto-fill', but don't fill in message header." - (when (> (point) (save-excursion (rfc822-goto-eoh))) + (when (> (point) (save-excursion + (goto-char (point-min)) + (if (re-search-forward + (concat "^" (regexp-quote mail-header-separator) + "\n") nil t) + (match-beginning 0) + (point-max)))) (do-auto-fill))) (defun message-insert-signature (&optional force) diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index d370da8..a963a21 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -296,7 +296,7 @@ Each function takes a file name as input and returns a file name.") (defcustom mm-default-directory nil "The default directory where mm will save files. If not set, `default-directory' will be used." - :type 'directory + :type '(choice directory (const :tag "Default" nil)) :group 'mime-display) (defcustom mm-external-terminal-program "xterm" diff --git a/lisp/nnfolder.el b/lisp/nnfolder.el index 7f5d10d..eb3ec9b 100644 --- a/lisp/nnfolder.el +++ b/lisp/nnfolder.el @@ -1206,8 +1206,8 @@ This command does not work if you use short group names." (let ((file (nnfolder-group-marks-pathname group))) (if (null (gnus-gethash file nnfolder-marks-modtime)) t ;; never looked at marks file, assume it has changed - (not (eq (gnus-gethash file nnfolder-marks-modtime) - (nth 5 (file-attributes file))))))) + (not (equal (gnus-gethash file nnfolder-marks-modtime) + (nth 5 (file-attributes file))))))) (defun nnfolder-save-marks (group server) (let ((file-name-coding-system nnmail-pathname-coding-system) diff --git a/lisp/nnimap.el b/lisp/nnimap.el index ae1d5e7..c88021c 100644 --- a/lisp/nnimap.el +++ b/lisp/nnimap.el @@ -74,6 +74,10 @@ (defconst nnimap-version "nnimap 1.0") +(defgroup nnimap nil + "Reading IMAP mail with Gnus." + :group 'gnus) + (defvoo nnimap-address nil "Address of physical IMAP server. If nil, use the virtual server's name.") @@ -83,20 +87,36 @@ If nil, defaults to 993 for SSL connections and 143 otherwise.") ;; Splitting variables -(defvar nnimap-split-crosspost t +(defcustom nnimap-split-crosspost t "If non-nil, do crossposting if several split methods match the mail. -If nil, the first match found will be used.") +If nil, the first match found will be used." + :group 'nnimap + :type 'boolean) -(defvar nnimap-split-inbox nil - "*Name of mailbox to split mail from. +(defcustom nnimap-split-inbox nil + "Name of mailbox to split mail from. Mail is read from this mailbox and split according to rules in `nnimap-split-rule'. -This can be a string or a list of strings.") +This can be a string or a list of strings." + :group 'nnimap + :type '(choice (string) + (repeat string))) + +(define-widget 'nnimap-strict-function 'function + "This widget only matches values that are functionp. -(defvar nnimap-split-rule nil - "*Mail will be split according to theese rules. +Warning: This means that a value that is the symbol of a not yet +loaded function will not match. Use with care." + :match 'nnimap-strict-function-match) + +(defun nnimap-strict-function-match (widget value) + "Ignoring WIDGET, match if VALUE is a function." + (functionp value)) + +(defcustom nnimap-split-rule nil + "Mail will be split according to theese rules. Mail is read from mailbox(es) specified in `nnimap-split-inbox'. @@ -105,7 +125,7 @@ If you'd like, for instance, one mail group for mail from the everything else in the incoming mailbox, you could do something like this: -(setq nnimap-split-rule '((\"INBOX.gnus-imap\" \"From:.*gnus-imap\") +\(setq nnimap-split-rule '((\"INBOX.gnus-imap\" \"From:.*gnus-imap\") (\"INBOX.junk\" \"Subject:.*buy\"))) As you can see, `nnimap-split-rule' is a list of lists, where the first @@ -126,7 +146,7 @@ To allow for different split rules on different virtual servers, and even different split rules in different inboxes on the same server, the syntax of this variable have been extended along the lines of: -(setq nnimap-split-rule +\(setq nnimap-split-rule '((\"my1server\" (\".*\" ((\"ding\" \"ding@gnus.org\") (\"junk\" \"From:.*Simon\"))) (\"my2server\" (\"INBOX\" nnimap-split-fancy)) @@ -138,17 +158,43 @@ may apply to several servers. In the example, the servers \"my3server\" and \"my4server\" both use the same rules. Similarly, the inbox string is also a regexp. The actual splitting rules are as before, either a function, or a list with group/regexp or -group/function elements.") - -(defvar nnimap-split-predicate "UNSEEN UNDELETED" +group/function elements." + :group 'nnimap + :type '(choice :tag "Rule type" + (repeat :menu-tag "Single-server" + :tag "Single-server list" + (list (string :tag "Mailbox") + (choice :tag "Predicate" + (regexp :tag "A regexp") + (nnimap-strict-function :tag "A function")))) + (choice :menu-tag "A function" + :tag "A function" + (function-item nnimap-split-fancy) + (function-item nnmail-split-fancy) + (nnimap-strict-function :tag "User-defined function")) + (repeat :menu-tag "Multi-server (extended)" + :tag "Multi-server list" + (list (regexp :tag "Server regexp") + (list (regexp :tag "Incoming Mailbox regexp") + (repeat :tag "Rules for matching server(s) and mailbox(es)" + (list (string :tag "Destination mailbox") + (choice :tag "Predicate" + (regexp :tag "A Regexp") + (nnimap-strict-function :tag "A Function"))))))))) + +(defcustom nnimap-split-predicate "UNSEEN UNDELETED" "The predicate used to find articles to split. If you use another IMAP client to peek on articles but always would like nnimap to split them once it's started, you could change this to \"UNDELETED\". Other available predicates are available in -RFC2060 section 6.4.4.") +RFC2060 section 6.4.4." + :group 'nnimap + :type 'string) -(defvar nnimap-split-fancy nil - "Like `nnmail-split-fancy', which see.") +(defcustom nnimap-split-fancy nil + "Like `nnmail-split-fancy', which see." + :group 'nnimap + :type 'sexp) ;; Authorization / Privacy variables @@ -253,7 +299,7 @@ similar which you wouldn't want to set up a mailing list for, you can use this to make replies go directly to the group.") (defvoo nnimap-expunge-search-string "UID %s NOT SINCE %s" - "*IMAP search command to use for articles that are to be expired. + "IMAP search command to use for articles that are to be expired. The first %s is replaced by a UID set of articles to search on, and the second %s is replaced by a date criterium. @@ -263,7 +309,7 @@ instead of the internal date of messages. See section 6.4.4 of RFC 2060 for more information on valid strings.") (defvoo nnimap-importantize-dormant t - "*If non-nil, mark \"dormant\" articles as \"ticked\" for other IMAP clients. + "If non-nil, mark \"dormant\" articles as \"ticked\" for other IMAP clients. Note that within Gnus, dormant articles will still (only) be marked as ticked. This is to make \"dormant\" articles stand out, just like \"ticked\" articles, in other IMAP clients.") diff --git a/lisp/nnml.el b/lisp/nnml.el index 3740e16..4ccc2ac 100644 --- a/lisp/nnml.el +++ b/lisp/nnml.el @@ -986,8 +986,8 @@ Use the nov database for the current group if available." (nnmail-group-pathname group nnml-directory)))) (if (null (gnus-gethash file nnml-marks-modtime)) t ;; never looked at marks file, assume it has changed - (not (eq (gnus-gethash file nnml-marks-modtime) - (nth 5 (file-attributes file))))))) + (not (equal (gnus-gethash file nnml-marks-modtime) + (nth 5 (file-attributes file))))))) (defun nnml-save-marks (group server) (let ((file-name-coding-system nnmail-pathname-coding-system) diff --git a/make-x.bat b/make-x.bat index b2f2f97..ce347d2 100644 --- a/make-x.bat +++ b/make-x.bat @@ -1,5 +1,6 @@ @echo off +rem Modified once more by Frank Schmitt (ich@Frank-Schmitt.net) rem Modified by ShengHuo Zhu (zsh@cs.rochester.edu) rem Originally from make.bat by David Charlap (shamino@writeme.com) rem @@ -9,43 +10,41 @@ set GNUS_PWD_SAVE=%PWD% set PWD= if "%1" == "" goto usage -if "%2" == "" goto usage set emacs=xemacs.exe cd lisp -call %1\%2\%emacs% -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-compile -if not "%3" == "copy" goto info -attrib -r %1\lisp\gnus\* -copy *.el* %1\lisp\gnus +call %1\%emacs% -batch -nw -q -no-site-file -l ./dgnushack.el -f dgnushack-compile +if not "%2" == "copy" goto info +attrib -r %1\..\..\xemacs-packages\lisp\gnus\*.* +copy *.el* %1\..\..\xemacs-packages\lisp\gnus :info -set EMACSINFO=call %1\%2\%emacs% -no-site-file -no-init-file -batch -q -l infohack.el -f batch-makeinfo +set EMACSINFO=call %1\%emacs% -no-site-file -no-init-file -batch -nw -q -l infohack.el -f batch-makeinfo cd ..\texi %EMACSINFO% message.texi %EMACSINFO% emacs-mime.texi %EMACSINFO% gnus.texi -if not "%3" == "copy" goto done -copy gnus %1\info -copy gnus-?? %1\info -copy message %1\info -copy emacs-mime %1\info +if not "%2" == "copy" goto done +copy gnus %1\..\..\xemacs-packages\info +copy gnus-?? %1\..\..\xemacs-packages\info +copy message %1\..\..\xemacs-packages\info +copy emacs-mime %1\..\..\xemacs-packages\info :etc cd ..\etc -copy gnus-tut.txt %1\etc +copy gnus-tut.txt %1\..\..\xemacs-packages\etc :done cd .. goto end :usage -echo Usage: make :xemacs-dir: :xemacs-arch: [copy] +echo Usage: make :xemacs-dir: [copy] echo. -echo where: :xemacs-dir: is the directory you installed xemacs in -echo eg. C:\Progra~1\XEmacs\XEmacs-21.4.3 -echo :xemacs-arch: is the xemacs architecture you installed -echo eg. i586-pc-win32 +echo where: :xemacs-dir: is the directory you installed xemacs in +echo (the directory where xemacs.exe is situated) +echo eg. C:\Programme\XEmacs\XEmacs-21.4.3\i586-pc-win32 echo copy indicates that the compiled files should be copied to your echo emacs lisp, info, and etc directories echo. diff --git a/texi/ChangeLog b/texi/ChangeLog index ee2e88d..1e7496e 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,21 @@ +2001-10-21 Kai Gro,A_(Bjohann + + * gnus.texi (Mail Source Specifiers): Explain more explicitly what + happens for the `directory' entries. Say that mail from foo.spool + goes in the group foo. + +2001-10-19 Simon Josefsson + + * Makefile.in (clean): rm gnus.out. + (distclean): rm gnusconfig.tex (moved from "clean"). + + * gnus.texi (Using MIME): s/mime/MIME/ for PDF version. + +2001-10-19 Kai Gro,A_(Bjohann + + * gnus.texi (Finding the News): Disrecommend nnspool for Leafnode + users. + 2001-10-17 21:00:00 ShengHuo ZHU * gnus.texi (Archived Messages): Add new line after @item. diff --git a/texi/Makefile.in b/texi/Makefile.in index e079239..9f13674 100644 --- a/texi/Makefile.in +++ b/texi/Makefile.in @@ -101,7 +101,7 @@ clean: gnus.ilg gnus.ind gnus.[cgk]ind gnus.idx \ gnustmp.texi *.tmplatexi gnus.tmplatexi1 texput.log *.orig *.rej \ gnus.latexi*~* xface.tex picons.tex smiley.tex *.latexi *.dvi-x \ - *.pdf-x gnusconfig.tex + *.pdf-x gnus.out makeinfo: makeinfo -o gnus gnus.texi @@ -202,6 +202,7 @@ distclean: veryclean rm -f gnus.info-[0-9] gnus.info-[0-9][0-9] message.info-[0-9] rm -f gnus-ja.info-[0-9] gnus-ja.info-[0-9][0-9] message-ja.info-[0-9] rm -f $(INFO_DEPS_JA) $(INFO_DEPS_INFO) $(INFO_DEPS_JA_INFO) + rm -f gnusconfig.tex install: $(INFO_DEPS) $(SHELL) $(top_srcdir)/mkinstalldirs $(infodir) diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 15961c1..cfaa99f 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -1118,7 +1118,9 @@ Emacs for Heathens $B$N$h$&$K$G$-$^$9!#(B $B%m!<%+%k$N%9%W!<%k$r;H$($k$N$G$"$l$P!"$+$J$j$N3NN($G$=$NJ}$,$:$C$HB.$$$G(B -$B$7$g$&$7!"$=$l$r;H$&$Y$-$G$7$g$&!#(B +$B$7$g$&$7!"$=$l$r;H$&$Y$-$G$7$g$&!#$G$b!"$b$7$"$J$?$N%5!<%P!<(B +$B$,(B Leafnode $B$G$"$k$J$i$P%m!<%+%k%9%W!<%k$r;H$C$F$O$$$1$^$;$s!#$3$N>l9g(B +$B$O(B @code{(nntp "localhost")} $B$K$7$^$7$g$&!#(B @vindex gnus-nntpserver-file @cindex NNTPSERVER @@ -9298,7 +9300,7 @@ Gnus $B$O%X%C%@!<$NJB$YBX$((B(sort)$B$b9T$$$^$9(B ($B$3$l$O%G%#%U%)%k%H$G9T $B$3$l$O$3$NJQ?t$N%G%#%U%)%k%HCM$G$b$"$j$^$9!#(B @node Using MIME -@section @sc{mime} $B$r;H$&(B +@section MIME $B$r;H$&(B @cindex @sc{mime} $B%Q%s%H%^%$%`(B (mime) $B$H$O!"0UL#$bL5$/6uCf$G/dev/null && cat $TMP @item directory $B%G%#%l%/%H%j!