From: teranisi Date: Sun, 27 Oct 2002 04:48:13 +0000 (+0000) Subject: Synch up with main trunk. X-Git-Tag: elmo-mark-restart~97 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e96dea9114f814f5d3acc5f014bc95fb71a48e97;p=elisp%2Fwanderlust.git Synch up with main trunk. --- diff --git a/ChangeLog b/ChangeLog index 99e0226..b66eb9c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2002-10-24 TAKAHASHI Kaoru + + * INSTALL, INSTALL,ja: Update Recommended combination of MIME + module package. + 2002-10-02 Yoichi NAKAYAMA * doc/wl-refcard.tex: Fix diff --git a/INSTALL.ja b/INSTALL.ja index 6fe544e..28c147f 100644 --- a/INSTALL.ja +++ b/INSTALL.ja @@ -43,13 +43,13 @@ MIME$BMQ%b%8%e!<%k$NA*Br(B (c) Emacs 20.1$B!A(B20.3 - APEL 10.3, CLIME 1.14.5, SEMI 1.14.4 + APEL 10.4, CLIME 1.14.5, SEMI 1.14.4 FLIM $B$,F0$-$^$;$s$N$G!"Be$o$j$K(B CLIME $B$r%$%s%9%H!<%k$7$F$/$@$5$$!#(B (d) Emacs 19.34 (Mule 2.3) - APEL 10.3, CLIME 1.14.5, SEMI 1.14.4 + APEL 10.4, CLIME 1.14.5, SEMI 1.14.4 Emacs 19.34 $B%Y!<%9$N(B Mule $B$G$O(B SEMI $B$rF0:n$5$;$k$3$H$,2DG=$G$9!#2<5-(B $B$N%Z!<%8$,;29M$K$J$j$^$9!#(B diff --git a/doc/texinfo.tex b/doc/texinfo.tex index b0a1cfc..fbaaebd 100644 --- a/doc/texinfo.tex +++ b/doc/texinfo.tex @@ -3,10 +3,10 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2002-06-04.06} +\def\texinfoversion{2002-10-13.14} % -% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -% 2000, 01, 02 Free Software Foundation, Inc. +% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, +% 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. % % This texinfo.tex file is free software; you can redistribute it and/or % modify it under the terms of the GNU General Public License as @@ -36,12 +36,11 @@ % (and all CTAN mirrors, see http://www.ctan.org), % and /home/gd/gnu/doc/texinfo.tex on the GNU machines. % +% The GNU Texinfo home page is http://www.gnu.org/software/texinfo. +% % The texinfo.tex in any given Texinfo distribution could well be out % of date, so if that's what you're using, please check. % -% Texinfo has a small home page at http://texinfo.org/ and also -% http://www.gnu.org/software/texinfo. -% % Send bug reports to bug-texinfo@gnu.org. Please include including a % complete document in each bug report with which we can reproduce the % problem. Patches are, of course, greatly appreciated. @@ -142,14 +141,20 @@ % \def\gobble#1{} +% True if #1 is the empty string, i.e., called like `\ifempty{}'. +% +\def\ifempty#1{\ifemptyx #1\emptymarkA\emptymarkB}% +\def\ifemptyx#1#2\emptymarkB{\ifx #1\emptymarkA}% + +% Hyphenation fixes. \hyphenation{ap-pen-dix} \hyphenation{mini-buf-fer mini-buf-fers} \hyphenation{eshell} \hyphenation{white-space} % Margin to add to right of even pages, to left of odd pages. -\newdimen \bindingoffset -\newdimen \normaloffset +\newdimen\bindingoffset +\newdimen\normaloffset \newdimen\pagewidth \newdimen\pageheight % Sometimes it is convenient to have everything in the transcript file @@ -987,40 +992,39 @@ where each line of input produces a line of output.} \openin 1 \jobname.toc \ifeof 1\else\begingroup \closein 1 - \indexnofonts - \def\tt{} - \let\_ = \normalunderscore % Thanh's hack / proper braces in bookmarks \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace % \def\chapentry ##1##2##3{} - \let\appendixentry = \chapentry - \def\unnumbchapentry ##1##2{} \def\secentry ##1##2##3##4{\advancenumber{chap##2}} - \def\unnumbsecentry ##1##2##3{\advancenumber{chap##2}} \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}} - \def\unnumbsubsecentry ##1##2##3##4{\advancenumber{sec##2.##3}} \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}} - \def\unnumbsubsubsecentry ##1##2##3##4##5{\advancenumber{subsec##2.##3.##4}} + \let\appendixentry = \chapentry + \let\unnumbchapentry = \chapentry + \let\unnumbsecentry = \secentry + \let\unnumbsubsecentry = \subsecentry + \let\unnumbsubsubsecentry = \subsubsecentry \input \jobname.toc \def\chapentry ##1##2##3{% \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}} - \let\appendixentry = \chapentry - \def\unnumbchapentry ##1##2{% - \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} \def\secentry ##1##2##3##4{% \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}} - \def\unnumbsecentry ##1##2##3{% - \pdfoutline goto name{\pdfmkpgn{##3}}{##1}} \def\subsecentry ##1##2##3##4##5{% \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}} - \def\unnumbsubsecentry ##1##2##3##4{% - \pdfoutline goto name{\pdfmkpgn{##4}}{##1}} \def\subsubsecentry ##1##2##3##4##5##6{% \pdfoutline goto name{\pdfmkpgn{##6}}{##1}} - \def\unnumbsubsubsecentry ##1##2##3##4##5{% - \pdfoutline goto name{\pdfmkpgn{##5}}{##1}} + \let\appendixentry = \chapentry + \let\unnumbchapentry = \chapentry + \let\unnumbsecentry = \secentry + \let\unnumbsubsecentry = \subsecentry + \let\unnumbsubsubsecentry = \subsubsecentry + % + % Make special characters normal for writing to the pdf file. + % + \indexnofonts + \let\tt=\relax + \turnoffactive \input \jobname.toc \endgroup\fi }} @@ -1170,7 +1174,7 @@ where each line of input produces a line of output.} \newcount\mainmagstep \ifx\bigger\relax % not really supported. - \let\mainmagstep=\magstep1 + \mainmagstep=\magstep1 \setfont\textrm\rmshape{12}{1000} \setfont\texttt\ttshape{12}{1000} \else @@ -1231,6 +1235,7 @@ where each line of input produces a line of output.} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\authorrm{\secrm} +\def\authortt{\sectt} % Chapter (and unnumbered) fonts (17.28pt). \setfont\chaprm\rmbshape{12}{\magstep2} @@ -1345,6 +1350,7 @@ where each line of input produces a line of output.} \setfont\shortcontrm\rmshape{12}{1000} \setfont\shortcontbf\bxshape{12}{1000} \setfont\shortcontsl\slshape{12}{1000} +\setfont\shortconttt\ttshape{12}{1000} %% Add scribe-like font environments, plus @l for inline lisp (usually sans %% serif) and @ii for TeX italic @@ -1592,7 +1598,8 @@ where each line of input produces a line of output.} \let\subtitlerm=\tenrm \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}% % - \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}% + \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines + \let\tt=\authortt}% % % Leave some space at the very top of the page. \vglue\titlepagetopglue @@ -2413,19 +2420,20 @@ width0pt\relax} \fi \let\item = \relax } -% Ignore @ignore, @ifhtml, @ifinfo, @ifplaintext, @ifnottex, @html, @menu, -% @direntry, and @documentdescription. +% Ignore @ignore, @ifhtml, @ifinfo, and the like. % -\def\ignore{\doignore{ignore}} +\def\direntry{\doignore{direntry}} +\def\documentdescriptionword{documentdescription} +\def\documentdescription{\doignore{documentdescription}} +\def\html{\doignore{html}} \def\ifhtml{\doignore{ifhtml}} \def\ifinfo{\doignore{ifinfo}} -\def\ifplaintext{\doignore{ifplaintext}} \def\ifnottex{\doignore{ifnottex}} -\def\html{\doignore{html}} +\def\ifplaintext{\doignore{ifplaintext}} +\def\ifxml{\doignore{ifxml}} +\def\ignore{\doignore{ignore}} \def\menu{\doignore{menu}} -\def\direntry{\doignore{direntry}} -\def\documentdescription{\doignore{documentdescription}} -\def\documentdescriptionword{documentdescription} +\def\xml{\doignore{xml}} % @dircategory CATEGORY -- specify a category of the dir file % which this file should belong to. Ignore this in TeX. @@ -2507,7 +2515,7 @@ width0pt\relax} \fi % We must actually expand the ignored text to look for the @end % command, so that nested ignore constructs work. Thus, we put the % text into a \vbox and then do nothing with the result. To minimize - % the change of memory overflow, we follow the approach outlined on + % the chance of memory overflow, we follow the approach outlined on % page 401 of the TeXbook: make the current font be a dummy font. % \setbox0 = \vbox\bgroup @@ -2559,7 +2567,7 @@ width0pt\relax} \fi % Do minimal line-breaking. \pretolerance = 10000 % - % Do not execute instructions in @tex + % Do not execute instructions in @tex. \def\tex{\doignore{tex}}% % Do not execute macro definitions. % `c' is a comment character, so the word `macro' will get cut off. @@ -3549,13 +3557,18 @@ width0pt\relax} \fi \global\let\subsubsection = \numberedsubsubsec } +% we use \chapno to avoid indenting back +\def\appendixbox#1{% + \setbox0 = \hbox{\putwordAppendix{} \the\chapno}% + \hbox to \wd0{#1\hss}} + \outer\def\appendix{\parsearg\appendixyyy} \def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz \def\appendixzzz #1{% \secno=0 \subsecno=0 \subsubsecno=0 \global\advance \appendixno by 1 \message{\putwordAppendix\space \appendixletter}% -\chapmacro {#1}{\putwordAppendix{} \appendixletter}% +\chapmacro {#1}{\appendixbox{\putwordAppendix{} \appendixletter}}% \gdef\thissection{#1}% \gdef\thischaptername{#1}% \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% @@ -3597,7 +3610,7 @@ width0pt\relax} \fi \unnumbchapmacro {#1}% \gdef\thischapter{#1}\gdef\thissection{#1}% \toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash unnumbchapentry{\the\toks0}}}% +\edef\temp{\noexpand\writetocentry{\realbackslash unnumbchapentry{\the\toks0}{\the\chapno}}}% \temp \unnumbnoderef \global\let\section = \unnumberedsec @@ -3639,7 +3652,7 @@ width0pt\relax} \fi \plainsecheading {#1}\gdef\thissection{#1}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry% - {\the\toks0}{\the\chapno}}}% + {\the\toks0}{\the\chapno}{\the\secno}}}% \temp \unnumbnoderef \nobreak @@ -3678,7 +3691,7 @@ width0pt\relax} \fi \plainsubsecheading {#1}\gdef\thissection{#1}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry% - {\the\toks0}{\the\chapno}{\the\secno}}}% + {\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}}}% \temp \unnumbnoderef \nobreak @@ -3719,7 +3732,7 @@ width0pt\relax} \fi \plainsubsubsecheading {#1}\gdef\thissection{#1}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry% - {\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}}}% + {\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}% \temp \unnumbnoderef \nobreak @@ -4007,16 +4020,17 @@ width0pt\relax} \fi \let\unnumbchapentry = \shortunnumberedentry % We want a true roman here for the page numbers. \secfonts - \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl + \let\rm=\shortcontrm \let\bf=\shortcontbf + \let\sl=\shortcontsl \let\tt=\shortconttt \rm \hyphenpenalty = 10000 \advance\baselineskip by 1pt % Open it up a little. \def\secentry ##1##2##3##4{} - \def\unnumbsecentry ##1##2##3{} \def\subsecentry ##1##2##3##4##5{} - \def\unnumbsubsecentry ##1##2##3##4{} \def\subsubsecentry ##1##2##3##4##5##6{} - \def\unnumbsubsubsecentry ##1##2##3##4##5{} + \let\unnumbsecentry = \secentry + \let\unnumbsubsecentry = \subsecentry + \let\unnumbsubsubsecentry = \subsubsecentry \openin 1 \jobname.toc \ifeof 1 \else \closein 1 @@ -4049,7 +4063,8 @@ width0pt\relax} \fi } % Appendices, in the main contents. -\def\appendixentry#1#2#3{\dochapentry{\putwordAppendix{} #2\labelspace#1}{#3}} +\def\appendixentry#1#2#3{% + \dochapentry{\appendixbox{\putwordAppendix{} #2}\labelspace#1}{#3}} % % Appendices, in the short toc. \let\shortappendixentry = \shortchapentry @@ -4073,21 +4088,21 @@ width0pt\relax} \fi } % Unnumbered chapters. -\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}} -\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}} +\def\unnumbchapentry#1#2#3{\dochapentry{#1}{#3}} +\def\shortunnumberedentry#1#2#3{\tocentry{#1}{\doshortpageno\bgroup#3\egroup}} % Sections. \def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} -\def\unnumbsecentry#1#2#3{\dosecentry{#1}{#3}} +\def\unnumbsecentry#1#2#3#4{\dosecentry{#1}{#4}} % Subsections. \def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} -\def\unnumbsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} +\def\unnumbsubsecentry#1#2#3#4#5{\dosubsecentry{#1}{#5}} % And subsubsections. \def\subsubsecentry#1#2#3#4#5#6{% \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} -\def\unnumbsubsubsecentry#1#2#3#4#5{\dosubsubsecentry{#1}{#5}} +\def\unnumbsubsubsecentry#1#2#3#4#5#6{\dosubsubsecentry{#1}{#6}} % This parameter controls the indentation of the various levels. \newdimen\tocindent \tocindent = 3pc @@ -4620,30 +4635,68 @@ width0pt\relax} \fi } % @copying ... @end copying. -% Save the text away for @insertcopying later. +% Save the text away for @insertcopying later. Many commands won't be +% allowed in this context, but that's ok. +% +% We save the uninterpreted tokens, rather than creating a box. +% Saving the text in a box would be much easier, but then all the +% typesetting commands (@smallbook, font changes, etc.) have to be done +% beforehand -- and a) we want @copying to be done first in the source +% file; b) letting users define the frontmatter in as flexible order as +% possible is very desirable. % -\newbox\copyingbox -% \def\copying{\begingroup - \parindent = 0pt % looks wrong on title page - \def\Ecopying{\egroup\endgroup}% - \global\setbox\copyingbox = \vbox\bgroup + % Define a command to swallow text until we reach `@end copying'. + % \ is the escape char in this texinfo.tex file, so it is the + % delimiter for the command; @ will be the escape char when we read + % it, but that doesn't matter. + \long\def\docopying##1\end copying{\gdef\copyingtext{##1}\enddocopying}% + % + % We must preserve ^^M's in the input file; see \insertcopying below. + \catcode`\^^M = \active + \docopying } -% @insertcopying. -% -\def\insertcopying{\unvcopy\copyingbox} +% What we do to finish off the copying text. +% +\def\enddocopying{\endgroup\ignorespaces} +% @insertcopying. Here we must play games with ^^M's. On the one hand, +% we need them to delimit commands such as `@end quotation', so they +% must be active. On the other hand, we certainly don't want every +% end-of-line to be a \par, as would happen with the normal active +% definition of ^^M. On the third hand, two ^^M's in a row should still +% generate a \par. +% +% Our approach is to make ^^M insert a space and a penalty1 normally; +% then it can also check if \lastpenalty=1. If it does, then manually +% do \par. +% +% Seems pretty fragile, but for the limited use of getting the copying +% text (which should be quite simple) inserted, we can hope it's ok. +% % +{\catcode`\^^M=\active % +\gdef\insertcopying{\begingroup % + \parindent = 0pt % looks wrong on title page + \def^^M{% + \ifnum \lastpenalty=1 % + \par % + \else % + \space \penalty 1 % + \fi % + }% + \copyingtext % +\endgroup}% +} \message{defuns,} % @defun etc. % Allow user to change definition object font (\df) internally -\def\setdeffont #1 {\csname DEF#1\endcsname} +\def\setdeffont#1 {\csname DEF#1\endcsname} \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt -\newskip\deftypemargin \deftypemargin=12pt \newskip\deflastargmargin \deflastargmargin=18pt \newcount\parencount @@ -4702,32 +4755,47 @@ width0pt\relax} \fi \global\let& = \ampnr } -% First, defname, which formats the header line itself. -% #1 should be the function name. -% #2 should be the type of definition, such as "Function". - -\def\defname #1#2{% -% Get the values of \leftskip and \rightskip as they were -% outside the @def... -\dimen2=\leftskip -\advance\dimen2 by -\defbodyindent -\noindent -\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}% -\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line -\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations -\parshape 2 0in \dimen0 \defargsindent \dimen1 -% Now output arg 2 ("Function" or some such) -% ending at \deftypemargin from the right margin, -% but stuck inside a box of width 0 so it does not interfere with linebreaking -{% Adjust \hsize to exclude the ambient margins, -% so that \rightline will obey them. -\advance \hsize by -\dimen2 -\rlap{\rightline{{\rm #2}\hskip -1.25pc }}}% -% Make all lines underfull and no complaints: -\tolerance=10000 \hbadness=10000 -\advance\leftskip by -\defbodyindent -\exdentamount=\defbodyindent -{\df #1}\enskip % Generate function name +% \defname, which formats the name of the @def (not the args). +% #1 is the function name. +% #2 is the type of definition, such as "Function". +% +\def\defname#1#2{% + % How we'll output the type name. Putting it in brackets helps + % distinguish it from the body text that may end up on the next line + % just below it. + \ifempty{#2}% + \def\defnametype{}% + \else + \def\defnametype{[\rm #2]}% + \fi + % + % Get the values of \leftskip and \rightskip as they were outside the @def... + \dimen2=\leftskip + \advance\dimen2 by -\defbodyindent + % + % Figure out values for the paragraph shape. + \setbox0=\hbox{\hskip \deflastargmargin{\defnametype}}% + \dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line + \dimen1=\hsize \advance \dimen1 by -\defargsindent % size for continuations + \parshape 2 0in \dimen0 \defargsindent \dimen1 + % + % Output arg 2 ("Function" or some such) but stuck inside a box of + % width 0 so it does not interfere with linebreaking. + \noindent + % + {% Adjust \hsize to exclude the ambient margins, + % so that \rightline will obey them. + \advance \hsize by -\dimen2 + \dimen3 = 0pt % was -1.25pc + \rlap{\rightline{\defnametype\kern\dimen3}}% + }% + % + % Allow all lines to be underfull without complaint: + \tolerance=10000 \hbadness=10000 + \advance\leftskip by -\defbodyindent + \exdentamount=\defbodyindent + {\df #1}\enskip % output function name + % \defunargs will be called next to output the arguments, if any. } % Common pieces to start any @def... @@ -6035,11 +6103,13 @@ should work if nowhere else does.} } % Parameters in order: 1) textheight; 2) textwidth; 3) voffset; -% 4) hoffset; 5) binding offset; 6) topskip. We also call -% \setleading{\textleading}, so the caller should define \textleading. -% The caller should also set \parskip. +% 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8) +% physical page width. +% +% We also call \setleading{\textleading}, so the caller should define +% \textleading. The caller should also set \parskip. % -\def\internalpagesizes#1#2#3#4#5#6{% +\def\internalpagesizes#1#2#3#4#5#6#7#8{% \voffset = #3\relax \topskip = #6\relax \splittopskip = \topskip @@ -6058,6 +6128,11 @@ should work if nowhere else does.} \normaloffset = #4\relax \bindingoffset = #5\relax % + \ifpdf + \pdfpageheight #7\relax + \pdfpagewidth #8\relax + \fi + % \setleading{\textleading} % \parindent = \defaultparindent @@ -6079,7 +6154,10 @@ should work if nowhere else does.} \textleading = 13.2pt % % If page is nothing but text, make it come out even. - \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}% + \internalpagesizes{46\baselineskip}{6in}% + {\voffset}{.25in}% + {\bindingoffset}{36pt}% + {11in}{8.5in}% }} % Use @smallbook to reset parameters for 7x9.5 (or so) format. @@ -6087,13 +6165,15 @@ should work if nowhere else does.} \parskip = 2pt plus 1pt \textleading = 12pt % - \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}% + \internalpagesizes{7.5in}{5in}% + {\voffset}{.25in}% + {\bindingoffset}{16pt}% + {9.25in}{7in}% % \lispnarrowing = 0.3in \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt - \deftypemargin = 0pt \defbodyindent = .5cm \smallenvironments }} @@ -6101,12 +6181,27 @@ should work if nowhere else does.} % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt - \textleading = 12pt + \textleading = 13.2pt % - \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}% + % Double-side printing via postscript on Laserjet 4050 + % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm. + % To change the settings for a different printer or situation, adjust + % \normaloffset until the front-side and back-side texts align. Then + % do the same for \bindingoffset. You can set these for testing in + % your texinfo source file like this: + % @tex + % \global\normaloffset = -6mm + % \global\bindingoffset = 10mm + % @end tex + \internalpagesizes{51\baselineskip}{160mm} + {\voffset}{\hoffset}% + {\bindingoffset}{44pt}% + {297mm}{210mm}% % \tolerance = 700 \hfuzz = 1pt + \contentsrightmargin = 0pt + \defbodyindent = 5mm }} % Use @afivepaper to print on European A5 paper. @@ -6116,37 +6211,42 @@ should work if nowhere else does.} \parskip = 2pt plus 1pt minus 0.1pt \textleading = 12.5pt % - \internalpagesizes{166mm}{120mm}{\voffset}{-8mm}{\bindingoffset}{8pt}% + \internalpagesizes{160mm}{120mm}% + {\voffset}{\hoffset}% + {\bindingoffset}{8pt}% + {210mm}{148mm}% % \lispnarrowing = 0.2in \tolerance = 800 \hfuzz = 1.2pt - \contentsrightmargin = 0mm - \deftypemargin = 0pt + \contentsrightmargin = 0pt \defbodyindent = 2mm \tableindent = 12mm % \smallenvironments }} -% A specific text layout, 24x15cm overall, intended for A4 paper. Top margin -% 29mm, hence bottom margin 28mm, nominal side margin 3cm. +% A specific text layout, 24x15cm overall, intended for A4 paper. \def\afourlatex{{\globaldefs = 1 - \textleading = 13.6pt - % \afourpaper - \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}% + \internalpagesizes{237mm}{150mm}% + {\voffset}{4.6mm}% + {\bindingoffset}{7mm}% + {297mm}{210mm}% % - % Must explicitly reset to 0 because we call \afourpaper, apparently, - % although this does not entirely make sense. + % Must explicitly reset to 0 because we call \afourpaper. \globaldefs = 0 }} -% Use @afourwide to print on European A4 paper in wide format. -\def\afourwide{% +% Use @afourwide to print on A4 paper in landscape format. +\def\afourwide{{\globaldefs = 1 \afourpaper - \internalpagesizes{6.5in}{9.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}% -} + \internalpagesizes{241mm}{165mm}% + {\voffset}{-2.95mm}% + {\bindingoffset}{7mm}% + {297mm}{210mm}% + \globaldefs = 0 +}} % @pagesizes TEXTHEIGHT[,TEXTWIDTH] % Perhaps we should allow setting the margins, \topskip, \parskip, @@ -6161,7 +6261,16 @@ should work if nowhere else does.} \parskip = 3pt plus 2pt minus 1pt \setleading{\textleading}% % - \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}% + \dimen0 = #1 + \advance\dimen0 by \voffset + % + \dimen2 = \hsize + \advance\dimen2 by \normaloffset + % + \internalpagesizes{#1}{\hsize}% + {\voffset}{\normaloffset}% + {\bindingoffset}{44pt}% + {\dimen0}{\dimen2}% }} % Set default to letter. @@ -6285,16 +6394,8 @@ should work if nowhere else does.} @let+=@normalplus @let$=@normaldollar}%$ font-lock fix -@def@normalturnoffactive{@let"=@normaldoublequote -@let\=@normalbackslash -@let~=@normaltilde -@let^=@normalcaret -@let_=@normalunderscore -@let|=@normalverticalbar -@let<=@normalless -@let>=@normalgreater -@let+=@normalplus -@let$=@normaldollar}%$ font-lock fix +% Same as @turnoffactive except for \. +@def@normalturnoffactive{@turnoffactive @let\=@normalbackslash} % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. diff --git a/doc/version.tex b/doc/version.tex index 5a7d553..9a58611 100644 --- a/doc/version.tex +++ b/doc/version.tex @@ -1 +1 @@ -\def\versionnumber{2.9.15} +\def\versionnumber{2.11.0} diff --git a/doc/version.texi b/doc/version.texi index 7dea2fc..9aa1963 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -1 +1 @@ -@set VERSION 2.9.15 +@set VERSION 2.11.0 diff --git a/doc/wl-ja.texi b/doc/wl-ja.texi index 877178e..925051d 100644 --- a/doc/wl-ja.texi +++ b/doc/wl-ja.texi @@ -144,6 +144,7 @@ into another language, under the above conditions for modified versions. * Disconnected Operations:: $B%*%U%i%$%s=hM}(B * Expire and Archive:: $B%a%C%;!<%8$N<+F0:o=|$H%"!<%+%$%V(B * Scoring:: $B%a%C%;!<%8$N%9%3%"(B +* Split messages:: $B%a%C%;!<%8$N?6$jJ,$1(B * Address Book:: $B%"%I%l%9D"(B * Customization:: $B%+%9%?%^%$%:(B * Terminology:: $BMQ8l$N2r@b(B @@ -278,7 +279,7 @@ APEL, FLIM, SEMI $B$N=g$K%$%s%9%H!<%k$7$F$/$@$5$$!#(B $B?d>)$5$l$k(B APEL, FLIM, SEMI $B$N%P!<%8%g%s$NAH9g$;$O!"0J2<$NDL$j$G$9!#(B @itemize @minus -@item APEL 10.3, FLIM 1.14.3, SEMI 1.14.3 +@item APEL 10.4, FLIM 1.14.4, SEMI 1.14.4 @end itemize $B$=$NB>!"(BFLIM, SEMI $B$K$O$$$m$$$m$JJQ7A%P!<%8%g%s$,B8:_$7$^$9$,!"(B @@ -287,8 +288,8 @@ APEL, FLIM, SEMI $B$N=g$K%$%s%9%H!<%k$7$F$/$@$5$$!#(B $BNc$($P!"0J2<$NAH9g$;$GF0:n$9$k$3$H$,3NG'$5$l$F$$$^$9!#(B @itemize @minus -@item APEL 10.2, Chao 1.14.1, REMI 1.14.2 -@item APEL 10.2, SLIM 1.14.3, EMY 1.13.9 +@item APEL 10.4, SLIM 1.14.9, SEMI 1.14.4 +@item APEL 10.4, CLIME 1.14.5, EMIKO 1.14.1 @end itemize APEL, FLIM $B$b$7$/$O(B SEMI $B$N%P!<%8%g%s%"%C%W$r9T$C$?>l9g$O!"(BWanderlust $B$r(B @@ -1768,9 +1769,11 @@ IMAP $B%U%)%k%@$GD>@\>C$7$?>l9g$@$1%5!<%P>e$N%^!<%/$,>C$($^$9!#(B) $B$3$l$K4^$^$l$k#6$D$N%U%)%k%@$NI=<($r:G?7$N$b$N$K99?7$7$^$9!#(B @subsubsection $B%U%)%k%@$NA*Br(B -$B%U%)%k%@$N9T$K%+!<%=%k$rCV$$$F%j%?!<%s(B($B%9%Z!<%9(B)$B%-!<$r2!$9$H$=$N%U%)%k%@$NFbMF$rI=<($9$k%5%^%j%b!<%I$K0\F0$7$^$9!#(B +$B%U%)%k%@$N9T$K%+!<%=%k$rCV$$$F%j%?!<%s(B($B%9%Z!<%9(B)$B%-!<$r2!$9$H$=$N%U%)%k%@(B +$B$NFbMF$rI=<($9$k%5%^%j%b!<%I$K0\F0$7$^$9!#(B -$B$3$N$H$-!"JQ?t(B @code{wl-stay-folder-window} $B$,(B non-nil $B$J$i%5%^%j$K0\F0$7$?$H$-$K%U%)%k%@%P%C%U%!$N1&$K%5%^%j$N%P%C%U%!$,8=$l$^$9!#(B +$B$3$N$H$-!"JQ?t(B @code{wl-stay-folder-window} $B$,(B non-nil $B$J$i%5%^%j$K0\F0(B +$B$7$?$H$-$K%U%)%k%@%P%C%U%!$N1&$K%5%^%j$N%P%C%U%!$,8=$l$^$9!#(B @subsection $B%-!<%P%$%s%I(B @@ -5743,7 +5746,7 @@ prefix argument $B$rIU$1$F(B @kbd{C-u M-x wl-summary-archive} $B$G$C$F(B procmail $BIw$K?6$jJ,$1$k$3$H$,$G$-$^$9!#(B +$B$3$N5!G=$r;H$&$K$O!"$^$:(B @file{~/.emacs} $B$K0J2<$N$h$&$K@_Dj$7$F2<$5$$!#(B + +@lisp +(autoload 'elmo-split "elmo-split" "Split messages on the folder." t) +@end lisp + +@kbd{M-x elmo-split} $B$9$k$H(B @code{elmo-split-rule} $B$K=>$C$F?6$jJ,$1$r(B +$B2A$9$k!#(B} + ((equal x-ml-name "wanderlust") "%wanderlust" continue) + ;; @r{Yahoo $BMxMQr7o(B} @samp{$B%U%)%k%@(B} [@code{continue}]) +@end lisp + +$B$H$$$&0lAH$G$9!#(B +$BBh0l$NMWAG(B @samp{$B>r7o(B} $B$O(B sexp $B$G$9!#>\$7$/$O$9$08e$G@bL@$7$^$9!#(B +$BBhFs$NMWAG(B @samp{$B%U%)%k%@(B} $B$O%a%C%;!<%8$N?6$jJ,$1@h$N%U%)%k%@L>$G$9!#(B +$B$b$7Bh;0$NMWAG(B @code{continue} $B$,%7%s%\%k$H$7$FM?$($i$l$k$H!"(B +$B$=$N>r7o$,K~$?$5$l$?$H$7$F$b?6$jJ,$15,B'$NI>2A$rB3$1$^$9!#(B + +@samp{$B>r7o(B} $B$N5-K!$O0J2<$N$h$&$K$J$j$^$9!#e$G5s$2$?Nc$r(B +$B;29M$K$7$F2<$5$$!#(B + +@enumerate +@item +@samp{$B%U%#!<%k%IL>(B} $B$*$h$S(B @samp{$BCM(B} $B$r0z?t$H$7$F(B} $B$O%U%#!<%k%IL>$rI=$9%7%s%\%k$G$9(B) + +@table @code +@item @code{equal} +$B%U%#!<%k%I$NCM$,(B @samp{$BCM(B} $B$KEy$7$1$l$P??!#(B +$BBgJ8;z>.J8;z$N:9$OL5;k$5$l$^$9!#(B +@item @code{match} +$B%U%#!<%k%I$NCM$,(B @samp{$BCM(B} $B$K%^%C%A$9$l$P??!#(B +@samp{$BCM(B} $B$O(B @code{\&} $B$d(B @code{\N} $B$r4^$`$3$H$,$G$-$^$9!#(B +$B$=$l$i$O$=$NA0$N(B @samp{$BCM(B} $B$G(B @code{\(\)} $B$K%^%C%A$7$?%Q%?!<%s$K(B +$BCV$-49$($i$l$^$9!#(B +@item @code{address-equal} +$B$=$N%U%#!<%k%I$K$"$k%"%I%l%9$N$$$:$l$+$,(B @samp{$BCM(B} $B$KEy$7$1$l$P??!#(B +$BBgJ8;z>.J8;z$N:9$OL5;k$5$l$^$9!#(B +@item @code{address-match} +$B$=$N%U%#!<%k%I$K$"$k%"%I%l%9$N$$$:$l$+$,(B @samp{$BCM(B} $B$K%^%C%A$9$l$P??!#(B +@samp{$BCM(B} $B$O(B @code{\&} $B$d(B @code{\N} $B$r4^$`$3$H$,$G$-$^$9!#(B +$B$=$l$i$O$=$NA0$N(B @samp{$BCM(B} $B$G(B @code{\(\)} $B$K%^%C%A$7$?%Q%?!<%s$K(B +$BCV$-49$($i$l$^$9!#(B +@end table + +@item +$BG$0U$N?t$N0z?t$r2A$7$^$9!#(B +@end enumerate + + +@node Address Book, Customization, Split messages, Top @chapter $B%"%I%l%9D"(B @cindex Address Book diff --git a/doc/wl.texi b/doc/wl.texi index 61e9cc1..ccff474 100644 --- a/doc/wl.texi +++ b/doc/wl.texi @@ -119,6 +119,7 @@ This manual is for Wanderlust @value{VERSION}. * Disconnected Operations:: Off-Line management * Expire and Archive:: Automatic expiration and archiving of messages * Scoring:: Score of the messages +* Split messages:: Splitting messages * Address Book:: Management of Address Book * Customization:: Customizing Wanderlust * Terminology:: Terminologies @@ -254,7 +255,7 @@ may help you.}. Recommended combination of APEL, FLIM and SEMI are following: @itemize @minus -@item APEL 10.3, FLIM 1.14.3 and SEMI 1.14.3 +@item APEL 10.4, FLIM 1.14.4 and SEMI 1.14.4 @end itemize You can also use many other FLIM/SEMI variants. Combination of the @@ -262,8 +263,8 @@ latest versions should work. For example, the following combination are confirmed to work. @itemize @minus -@item APEL 10.2, Chao 1.14.1, REMI 1.14.2 -@item APEL 10.2, SLIM 1.14.3, EMY 1.13.9 +@item APEL 10.4, SLIM 1.14.9, SEMI 1.14.4 +@item APEL 10.4, CLIME 1.14.5, EMIKO 1.14.1 @end itemize You have to re-install Wanderlust if you upgraded APEL, FLIM or SEMI. @@ -5822,7 +5823,7 @@ Needless to say, you can use your own function. @end table -@node Scoring, Address Book, Expire and Archive, Top +@node Scoring, Split messages, Expire and Archive, Top @chapter Score of the Messages @cindex Scoring @c @cindex Kill File @@ -6320,7 +6321,104 @@ pop3 N E E E @end example -@node Address Book, Customization, Scoring, Top +@node Split messages, Address Book, Scoring, Top +@chapter Message splitting +@cindex Split messages + +You can use @code{elmo-split} to split message in folder +@code{elmo-split-folder} a la procmail according to some specified rules. +To use this feature, set as follows in your @file{~/.emacs} at first. + +@lisp +(autoload 'elmo-split "elmo-split" "Split messages on the folder." t) +@end lisp + +Then you can invoke @kbd{M-x elmo-split} to split messages according to +@code{elmo-split-rule}. On the other hand, invoke @kbd{C-u M-x elmo-split} +to do a rehearsal (do not split actually). + +We will describe how to specify the rule. First of all, see following +example, please. + +@lisp +@group +(setq elmo-split-rule + ;; @r{Store messages from spammers into @samp{+junk}} + '(((or (address-equal from "i.am@@spammer") + (address-equal from "dull-work@@dull-boy") + (address-equal from "death-march@@software") + (address-equal from "ares@@aon.at") + (address-equal from "get-money@@richman")) + "+junk") + ;; @r{Store messages from mule mailing list into @samp{%mule}} + ((equal x-ml-name "mule") "%mule") + ;; @r{Store messages from wanderlust mailing list into @samp{%wanderlust}} + ;; @r{and continue evaluating following rules} + ((equal x-ml-name "wanderlust") "%wanderlust" continue) + ;; @r{Store messages from Yahoo user into @samp{+yahoo-{username}}} + ((match from "\\(.*\\)@@yahoo\\.com") + "+yahoo-\\1") + ;; @r{Store unmatched mails into @samp{+inbox}} + (t "+inbox"))) +@end group +@end lisp + +The basic unit of the rule is a combination like + +@lisp +(@samp{CONDITION} @samp{FOLDER} [@code{continue}]) +@end lisp + +The 1st element @samp{CONDITION} is a sexp. Its grammar will be +explained below. The 2nd element @samp{FOLDER} is the name of the folder +to split messages into. When the 3rd element @code{continue} is +specified as symbol, evaluating rules is not stopped even when the +condition is satisfied. + +The grammar for @samp{CONDITION} is as follows. See example above to +learn how to write the condition practically. + +@enumerate +@item +Functions which accept argument @samp{FIELD-NAME} and @samp{VALUE}. +(@samp{FIELD-NAME} is a symbol that describes the field name) + +@table @code +@item @code{equal} +True if the field value equals to @samp{VALUE}. +Case of the letters are ignored. +@item @code{match} +True if the field value matches to VALUE. +@samp{VALUE} can contain @code{\&} and @code{\N} which will substitute +from matching @code{\(\)} patterns in the previous @samp{VALUE}. +@item @code{address-equal} +True if one of the addresses in the field equals to +@samp{VALUE}. Case of the letters are ignored. +@item @code{address-match} +True if one of the addresses in the field matches to +@samp{VALUE}. +@samp{VALUE} can contain @code{\&} and @code{\N} which will substitute +from matching @code{\(\)} patterns in the previous @samp{VALUE}. +@end table + +@item +Functions which accept any number of arguments. + +@table @code +@item @code{or} +True if one of the argument returns true. +@item @code{and} +True if all of the arguments return true. +@end table + +@item +A symbol. + +When a symbol is specified, it is evaluated. +@end enumerate + + +@node Address Book, Customization, Split messages, Top @chapter Address Book @cindex Address Book diff --git a/etc/VERSION b/etc/VERSION index ec00d1f..f5d204d 100644 --- a/etc/VERSION +++ b/etc/VERSION @@ -118,8 +118,13 @@ 2.7.x Too Funky -2.8.0 Something -2.8.1 Something +2.8.0 Something +2.8.1 Something 2.9.x Unchained Melody -2.9.15 Undercover Of The Night \ No newline at end of file +2.9.15 Undercover Of The Night + +2.10.0 Venus + +2.11.x Wonderwall +2.11.0 Wanted Dead Or Alive diff --git a/tests/ChangeLog b/tests/ChangeLog index 722cba2..a3a9854 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,8 @@ +2002-10-24 TAKAHASHI Kaoru + + * check-modules.el (check-modules-flim-content-transfer-encoding): + Fixed `mime-encode-string' testcase. + 2002-07-12 TAKAHASHI Kaoru * check-modules.el (check-modules-charsets-mime-charset-alist): diff --git a/tests/check-modules.el b/tests/check-modules.el index a9e4071..1b1744c 100644 --- a/tests/check-modules.el +++ b/tests/check-modules.el @@ -84,9 +84,12 @@ ;; Content-Transfer-Encoding (FLIM API Version 1.14 Draft Release 3) (luna-define-method check-modules-flim-content-transfer-encoding ((case check-modules)) (require 'mel) - (lunit-assert (fboundp 'mime-decode-string)) ; [Required] -;;; document only? -;;; (lunit-assert (fboundp 'mime-encode-string)) ; [Required] + ;; mime-decode-string (string encoding) [Required] + (lunit-assert (fboundp 'mime-decode-string)) + (lunit-assert (fboundp (mel-find-function 'mime-decode-string "base64"))) + ;; mime-encode-string (string encoding) [Required] + (lunit-assert (fboundp (mel-find-function 'mime-encode-string "base64"))) + (lunit-assert (fboundp 'base64-decode-string)) ; [Required] (lunit-assert (fboundp 'base64-encode-string)) ; [Required] (lunit-assert (fboundp 'mime-write-decoded-region)) ; [Required]