summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/cwebdir/cwebman-w2c.ch')
-rw-r--r--Build/source/texk/web2c/cwebdir/cwebman-w2c.ch325
1 files changed, 325 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch b/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch
new file mode 100644
index 00000000000..491cb64c82d
--- /dev/null
+++ b/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch
@@ -0,0 +1,325 @@
+@q Changes for CWEB in TeX Live from numerous contributors. @>
+@q This file is in the Public Domain. @>
+
+@q Most of the original Kpathsea changes by Wlodek Bzyl and Olaf Weber @>
+@q were merged with the set of change files of the CWEBbin project; @>
+@q see https://github.com/ascherer/cwebbin for the original parts. @>
+
+@q This stripped change file {comm,ctang,cweav,ctwill,cwebman}-w2c.ch @>
+@q has been created from the elaborate set of change files @>
+@q {comm,ctang,cweav,cwebman}-patch.ch, @>
+@q {comm,cweav,cwebman}-extensions.ch, {comm,ctang,cweav}-output.ch, @>
+@q {comm,ctang,cweav}-i18n.ch, and cweav-twill.ch for CTWILL, and @>
+@q {comm,ctang,cweav,ctwill,cwebman}-texlive.ch with the 'tie' processor @>
+@q and is used as a monolithic changefile for {common,ctangle,cweave}.w @>
+@q and cwebman.tex in TeX Live. @>
+
+@q Please send comments, suggestions, etc. to tex-k@@tug.org. @>
+
+@x
+\input cwebmac
+\acrofalse\pdffalse\pdftexfalse
+@y
+\input cwebmac
+@z
+
+@x
+\def\page{\box255 } \normalbottom
+@y
+\let\page=\pagebody \raggedbottom
+\newcount\footnotecount \footnotecount 1\relax
+\def\cwebfootnote#1{\footnote{${}^{\the\footnotecount}$}{#1}%
+ \advance\footnotecount by 1\relax}
+@z
+
+@x
+\outer\def\section #1.{\penalty-500\bigskip
+ \centerline{\sectionfont\def\.##1{{\twelvett##1}} #1}\nobreak\vskip 6pt
+ \everypar{\hskip-\parindent\everypar{}}}
+@y
+\ifacro
+ \pdfpagewidth=\pagewidth \advance\pdfpagewidth by 2cm
+ \pdfpageheight=\pageheight \advance\pdfpageheight by 3cm
+ \ifpdftex \pdfhorigin=1cm \pdfvorigin=1cm
+ \else \advance\pdfpageheight by 1cm \global\pageshift=-1.54cm
+ \global\hoffset=-1.54cm \global\voffset=-1.54cm \fi
+\fi
+
+\newcount\destcount \destcount=1\relax
+
+\def\subsections{0}
+\outer\def\section #1.{\penalty-500\bigskip
+ \centerline{\sectionfont\def\.##1{{\twelvett##1}}
+ \ifacro\vbox to 0pt{\kern-2.5ex\relax
+ \ifpdftex\pdfdest num \destcount fitbh\relax
+ \else\special{pdf: dest (\the\destcount) [ @thispage /FitBH @ypos ]}\fi
+ \def\.##1{##1}\def\TeX{TeX}%
+ \ifpdftex\pdfoutline goto num \destcount
+ \ifnum\subsections>0 count -\subsections\fi {#1}\relax
+ \else\special{pdf: outline 0 << /Title (#1)
+ /A << /S /GoTo /D (\the\destcount) >> >>}\fi
+ \gdef\subsections{0}%
+ \global\advance\destcount by 1\relax
+ \kern2.5ex\relax
+ }\fi #1}\nobreak\vskip 6pt
+ \everypar{\hskip-\parindent\everypar{}}}
+
+\def\appA{15}
+\def\appB{16}
+\def\appC{17}
+
+\def\Appendix#1{\leavevmode
+ \ifacro\ifpdftex
+ \pdfstartlink attr{/Border[0 0 0]} goto num\csname app#1\endcsname\relax
+ \Blue\hbox{Appendix}~#1\Black
+ \pdfendlink
+ \else
+ \setbox0=\hbox{\special{pdf: bc [ \pdflinkcolor ]}{\hbox{Appendix}~#1}%
+ \special{pdf: ec}}\special{pdf: ann width \thewidth height \theheight
+ depth \thedepth << /Type /Annot /Subtype /Link /Border [0 0 0]
+ /A << /S /GoTo /D (\csname app#1\endcsname) >> >>}\box0\relax
+ \fi\else Appendix~#1\fi}
+
+\newcount\subdestcount \subdestcount=151\relax
+
+\outer\def\subsection #1.{\ifacro
+ \ifpdftex\pdfdest num \subdestcount fitbh\relax
+ \pdfoutline goto num \subdestcount {#1}\relax
+ \else\special{pdf: dest (\the\subdestcount) [ @thispage /FitBH @ypos ]}%
+ \special{pdf: outline 1 << /Title (#1)
+ /A << /S /GoTo /D (\the\subdestcount) >> >>}\fi
+ \global\advance\subdestcount by 1\relax
+ \fi}
+@z
+
+@x
+\def\runninghead{{\tentt CWEB} USER MANUAL (VERSION 4.1)}
+@y
+\def\Kpathsea/{{\mc KPATHSEA\spacefactor1000}}
+\def\runninghead{{\tentt CWEB} USER MANUAL (4.1 [\TeX~Live])}
+@z
+
+@x
+\vskip 18pt\centerline{(Version 4.1 --- February 2021)}
+@y
+\vskip 18pt\centerline{(Version 4.1 --- February 2021)%
+\footnote*{This document describes the extended \.{CWEB} (4.1 [\TeX~Live]).}}
+@z
+
+@x
+Internet page \.{http://www-cs-faculty.stanford.edu/\char`\~knuth/cweb.html}
+@y
+Internet page
+\pdfURL{\.{http://www-cs-faculty.stanford.edu/\char`\~knuth/cweb.html}}%
+ {http://www-cs-faculty.stanford.edu/\TILDE/knuth/cweb.html}
+@z
+
+@x
+\.{https://github.com/ascherer/cweb} with the really current news.
+@y
+\pdfURL{\.{https://github.com/ascherer/cweb}}%
+ {https://github.com/ascherer/cweb}
+with the really current news.
+@z
+
+@x
+should be sent to the \TeX-related mailing list \.{tex-k@tug.org}.
+@y
+should be sent to the \TeX-related mailing list
+\pdfURL{\.{tex-k@tug.org}}%
+ {mailto:tex-k@tug.org}.
+@z
+
+@x
+email address in a \.{CWEB} file (e.g., \.{tex-k@@tug.org}).
+@y
+email address in a \.{CWEB} file (e.g.,
+\pdfURL{\.{tex-k@@tug.org}}%
+ {mailto:tex-k@tug.org}).
+@z
+
+@x
+it cannot find them in the current directory.
+@y
+it cannot find them in the current directory.%
+\cwebfootnote{\acrofalse In this extended implementation, if an \.{@i}nclude
+file can not be found in the current directory, \.{CWEB} will use the
+conventions of the \Kpathsea/ library as outlined in section~\X91:File lookup
+with \Kpathsea/\X~of \pdfURL{appendix~D}{common-changes.pdf} to look for it.
+% FIXME
+(This is true for any other input or change file lookup.)}
+@z
+
+@x
+output by \.{CWEAVE}. (On by default.) (Has no effect on \.{CTANGLE}.)
+@y
+output by \.{CWEAVE}. (On by default.) (Has no effect on \.{CTANGLE}.)%
+\cwebfootnote{This extended version of \.{CWEB} adds the following options
+to the list:
+\hfil\smallskip
+\option d Set the debugging variable \\{kpathsea\_debug} to the numeric
+value $N\in[0,127]$ of this option. See section~93 % FIXME
+of \pdfURL{appendix~D}{common-changes.pdf} for details.
+\hfil\vskip\normallineskip
+\option i Indent parameters in function declarations. This causes the
+formal parameter declarations in function heads to be indented. (On by
+default; \.{-i} typesets declarations flush left; some people think this
+to be more logical than indenting them) (Has no effect on \.{CTANGLE}.)
+\hfil\vskip\normallineskip
+\option l This option takes the string of characters to its right as its
+argument to switch between different user languages and macro packages.
+For example, if you call \.{CWEAVE} with the `\.{+ld}' (or `\.{-ld}') option,
+the German \.{CWEB} macros \.{dcwebmac.tex} will be loaded in the first line
+of output instead of the English ones. To avoid conflicts, the Danish
+macros could be called \.{dkcwebmac.tex} and would be included by `\.{+ldk}'.
+(Off by default) (Has no effect on \.{CTANGLE}.)
+\hfil\vskip\normallineskip
+\option o Separate declarations and the first statement in a function block.
+\.{CWEAVE} automatically inserts a bit of extra space. (On by default.)
+(Has no effect on \.{CTANGLE}.)
+\hfil\vskip\normallineskip
+\option t Overwrite output files with temporary output only if changes occur.
+(On by default.)}
+@z
+
+@x
+Sometimes things don't work as smoothly, and you get a bunch of
+@y
+\acrofalse\pdftexfalse\pdffalse
+Sometimes things don't work as smoothly, and you get a bunch of
+@z
+
+@x
+`$\\{main}(\\{argc},\39\\{argv}{}$)'.
+@y
+`$\\{main}(\\{argc},\39\\{argv}{}$)'.
+\ifx\pdf+\pdftrue\fi
+\ifx\pdfoutput\undefined \pdftexfalse \else\ifnum\pdfoutput=0 \pdftexfalse
+\else \pdftextrue \pdfoutput=1\fi\fi
+\ifpdf\acrotrue\fi \ifpdftex\acrotrue\fi
+@z
+
+@x
+\section Hypertext and hyperdocumentation.
+@y
+\vfill\eject
+\section Hypertext and hyperdocumentation.
+@z
+
+@x
+the program sources at \.{ftp://ftp.cs.stanford.edu/pub/ctwill}.
+@y
+the program sources at
+\pdfURL{\.{ftp://ftp.cs.stanford.edu/pub/ctwill}}%
+ {ftp://ftp.cs.stanford.edu/pub/ctwill}.%
+\cwebfootnote{\TeX~Live comes with an up-to-date \.{ctwill} executable -- and
+its associated helpers -- out of the box.}
+@z
+
+@x
+As an example of a real program written in \.{CWEB}, Appendix~A
+@y
+As an example of a real program written in \.{CWEB}, \Appendix A
+@z
+
+@x
+Appendix B is the file that sets \TEX/ up to accept
+the output of \.{CWEAVE}, and Appendix~C discusses how to use some of those
+@y
+\Appendix B is the file that sets \TEX/ up to accept
+the output of \.{CWEAVE}, and \Appendix C discusses how to use some of those
+@z
+
+@x
+appendices D, E, and~F, which exhibit the complete source code for
+\.{CTANGLE} and \.{CWEAVE}.
+
+\vfil\eject\titletrue
+@y
+appendices \pdfURL{D}{common.pdf}, \pdfURL{E}{ctangle.pdf},
+and~\pdfURL{F}{cweave.pdf}, which exhibit the complete source code for
+\.{CTANGLE} and \.{CWEAVE}.%
+\cwebfootnote{Actually, \pdfURL{Appendix~D}{common.pdf} contains the source
+code for \.{COMMON}, and the additional \pdfURL{Appendix~G}{ctwill.pdf}
+exhibits the source code for \.{CTWILL}, which is based on \.{CWEAVE}.}
+
+\eject\titletrue
+@z
+
+@x
+\section Appendix A: Excerpts from a \.{CWEB} Program.
+@y
+\def\subsections{4}
+\section Appendix A: Excerpts from a \.{CWEB} Program.
+\subsection CWEB file format.
+@z
+
+@x
+generated sections 27--31 of the file \.{common.w}, which contains
+@y
+generated sections 27--31 of the file
+\pdfURL{\.{common.w}}{common.pdf}, which contains
+@z
+
+@x
+\def\runninghead{APPENDIX A --- TRANSLATION BY {\tentt CTANGLE}}
+@y
+\def\runninghead{APPENDIX A --- TRANSLATION BY {\tentt CTANGLE}}
+\subsection Translation by CTANGLE.
+@z
+
+@x
+\def\runninghead{APPENDIX A --- TRANSLATION BY {\tentt CWEAVE}}
+@y
+\def\runninghead{APPENDIX A --- TRANSLATION BY {\tentt CWEAVE}}
+\subsection Translation by CWEAVE.
+@z
+
+@x
+\def\runninghead{APPENDIX A --- FINAL DOCUMENT}
+
+And here's what the same excerpt looks like when typeset.
+(Can you spot the typographical nicety used in the \.{CWEB} code?)
+\let\K=\leftarrow
+@y
+\def\runninghead{APPENDIX A --- FINAL DOCUMENT}
+\subsection Final document.
+
+\acrofalse\pdftexfalse\pdffalse
+And here's what the same excerpt looks like when typeset.
+(Can you spot the typographical niceties used in the \.{CWEB} code?)
+\let\K=\leftarrow
+\def\C#1{\5\5\quad$\triangleright\,${\cmntfont#1}$\,\triangleleft$}
+@z
+
+@x
+\vfil\eject\titletrue
+@y
+\vfil\eject\titletrue
+\ifx\pdf+\pdftrue\fi
+\ifx\pdfoutput\undefined \pdftexfalse \else\ifnum\pdfoutput=0 \pdftexfalse
+\else \pdftextrue \pdfoutput=1\fi\fi
+\ifpdf\acrotrue\fi \ifpdftex\acrotrue\fi
+@z
+
+@x
+ \.{ { }\\vskip 15pt \\centerline\{(Version 4.1)\}{ }\\vfill\}}\cr}$$
+@y
+ \.{ { }\\vskip 15pt \\centerline\{(Version 4.1)\}{ }\\vfill\}}\cr}$$
+@z
+
+@x
+if you have a duplex printer. Appendices D, E, and F of the complete
+@y
+if you have a duplex printer. Appendices \pdfURL{D}{common.pdf},
+\pdfURL{E}{ctangle.pdf}, and \pdfURL{F}{cweave.pdf}\cwebfootnote{And
+\pdfURL{Appendix~G}{ctwill.pdf}.} of the complete
+@z
+
+@x
+\point 20. Furthermore, group titles can be converted to an arbitrary
+@y
+\vfill\eject
+\point 20. Furthermore, group titles can be converted to an arbitrary
+@z
+