From: teranisi Date: Thu, 12 Dec 2002 02:17:44 +0000 (+0000) Subject: Synch up with main trunk. X-Git-Tag: elmo-mark-restart~82 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=793d93483014da51f1e159ec90eb68b5bfc68049;p=elisp%2Fwanderlust.git Synch up with main trunk. --- diff --git a/ChangeLog b/ChangeLog index bc02a3a..990d0f9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2002-12-11 Yuuichi Teranishi + + * 2.10.0 - "Venus" + 2002-11-15 TAKAHASHI Kaoru * INSTALL, INSTALL.ja: Update Recommended combination of MIME diff --git a/NEWS b/NEWS index b718e43..ffbb7e1 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,11 @@ Wanderlust NEWS -- User-visible changes in Wanderlust. +** Changed the way to specify configuration of draft buffer window. + You can choose keep, full or split as values of wl-draft-buffer-style + and wl-draft-reply-buffer-style. + +* Changes in 2.10.0 from 2.8.1. + ** You can alter the format of summary lines. Specify format by wl-summary-line-format. If you want to change ones according to folder names, use wl-folder-summary-line-format-alist. @@ -7,7 +13,8 @@ Wanderlust NEWS -- User-visible changes in Wanderlust. ** Save format for the draft folder has been changed. Messages are encoded before saved by wl-draft-save. -** elmo-split is newly established. +** elmo-split is newly established. It provides a way to split messages + according to some rule a la procmail. ** Buffer prefetch works fine now. Messages of the number specified by wl-message-buffer-prefetch-depth are loaded into buffer in advance. @@ -63,6 +70,8 @@ Wanderlust NEWS -- User-visible changes in Wanderlust. ** The Reference Card (doc/wl-refcard.tex) describes important key bindings. +** Many bug fixes. + * Changes in 2.8.0 from 2.6.1 ** Nemacs, Mule 2.3 based on Emacs 19.28 are not supported any longer. diff --git a/NEWS.ja b/NEWS.ja index ab46e4a..fe492ec 100644 --- a/NEWS.ja +++ b/NEWS.ja @@ -1,5 +1,11 @@ Wanderlust NEWS ($BF|K\8lHG(B) -- User-visible changes in Wanderlust. +** $B%I%i%U%H%P%C%U%!%&%#%s%I%&$NG[CV$N;XDj$N;EJ}$,JQ99$5$l$^$7$?!#(B + wl-draft-buffer-style $B$H(B wl-draft-reply-buffer-style $B$K(B keep,full,split + $B$N$$$:$l$+$r;XDj$7$^$9!#(B + +* 2.8.1 $B$+$i(B 2.10.0 $B$X$NJQ99E@(B + ** $B%5%^%j9T$NI=<(7A<0$rJQ99$G$-$k$h$&$K$J$j$^$7$?!#(B wl-summary-line-format $B$G=q<0$r@_Dj$G$-$^$9!#%U%)%k%@Kh$K=q<0$rJQ$($?$$(B $B>l9g$O(B wl-folder-summary-line-format-alist $B$rMQ$$$F2<$5$$!#(B @@ -7,7 +13,8 @@ Wanderlust NEWS ($BF|K\8lHG(B) -- User-visible changes in Wanderlust. ** $B%I%i%U%H%U%)%k%@$X$NJ]B87A<0$,JQ99$5$l$^$7$?!#(Bwl-draft-save $B$N:]$K$O(B $B%(%s%3!<%I$7$FJ]B8$5$l$^$9!#(B -** elmo-split $B$,?7@_$5$l$^$7$?!#(B +** elmo-split $B$,?7@_$5$l$^$7$?!#M?$($?%k!<%k$K1h$C$F(B procmail $BIw$K%a%C%;(B + $B!<%8$r?6$jJ,$1$k$3$H$,$G$-$^$9!#(B ** $B%P%C%U%!%W%j%U%'%C%A$,$$$/$D$+$N=$@5!#(B + * 2.6.1 $B$+$i(B 2.8.0 $B$X$NJQ99E@(B ** Nemacs, Mule 2.3 based on Emacs 19.28 $B$O%5%]!<%H$5$l$J$/$J$j$^$7$?!#(B diff --git a/doc/texinfo.tex b/doc/texinfo.tex index fbaaebd..c85d329 100644 --- a/doc/texinfo.tex +++ b/doc/texinfo.tex @@ -3,7 +3,7 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2002-10-13.14} +\def\texinfoversion{2002-11-25.11} % % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. @@ -68,6 +68,13 @@ \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} +\message{Basics,} +\chardef\other=12 + +% We never want plain's outer \+ definition in Texinfo. +% For @tex, we can use \tabalign. +\let\+ = \relax + % Save some parts of plain tex whose names we will redefine. \let\ptexb=\b \let\ptexbullet=\bullet @@ -78,19 +85,16 @@ \let\ptexend=\end \let\ptexequiv=\equiv \let\ptexexclam=\! +\let\ptexgtr=> +\let\ptexhat=^ \let\ptexi=\i \let\ptexlbrace=\{ +\let\ptexless=< +\let\ptexplus=+ \let\ptexrbrace=\} \let\ptexstar=\* \let\ptext=\t -% We never want plain's outer \+ definition in Texinfo. -% For @tex, we can use \tabalign. -\let\+ = \relax - -\message{Basics,} -\chardef\other=12 - % If this character appears in an error message or help string, it % starts a new line in the output. \newlinechar = `^^J @@ -159,24 +163,30 @@ % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, -% since that produces some useless output on the terminal. +% since that produces some useless output on the terminal. We also make +% some effort to order the tracing commands to reduce output in the log +% file; cf. trace.sty in LaTeX. % \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% -\ifx\eTeXversion\undefined -\def\loggingall{\tracingcommands2 \tracingstats2 - \tracingpages1 \tracingoutput1 \tracinglostchars1 - \tracingmacros2 \tracingparagraphs1 \tracingrestores1 - \showboxbreadth\maxdimen\showboxdepth\maxdimen -}% -\else -\def\loggingall{\tracingcommands3 \tracingstats2 - \tracingpages1 \tracingoutput1 \tracinglostchars1 - \tracingmacros2 \tracingparagraphs1 \tracingrestores1 - \tracingscantokens1 \tracingassigns1 \tracingifs1 - \tracinggroups1 \tracingnesting2 - \showboxbreadth\maxdimen\showboxdepth\maxdimen +\def\loggingall{% + \tracingstats2 + \tracingpages1 + \tracinglostchars2 % 2 gives us more in etex + \tracingparagraphs1 + \tracingoutput1 + \tracingmacros2 + \tracingrestores1 + \showboxbreadth\maxdimen \showboxdepth\maxdimen + \ifx\eTeXversion\undefined\else % etex gives us more logging + \tracingscantokens1 + \tracingifs1 + \tracinggroups1 + \tracingnesting2 + \tracingassigns1 + \fi + \tracingcommands3 % 3 gives us more in etex + \errorcontextlines\maxdimen }% -\fi % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. @@ -441,17 +451,6 @@ } -% Single-spacing is done by various environments (specifically, in -% \nonfillstart and \quotations). -\newskip\singlespaceskip \singlespaceskip = 12.5pt -\def\singlespace{% - % Why was this kern here? It messes up equalizing space above and below - % environments. --karl, 6may93 - %{\advance \baselineskip by -\singlespaceskip - %\kern \baselineskip}% - \setleading\singlespaceskip -} - %% Simple single-character @ commands % @@ prints an @ @@ -846,11 +845,6 @@ where each line of input produces a line of output.} % to set catcodes according to plain TeX first, to allow for subscripts, % superscripts, special math chars, etc. % -% @math does not do math typesetting in section titles, index -% entries, and other such contexts where the catcodes are set before -% @math gets a chance to work. This could perhaps be fixed, but for now -% at least we can have real math in the main text, where it's needed most. -% \let\implicitmath = $%$ font-lock fix % % One complication: _ usually means subscripts, but it could also mean @@ -876,9 +870,27 @@ where each line of input produces a line of output.} \tex \mathcode`\_="8000 \mathunderscore \let\\ = \mathbackslash + \mathactive \implicitmath\finishmath} \def\finishmath#1{#1\implicitmath\Etex} +% Some active characters (such as <) are spaced differently in math. +% We have to reset their definitions in case the @math was an +% argument to a command which set the catcodes (such as @item or @section). +% +{ + \catcode`^ = \active + \catcode`< = \active + \catcode`> = \active + \catcode`+ = \active + \gdef\mathactive{% + \let^ = \ptexhat + \let< = \ptexless + \let> = \ptexgtr + \let+ = \ptexplus + } +} + % @bullet and @minus need the same treatment as @math, just above. \def\bullet{\implicitmath\ptexbullet\implicitmath} \def\minus{\implicitmath-\implicitmath} @@ -970,7 +982,7 @@ where each line of input produces a line of output.} \ifx\empty\imagewidth\else width \imagewidth \fi \ifx\empty\imageheight\else height \imageheight \fi \ifnum\pdftexversion<13 - #1.pdf% + #1.pdf% \else {#1.pdf}% \fi @@ -1358,8 +1370,8 @@ where each line of input produces a line of output.} % \smartitalic{ARG} outputs arg in italics, followed by an italic correction % unless the following character is such as not to need one. \def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi} -\def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx} -\def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx} +\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx} +\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx} \let\i=\smartitalic \let\var=\smartslanted @@ -1880,10 +1892,18 @@ where each line of input produces a line of output.} % \parskip glue -- logically it's part of the @item we just started. \nobreak \vskip-\parskip % - % Stop a page break at the \parskip glue coming up. Unfortunately + % Stop a page break at the \parskip glue coming up. (Unfortunately % we can't prevent a possible page break at the following - % \baselineskip glue. - \nobreak + % \baselineskip glue.) However, if what follows is an environment + % such as @example, there will be no \parskip glue; then + % the negative vskip we just would cause the example and the item to + % crash together. So we use this bizarre value of 10001 as a signal + % to \aboveenvbreak to insert \parskip glue after all. + % (Possibly there are other commands that could be followed by + % @example which need the same treatment, but not section titles; or + % maybe section titles are the only special case and they should be + % penalty 10001...) + \penalty 10001 \endgroup \itemxneedsnegativevskipfalse \else @@ -3931,7 +3951,16 @@ width0pt\relax} \fi \hangindent = \wd0 % zero if no section number \unhbox0 #3}% }% - \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak + % Add extra space after the heading -- either a line space or a + % paragraph space, whichever is more. (Some people like to set + % \parskip to large values for some reason.) + \nobreak + \ifdim\parskip>\normalbaselineskip + \kern\parskip + \else + \kern\normalbaselineskip + \fi + \nobreak } @@ -4265,15 +4294,18 @@ width0pt\relax} \fi % Make spacing and below environment symmetrical. We use \parskip here % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the -% start of the next paragraph will insert \parskip +% start of the next paragraph will insert \parskip. % \def\aboveenvbreak{{% - \ifnum\lastpenalty < 10000 + % =10000 instead of <10000 because of a special case in \itemzzz, q.v. + \ifnum \lastpenalty=10000 \else \advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip - \penalty-50 + % it's not a good place to break if the last penalty was \nobreak + % or better ... + \ifnum\lastpenalty>10000 \else \penalty-50 \fi \vskip\envskipamount \fi \fi @@ -4352,7 +4384,6 @@ width0pt\relax} \fi \inENV % This group ends at the end of the body \hfuzz = 12pt % Don't be fussy \sepspaces % Make spaces be word-separators rather than space tokens. - \singlespace \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output \parskip = 0pt @@ -4467,7 +4498,6 @@ width0pt\relax} \fi \def\quotation{% \begingroup\inENV %This group ends at the end of the @quotation body {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip - \singlespace \parindent=0pt % We have retained a nonzero parskip for the environment, since we're % doing normal filling. So to avoid extra space below the environment... @@ -4490,10 +4520,14 @@ width0pt\relax} \fi % % [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. % -% [Knuth] p. 344; only we need to do '@' too +% [Knuth] p.344; only we need to do the other characters Texinfo sets +% active too. Otherwise, they get lost as the first character on a +% verbatim line. \def\dospecials{% - \do\ \do\\\do\@\do\{\do\}\do\$\do\&% - \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~} + \do\ \do\\\do\{\do\}\do\$\do\&% + \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% + \do\<\do\>\do\|\do\@\do+\do\"% +} % % [Knuth] p. 380 \def\uncatcodespecials{% @@ -4580,7 +4614,7 @@ width0pt\relax} \fi % % For Texinfo it's a lot easier than for LaTeX, % because texinfo's \verbatim doesn't stop at '\end{verbatim}': -% we need not redefine '\', '{' and '}' +% we need not redefine '\', '{' and '}'. % % Inspired by LaTeX's verbatim command set [latex.ltx] %% Include LaTeX hack for completeness -- never know @@ -4590,9 +4624,14 @@ width0pt\relax} \fi %% \catcode`\\=12|gdef|doverbatim#1@end verbatim[ %% #1|endgroup|def|Everbatim[]|end[verbatim]] %% |endgroup +% \begingroup \catcode`\ =\active - \gdef\doverbatim#1@end verbatim{#1\end{verbatim}} + \obeylines % + % ignore everything up to the first ^^M, that's the newline at the end + % of the @verbatim input line itself. Otherwise we get an extra blank + % line in the output. + \gdef\doverbatim#1^^M#2@end verbatim{#2\end{verbatim}}% \endgroup % \def\verbatim{% @@ -4700,11 +4739,14 @@ width0pt\relax} \fi \newskip\deflastargmargin \deflastargmargin=18pt \newcount\parencount -% define \functionparens, which makes ( and ) and & do special things. -% \functionparens affects the group it is contained in. + +% We want ()&[] to print specially on the defun line. +% \def\activeparens{% -\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active -\catcode`\[=\active \catcode`\]=\active} + \catcode`\(=\active \catcode`\)=\active + \catcode`\&=\active + \catcode`\[=\active \catcode`\]=\active +} % Make control sequences which act like normal parenthesis chars. \let\lparen = ( \let\rparen = ) @@ -4809,7 +4851,7 @@ width0pt\relax} \fi % which is there to keep the function description together with its % header. But if there's nothing but headers, we want to allow a % break after all. - \ifnum\lastpenalty = 10000 \penalty0 \fi + \ifnum\lastpenalty=10000 \penalty0 \fi \medbreak % % Define the \E... end token that this defining construct specifies @@ -4821,24 +4863,38 @@ width0pt\relax} \fi \exdentamount=\defbodyindent } +% Common part of the \...x definitions. +% +\def\defxbodycommon{% + % As with \parsebodycommon above, allow line break if we have multiple + % x headers in a row. It's not a great place, though. + \ifnum\lastpenalty=10000 \penalty1000 \fi + % + \begingroup\obeylines +} + % Process body of @defun, @deffn, @defmac, etc. % \def\defparsebody#1#2#3{% \parsebodycommon{#1}{#2}{#3}% - \def#2{\begingroup\obeylines\activeparens\spacesplit#3}% + \def#2{\defxbodycommon \activeparens \spacesplit#3}% \catcode61=\active % 61 is `=' \begingroup\obeylines\activeparens \spacesplit#3% } -% #1, #2, #3 are the common arguments (see \defparsebody). +% #1, #2, #3 are the common arguments (see \parsebodycommon above). % #4, delimited by the space, is the class name. % \def\defmethparsebody#1#2#3#4 {% \parsebodycommon{#1}{#2}{#3}% - \def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}% + \def#2##1 {\defxbodycommon \activeparens \spacesplit{#3{##1}}}% \begingroup\obeylines\activeparens - \spacesplit{#3{#4}}% + % The \empty here prevents misinterpretation of a construct such as + % @deffn {whatever} {Enharmonic comma} + % See comments at \deftpparsebody, although in our case we don't have + % to remove the \empty afterwards, since it is empty. + \spacesplit{#3{#4}}\empty } % Used for @deftypemethod and @deftypeivar. @@ -4848,7 +4904,7 @@ width0pt\relax} \fi % \def\deftypemethparsebody#1#2#3#4 #5 {% \parsebodycommon{#1}{#2}{#3}% - \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}% + \def#2##1 ##2 {\defxbodycommon \activeparens \spacesplit{#3{##1}{##2}}}% \begingroup\obeylines\activeparens \spacesplit{#3{#4}{#5}}% } @@ -4862,9 +4918,8 @@ width0pt\relax} \fi % \def\deftypeopparsebody#1#2#3#4#5 #6 {% \parsebodycommon{#1}{#2}{#3}% - \def#2##1 ##2 ##3 {% - \def#4{##1}% - \begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}% + \def#2##1 ##2 ##3 {\def#4{##1}% + \defxbodycommon \activeparens \spacesplit{#3{##2}{##3}}}% \begingroup\obeylines\activeparens \spacesplit{#3{#5}{#6}}% } @@ -4873,7 +4928,7 @@ width0pt\relax} \fi \def\defopparsebody #1#2#3#4#5 {% \parsebodycommon{#1}{#2}{#3}% \def#2##1 ##2 {\def#4{##1}% - \begingroup\obeylines\activeparens\spacesplit{#3{##2}}}% + \defxbodycommon \activeparens \spacesplit{#3{##2}}}% \begingroup\obeylines\activeparens \spacesplit{#3{#5}}% } @@ -4884,7 +4939,7 @@ width0pt\relax} \fi % \def\defvarparsebody #1#2#3{% \parsebodycommon{#1}{#2}{#3}% - \def#2{\begingroup\obeylines\spacesplit#3}% + \def#2{\defxbodycommon \spacesplit#3}% \catcode61=\active % \begingroup\obeylines \spacesplit#3% @@ -4894,14 +4949,14 @@ width0pt\relax} \fi \def\defopvarparsebody #1#2#3#4#5 {% \parsebodycommon{#1}{#2}{#3}% \def#2##1 ##2 {\def#4{##1}% - \begingroup\obeylines\spacesplit{#3{##2}}}% + \defxbodycommon \spacesplit{#3{##2}}}% \begingroup\obeylines \spacesplit{#3{#5}}% } \def\defvrparsebody#1#2#3#4 {% \parsebodycommon{#1}{#2}{#3}% - \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% + \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}}% \begingroup\obeylines \spacesplit{#3{#4}}% } @@ -4917,7 +4972,7 @@ width0pt\relax} \fi % \def\deftpparsebody #1#2#3#4 {% \parsebodycommon{#1}{#2}{#3}% - \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% + \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}}% \begingroup\obeylines \spacesplit{\parsetpheaderline{#3{#4}}}\empty } @@ -4935,18 +4990,22 @@ width0pt\relax} \fi #1{\removeemptybraces#2\relax}{#3}% }% -% Split up #2 at the first space token. +% Split up #2 (the rest of the input line) at the first space token. % call #1 with two arguments: % the first is all of #2 before the space token, % the second is all of #2 after that space token. % If #2 contains no space token, all of it is passed as the first arg % and the second is passed as empty. % -{\obeylines -\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}% -\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{% -\ifx\relax #3% -#1{#2}{}\else #1{#2}{#3#4}\fi}} +{\obeylines % + \gdef\spacesplit#1#2^^M{\endgroup\spacesplitx{#1}#2 \relax\spacesplitx}% + \long\gdef\spacesplitx#1#2 #3#4\spacesplitx{% + \ifx\relax #3% + #1{#2}{}% + \else % + #1{#2}{#3#4}% + \fi}% +} % Define @defun. diff --git a/doc/txi-en.tex b/doc/txi-en.tex index 62a6ba5..abdc7ea 100644 --- a/doc/txi-en.tex +++ b/doc/txi-en.tex @@ -1,7 +1,7 @@ % English non-translation for texinfo.tex. This is read when a source % document says @documentlanguage en (which might happen after another % @documentlanguage). The actual values are the same as defaults. -% $Id: txi-en.tex,v 1.2 1999/07/09 22:09:28 karl Exp $ +% $Id: txi-en.tex,v 1.1 2002/08/25 23:38:38 karl Exp $ % % Copyright (C) 1999 Free Software Foundation. % diff --git a/doc/wl-ja.texi b/doc/wl-ja.texi index 355d7d6..27b034b 100644 --- a/doc/wl-ja.texi +++ b/doc/wl-ja.texi @@ -4,7 +4,6 @@ @settitle Wanderlust -- Yet Another Message Interface On Emacsen -- @c %**end of header @documentlanguage ja -@documentencoding iso-2022-jp @include version.texi @synindex pg cp @finalout @@ -356,6 +355,7 @@ starttls $B%Q%C%1!<%8$O0J2<$N>l=j$+$iF~]$H$7$F!"%-!<%o!<%I(B @samp{wanderlust} $B$G8!:w$r9T$$$^$9!#(B + @node Multi Folder, Filter Folder, Namazu Folder, Folders @section $B%^%k%A%U%)%k%@(B @cindex @samp{*} @@ -1662,6 +1665,7 @@ POP $B%5!<%P$K%a!<%k$r;D$7$?$^$^!"%a%C%;!<%8$r(B @samp{+inbox} $B$K%3%T!<$7$F $B%a%C%;!<%8$,0\F0$7$?8e!"%U%C%/(B @code{elmo-pipe-drained-hook} $B$,8F$P$l(B $B$^$9$N$G!"%@%&%s%m!<%I8e$KJN,Id9f$H$7$F;H$o$l$kCM$O(B (@samp{[...]}) $B$G$9!#(B @end table + @node Variables of Draft Mode, , Key Bindings of Draft, Draft @section $B%+%9%?%^%$%:JQ?t(B @@ -6306,7 +6317,7 @@ pop3 $B!_(B $B"$(B $B"$(B $B"$(B (@samp{CONDITION} @samp{ACTION} [@code{continue}]) @end lisp -$B$H$$$&0lAH$G!"(B@samp{CONDITION} $B$,??$N>l9g$K(B @samp{ACTION} $B$rl9g$K(B @samp{ACTION} $B$rr7o$r(B S $B<0$G5-=R$7$^$9!#=q<0$K$D$$$F$O(B $B$9$08e$G@bL@$7$^$9!#BhFs$NMWAG(B @samp{ACTION} $B$K$O%a%C%;!<%8$N?6$jJ,$1@h(B $B$N%U%)%k%@L>!"$b$7$/$O%7%s%\%k$r;XDj$7$^$9!#(B @@ -6341,7 +6352,17 @@ pop3 $B!_(B $B"$(B $B"$(B $B"$(B @end table @item -$BG$0U$N?t$N0z?t$r.$5$1$l$P??!#(B +@item @code{>} +$B%a%C%;!<%8$N%5%$%:$,(B @samp{SIZE} $B$h$jBg$-$1$l$P??!#(B +@end table + +@item +$BG$0U?t$N0z?t$rl9g$O!"(B@code{wl-ldap-server}$B!"(B@code{wl-ldap-port}, @command{ldapsearch} $B$X$"$i$+$8$a%3%^%s%Il9g(B) @pindex x-face-mule @@ -6749,6 +6774,7 @@ Emacs $B$GJT=8Cf$NAp9F%P%C%U%!$X(B dired $B$+$i%I%i%C%0(B&$B%I%m%C%W$9$k$@$ @end group @end lisp + @node MHC, Addrbook, dired-dd, Living with other packages @subsection mhc.el @pindex MHC @@ -6778,6 +6804,7 @@ mhc-current $B$N>l9g!'(B @end group @end lisp + @node Addrbook, mime-w3m, MHC, Living with other packages @subsection wl-addrbook.el @pindex Addrbook @@ -6796,6 +6823,7 @@ Mew $B$N(B Addrbook $B$r(B Wanderlust $B$G;HMQ$G$-$k$h$&$K$9$k$K$O!"(B @end group @end lisp + @node mime-w3m, , Addrbook, Living with other packages @subsection mime-w3m.el @pindex mime-w3m @@ -7237,6 +7265,7 @@ face $B$N@_Dj$O(B @file{.emacs} $B$K=q$/$3$H$O$G$-$J$$$N$G(B @file{~/.wl} $ @end group @end lisp + @node User-Agent Field, , Thread Format, Advanced Settings @subsection User-Agent $B%U%#!<%k%I(B @cindex X-Mailer @@ -7720,18 +7749,22 @@ elmo $B$O!"(B@samp{Elisp Library for Message Orchestration} $B$NN,$G$9!#(B * Function Index:: $B4X?t:w0z(B @end menu + @node Concept Index, Key Index, Index, Index @unnumberedsec $B35G0:w0z(B @printindex cp + @node Key Index, Variable Index, Concept Index, Index @unnumberedsec $B%-!<%P%$%s%I:w0z(B @printindex ky + @node Variable Index, Function Index, Key Index, Index @unnumberedsec $BJQ?t:w0z(B @printindex vr + @node Function Index, , Variable Index, Index @unnumberedsec $B4X?t:w0z(B @printindex fn diff --git a/doc/wl.texi b/doc/wl.texi index 7ecc95b..96dd5b2 100644 --- a/doc/wl.texi +++ b/doc/wl.texi @@ -4,7 +4,6 @@ @settitle Wanderlust -- Yet Another Message Interface On Emacsen -- @c %**end of header @documentlanguage en -@documentencoding us-ascii @include version.texi @synindex pg cp @finalout @@ -6411,7 +6410,7 @@ learn how to write the condition practically. @enumerate @item -Functions which accept argument @samp{FIELD-NAME} and @samp{VALUE}. +Functions which accept arguments @samp{FIELD-NAME} and @samp{VALUE}. (@samp{FIELD-NAME} is a symbol that describes the field name) @table @code @@ -6433,6 +6432,16 @@ from matching @code{\(\)} patterns in the previous @samp{VALUE}. @end table @item +Functions which accept an integer argument (@samp{SIZE}). + +@table @code +@item @code{<} +True if the size of the message is less than @samp{SIZE}. +@item @code{>} +True if the size of the message is greater than @samp{SIZE}. +@end table + +@item Functions which accept any number of arguments. @table @code @@ -6491,6 +6500,7 @@ summary displayed with nicknames. * Address Manager:: Address Manager @end menu + @node Mail Addresses, Address Manager, Address Book, Address Book @section Address book @cindex Address book Definition diff --git a/elmo/ChangeLog b/elmo/ChangeLog index 4811601..14fa636 100644 --- a/elmo/ChangeLog +++ b/elmo/ChangeLog @@ -1,3 +1,27 @@ +2002-12-10 Kenichi OKADA + + * elmo-archive.el: Specify charset. + +2002-12-04 Yuuichi Teranishi + + * elmo-pop3.el (elmo-pop3-process-filter): Check whether the pop3 + process buffer lives or not. + + * elmo-dop.el (elmo-dop-queue-flush): Don't append to the dop-queue + while flushing queues (It causes infinite loop). + +2002-11-26 Yuuichi Teranishi + + * elmo-imap4.el (elmo-folder-list-subfolders): Fixed last change. + +2002-11-24 Yuuichi Teranishi + + * utf7.el (toplevel): Check the ucs features dynamically. + (Advice from Yoichi NAKAYAMA ) + + * elmo-pipe.el (elmo-folder-creatable-p): Don't check whether the + folder is creatabe or not if it already exists. + 2002-11-21 Yuuichi Teranishi * elmo-nntp.el (elmo-nntp-search-primitive): Revert the last change. diff --git a/elmo/elmo-archive.el b/elmo/elmo-archive.el index 4db7c42..06fb518 100644 --- a/elmo/elmo-archive.el +++ b/elmo/elmo-archive.el @@ -1,4 +1,4 @@ -;;; elmo-archive.el --- Archive folder of ELMO. +;;; elmo-archive.el --- Archive folder of ELMO. -*- coding: euc-japan -*- ;; Copyright (C) 1998,1999,2000 OKUNISHI Fujikazu ;; Copyright (C) 1998,1999,2000 Yuuichi Teranishi diff --git a/elmo/elmo-dop.el b/elmo/elmo-dop.el index 3ddb76f..b29cc4a 100644 --- a/elmo/elmo-dop.el +++ b/elmo/elmo-dop.el @@ -133,7 +133,9 @@ Saved queue is old version(2.6). Clear all pending operations? ") (setq folder (elmo-make-folder (elmo-dop-queue-fname (car queue)))) - (elmo-folder-open folder)) + (elmo-folder-open folder) + (unless (elmo-folder-plugged-p folder) + (error "Unplugged."))) (elmo-dop-queue-arguments (car queue))) (elmo-folder-close folder)) (quit (setq failure t)) diff --git a/elmo/elmo-pipe.el b/elmo/elmo-pipe.el index 3470d41..c3bdc30 100644 --- a/elmo/elmo-pipe.el +++ b/elmo/elmo-pipe.el @@ -211,8 +211,12 @@ (elmo-folder-newsgroups (elmo-pipe-folder-src-internal folder))) (luna-define-method elmo-folder-creatable-p ((folder elmo-pipe-folder)) - (and (elmo-folder-creatable-p (elmo-pipe-folder-src-internal folder)) - (elmo-folder-creatable-p (elmo-pipe-folder-dst-internal folder)))) + (and (or + (elmo-folder-exists-p (elmo-pipe-folder-src-internal folder)) + (elmo-folder-creatable-p (elmo-pipe-folder-src-internal folder))) + (or + (elmo-folder-exists-p (elmo-pipe-folder-dst-internal folder)) + (elmo-folder-creatable-p (elmo-pipe-folder-dst-internal folder))))) (luna-define-method elmo-folder-writable-p ((folder elmo-pipe-folder)) (elmo-folder-writable-p (elmo-pipe-folder-dst-internal folder))) diff --git a/elmo/elmo-pop3.el b/elmo/elmo-pop3.el index 9c98ac3..0192041 100644 --- a/elmo/elmo-pop3.el +++ b/elmo/elmo-pop3.el @@ -233,19 +233,20 @@ If IF-EXISTS is `any-exists', get BIFF session or normal session if exists." return-value))) (defun elmo-pop3-process-filter (process output) - (with-current-buffer (process-buffer process) - (goto-char (point-max)) - (insert output) - (elmo-pop3-debug "RECEIVED: %s\n" output) - (if (and elmo-pop3-total-size - (> elmo-pop3-total-size - (min elmo-display-retrieval-progress-threshold 100))) - (elmo-display-progress - 'elmo-display-retrieval-progress - (format "Retrieving (%d/%d bytes)..." - (buffer-size) - elmo-pop3-total-size) - (/ (buffer-size) (/ elmo-pop3-total-size 100)))))) + (when (buffer-live-p (process-buffer process)) + (with-current-buffer (process-buffer process) + (goto-char (point-max)) + (insert output) + (elmo-pop3-debug "RECEIVED: %s\n" output) + (if (and elmo-pop3-total-size + (> elmo-pop3-total-size + (min elmo-display-retrieval-progress-threshold 100))) + (elmo-display-progress + 'elmo-display-retrieval-progress + (format "Retrieving (%d/%d bytes)..." + (buffer-size) + elmo-pop3-total-size) + (/ (buffer-size) (/ elmo-pop3-total-size 100))))))) (defun elmo-pop3-auth-user (session) (let ((process (elmo-network-session-process-internal session))) diff --git a/elmo/elmo-split.el b/elmo/elmo-split.el index d86e2c0..8d90e49 100644 --- a/elmo/elmo-split.el +++ b/elmo/elmo-split.el @@ -47,7 +47,7 @@ The format of this variable is a list of RULEs which has form like: The 1st element CONDITION is a sexp which consists of following. -1. Functions which accept argument FIELD-NAME and VALUE. +1. Functions which accept arguments FIELD-NAME and VALUE. FIELD-NAME is a symbol of the field name. `equal' ... True if the field value equals to VALUE. @@ -62,12 +62,17 @@ FIELD-NAME is a symbol of the field name. VALUE can contain \\& and \\N which will substitute from matching \\(\\) patterns in the previous VALUE. -2. Functions which accept any number of arguments. +2. Functions which accept an argument SIZE, SIZE is some number. + +`<' ... True if the size of the message is less than SIZE. +`>' ... True if the size of the message is greater than SIZE. + +3. Functions which accept any number of arguments. `or' ... True if one of the argument returns true. `and' ... True if all of the arguments return true. -3. A symbol. +4. A symbol. When a symbol is specified, it is evaluated. diff --git a/elmo/utf7.el b/elmo/utf7.el index 81e66ee..31702d7 100644 --- a/elmo/utf7.el +++ b/elmo/utf7.el @@ -86,9 +86,48 @@ "Return required length of padding for IMAP modified base64 fragment." (mod (- len) modulus)) -(static-cond +(cond + ((or (find-coding-system 'utf-7) + (module-installed-p 'un-define)) + (defun utf7-fragment-decode (start end &optional imap) + "Decode base64 encoded fragment from START to END of UTF-7 text in buffer. +Use IMAP modification if IMAP is non-nil." + (require 'un-define) + (save-restriction + (narrow-to-region start end) + (goto-char (point-min)) + (insert "+") + (when imap + (goto-char start) + (while (search-forward "," nil 'move-to-end) (replace-match "/"))) + (decode-coding-region (point-min) (point-max) 'utf-7))) + + (defun utf7-fragment-encode (start end &optional imap) + "Encode text from START to END in buffer as UTF-7 escape fragment. +Use IMAP modification if IMAP is non-nil." + (require 'un-define) + (let ((buffer (current-buffer)) + encoded-string) + (setq encoded-string + (with-temp-buffer + (insert-buffer-substring buffer start end) + (encode-coding-region (point-min) + (point-max) 'utf-7) + (goto-char (point-min)) + (when imap + (skip-chars-forward "+") + (delete-region (point-min) (point)) + (insert "&") + (while (search-forward "/" nil t) + (replace-match ","))) + (skip-chars-forward "^= \t\n" (point-max)) + (delete-region (point) (point-max)) + (buffer-string))) + (delete-region start end) + (insert encoded-string)))) ((and (featurep 'xemacs) - (module-installed-p 'xemacs-ucs)) + (or (find-coding-system 'utf-8) + (module-installed-p 'xemacs-ucs))) (defun utf7-fragment-decode (start end &optional imap) "Decode base64 encoded fragment from START to END of UTF-7 text in buffer. Use IMAP modification if IMAP is non-nil." @@ -105,7 +144,7 @@ Use IMAP modification if IMAP is non-nil." utf7-utf7-to-utf8-program t (current-buffer))) (decode-coding-region (point-min) (point-max) 'utf-8))) - + (defun utf7-fragment-encode (start end &optional imap) "Decode base64 encoded fragment from START to END of UTF-7 text in buffer. Use IMAP modification if IMAP is non-nil." @@ -136,54 +175,17 @@ Use IMAP modification if IMAP is non-nil." (buffer-string))) (delete-region start end) (insert encoded-string)))) - ((module-installed-p 'un-define) ;; Emacs - (defun utf7-fragment-decode (start end &optional imap) - "Decode base64 encoded fragment from START to END of UTF-7 text in buffer. -Use IMAP modification if IMAP is non-nil." - (require 'un-define) - (save-restriction - (narrow-to-region start end) - (goto-char (point-min)) - (insert "+") - (when imap - (goto-char start) - (while (search-forward "," nil 'move-to-end) (replace-match "/"))) - (decode-coding-region (point-min) (point-max) 'utf-7) - )) - - (defun utf7-fragment-encode (start end &optional imap) - "Encode text from START to END in buffer as UTF-7 escape fragment. -Use IMAP modification if IMAP is non-nil." - (require 'un-define) - (let ((buffer (current-buffer)) - encoded-string) - (setq encoded-string - (with-temp-buffer - (insert-buffer-substring buffer start end) - (encode-coding-region (point-min) - (point-max) 'utf-7) - (goto-char (point-min)) - (when imap - (skip-chars-forward "+") - (delete-region (point-min) (point)) - (insert "&") - (while (search-forward "/" nil t) - (replace-match ","))) - (skip-chars-forward "^= \t\n" (point-max)) - (delete-region (point) (point-max)) - (buffer-string))) - (delete-region start end) - (insert encoded-string)))) (t - ;; Define as null function. (defun utf7-fragment-decode (start end &optional imap) "Encode text from START to END in buffer as UTF-7 escape fragment. Use IMAP modification if IMAP is non-nil." + ;; Define as a null function. ) (defun utf7-fragment-encode (start end &optional imap) "Encode text from START to END in buffer as UTF-7 escape fragment. Use IMAP modification if IMAP is non-nil." + ;; Define as a null function. ))) (defun utf7-encode-region (start end &optional imap) diff --git a/tests/ChangeLog b/tests/ChangeLog index 58d1ae9..e479f1d 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2002-12-11 TAKAHASHI Kaoru + + * test-dist.el (test-version-toplevel-changelog): Fixed regexp. + 2002-10-27 TAKAHASHI Kaoru * test-dist.el (test-version-readme): New testcase. diff --git a/tests/test-dist.el b/tests/test-dist.el index 9e51553..d2c82f8 100644 --- a/tests/test-dist.el +++ b/tests/test-dist.el @@ -128,7 +128,7 @@ (with-temp-buffer (insert-file-contents (expand-file-name "ChangeLog" "./")) (re-search-forward - "\\* \\([0-9\\.]+\\) - \"\\([^\"]+\\)\".$") + "^\t\\* \\([0-9\\.]+\\) - \"\\([^\"]+\\)\"$") (lunit-assert (string= (product-version-string (product-find 'wl-version)) diff --git a/wl/ChangeLog b/wl/ChangeLog index 61108ef..cf4b2de 100644 --- a/wl/ChangeLog +++ b/wl/ChangeLog @@ -1,3 +1,30 @@ +2002-12-08 Kenichi OKADA + + * wl-draft.el (wl-draft-send-mail-with-smtp): Fix logic + for elmo-remove-passwd. + +2002-12-04 Yuuichi Teranishi + + * wl-folder.el (wl-folder-sync-entity): Fixed problem when the + folder is sticky. + (wl-folder-mark-as-read-all-entity): Ditto. + (wl-folder-prefetch-entity): Ditto. + +2002-12-04 Yasutaka SHINDOH + + * wl-demo.el (wl-demo-icon-name): Cope with Medow. + +2002-12-03 Yoichi NAKAYAMA + + * wl-summary.el (wl-summary-target-mark-erase): Simplify. + Delete messages on buffer for unplugged operation. + (wl-summary-erase): Ditto. + +2002-11-25 Yoichi NAKAYAMA + + * wl-vars.el (wl-summary-search-parent-by-subject-regexp): It can + take nil so as not to search parent by subject. + 2002-11-20 Yoichi NAKAYAMA * wl-folder.el (wl-folder-get-prev-folder): Ignore nemacs. diff --git a/wl/wl-demo.el b/wl/wl-demo.el index 3e06c69..2a822bd 100644 --- a/wl/wl-demo.el +++ b/wl/wl-demo.el @@ -41,7 +41,7 @@ (defconst wl-demo-icon-name (concat "wl-" (wl-version-status) - (if (string-match "^... Dec \\([ 1][0-9]\\|2[0-5]\\)" + (if (string-match "^... Dec \\([ 01][0-9]\\|2[0-5]\\)" (current-time-string)) "-xmas-logo" "-logo")) diff --git a/wl/wl-draft.el b/wl/wl-draft.el index 6010643..b9b2870 100644 --- a/wl/wl-draft.el +++ b/wl/wl-draft.el @@ -1104,7 +1104,7 @@ non-nil." (wl-draft-write-sendlog 'failed 'smtp smtp-server recipients id) (if (and (eq (car err) 'smtp-response-error) - (/= (nth 1 err) 334)) + (= (nth 1 err) 535)) (elmo-remove-passwd (wl-smtp-password-key smtp-sasl-user-name diff --git a/wl/wl-folder.el b/wl/wl-folder.el index e35d178..72c5628 100644 --- a/wl/wl-folder.el +++ b/wl/wl-folder.el @@ -998,14 +998,21 @@ If current line is group folder, check all sub entries." (wl-summary-always-sticky-folder-p folder)) wl-summary-highlight)) - wl-auto-select-first new unread) + wl-auto-select-first new unread sticky) (setq new (or (car nums) 0)) (setq unread (or (cadr nums) 0)) (if (or (not unread-only) (or (< 0 new) (< 0 unread))) - (let ((wl-summary-buffer-name (concat - wl-summary-buffer-name - (symbol-name this-command))) + (let ((wl-summary-buffer-name + (if (setq sticky (get-buffer (wl-summary-sticky-buffer-name + (elmo-folder-name-internal + folder)))) + ;; Sticky folder exists. + (wl-summary-sticky-buffer-name + (elmo-folder-name-internal folder)) + (concat + wl-summary-buffer-name + (symbol-name this-command)))) (wl-summary-use-frame nil) (wl-summary-always-sticky-folder-list nil)) (save-window-excursion @@ -1014,7 +1021,9 @@ If current line is group folder, check all sub entries." (wl-summary-get-sync-range folder) nil nil nil t) - (wl-summary-exit))))))))) + (if sticky + (wl-summary-save-status) + (wl-summary-exit)))))))))) (defun wl-folder-sync-current-entity (&optional unread-only) "Synchronize the folder at position. @@ -1048,22 +1057,32 @@ If current line is group folder, check all subfolders." (wl-summary-always-sticky-folder-p folder)) wl-summary-highlight)) - wl-auto-select-first new unread) + wl-auto-select-first new unread sticky) (setq new (or (car nums) 0)) (setq unread (or (cadr nums) 0)) (if (or (< 0 new) (< 0 unread)) (save-window-excursion (save-excursion - (let ((wl-summary-buffer-name (concat - wl-summary-buffer-name - (symbol-name this-command))) + (let ((wl-summary-buffer-name + (if (setq sticky (get-buffer + (wl-summary-sticky-buffer-name + (elmo-folder-name-internal + folder)))) + ;; Sticky folder exists. + (wl-summary-sticky-buffer-name + (elmo-folder-name-internal folder)) + (concat + wl-summary-buffer-name + (symbol-name this-command)))) (wl-summary-use-frame nil) (wl-summary-always-sticky-folder-list nil)) (wl-summary-goto-folder-subr entity (wl-summary-get-sync-range folder) nil) (wl-summary-mark-as-read-all) - (wl-summary-exit)))) + (if sticky + (wl-summary-save-status) + (wl-summary-exit))))) (sit-for 0)))))) (defun wl-folder-mark-as-read-all-current-entity () @@ -2679,16 +2698,24 @@ Use `wl-subscribed-mailing-list'." wl-summary-highlight)) wl-summary-exit-next-move wl-auto-select-first ret-val - count) + count sticky) (setq count (or (car nums) 0)) (setq count (+ count (wl-folder-count-incorporates folder))) (if (or (null (car nums)) ; unknown (< 0 count)) (save-window-excursion (save-excursion - (let ((wl-summary-buffer-name (concat - wl-summary-buffer-name - (symbol-name this-command))) + (let ((wl-summary-buffer-name + (if (setq sticky (get-buffer + (wl-summary-sticky-buffer-name + (elmo-folder-name-internal + folder)))) + ;; Sticky folder exists. + (wl-summary-sticky-buffer-name + (elmo-folder-name-internal folder)) + (concat + wl-summary-buffer-name + (symbol-name this-command)))) (wl-summary-use-frame nil) (wl-summary-always-sticky-folder-list nil)) (wl-summary-goto-folder-subr entity @@ -2696,7 +2723,9 @@ Use `wl-subscribed-mailing-list'." folder) nil) (setq ret-val (wl-summary-incorporate)) - (wl-summary-exit) + (if sticky + (wl-summary-save-status) + (wl-summary-exit)) ret-val))) (cons 0 0)))))) diff --git a/wl/wl-mime.el b/wl/wl-mime.el index 393ec98..9122401 100644 --- a/wl/wl-mime.el +++ b/wl/wl-mime.el @@ -330,7 +330,7 @@ It calls following-method selected from variable (while (< beg (point)) (if (re-search-backward "^-+BEGIN PGP SIGNED MESSAGE-+$" nil t) (setq count (+ count 1)) - (defbug))) + (debug))) (with-temp-buffer (set-buffer-multibyte nil) (insert (mime-entity-body entity)) diff --git a/wl/wl-summary.el b/wl/wl-summary.el index f9d1b6b..181808a 100644 --- a/wl/wl-summary.el +++ b/wl/wl-summary.el @@ -3075,6 +3075,7 @@ If optional argument NUMBER is specified, mark message specified by NUMBER." (wl-summary-unmark msg-num) (elmo-folder-delete-messages wl-summary-buffer-elmo-folder (list msg-num)) + (wl-summary-delete-messages-on-buffer (list msg-num)) (save-excursion (wl-summary-sync nil "update")))))) (message "Read-only folder."))) @@ -3085,11 +3086,11 @@ If optional argument NUMBER is specified, mark message specified by NUMBER." (message "No marked message.") (when (yes-or-no-p "Erase all marked messages without moving them to trash? ") - (while (car wl-summary-buffer-target-mark-list) - (let ((num (car wl-summary-buffer-target-mark-list))) - (wl-summary-unmark num) - (elmo-folder-delete-messages wl-summary-buffer-elmo-folder - (list num)))) + (elmo-folder-delete-messages wl-summary-buffer-elmo-folder + wl-summary-buffer-target-mark-list) + (wl-summary-delete-messages-on-buffer + wl-summary-buffer-target-mark-list) + (setq wl-summary-buffer-target-mark-list nil) (save-excursion (wl-summary-sync nil "update")))) (message "Read-only folder."))) diff --git a/wl/wl-vars.el b/wl/wl-vars.el index 342b251..e7832e9 100644 --- a/wl/wl-vars.el +++ b/wl/wl-vars.el @@ -326,8 +326,10 @@ It is highly recommended to set this value to t." (defcustom wl-summary-search-parent-by-subject-regexp "^[ \t]*\\(\\[[^:]+[,: ][0-9]+\\]\\)?[ \t]*re[\\^[:> ]" "*If message does not have in-reply-to field nor references field and - subject matches this regexp, search parent message by subject matching." - :type 'string +subject matches this regexp, search parent message by subject matching. +If nil, never search search parent by subject." + :type '(choice string + (const :tag "Don't search parent" nil)) :group 'wl-summary) ;; Important folders