diff --git a/source/libs/README b/source/libs/README index d95c0b075..3945cbf1e 100644 --- a/source/libs/README +++ b/source/libs/README @@ -25,8 +25,8 @@ graphite2 1.3.14 - checked 10apr20 http://sourceforge.net/projects/silgraphite/files/graphite2/ (requires C++11) -harfbuzz 8.2.1 - checked 19sep23 - https://github.com/harfbuzz/harfbuzz/releases/tag/8.2.1 +harfbuzz 8.2.2 - checked 18oct23 + https://github.com/harfbuzz/harfbuzz/releases/tag/8.2.2 icu 72.1 - checked 07jan23 https://github.com/unicode-org/icu/releases/ diff --git a/source/texk/texlive/windows_wrapper/runscript.tlu b/source/texk/texlive/windows_wrapper/runscript.tlu index 52f7ee457..c7d6d671a 100644 --- a/source/texk/texlive/windows_wrapper/runscript.tlu +++ b/source/texk/texlive/windows_wrapper/runscript.tlu @@ -555,7 +555,7 @@ end -- program name -- lower arg[0] : get file name part : remove extension -local progname, substcount = string.lower(arg[0]):gsub('^.*[\\/]', ''):gsub('%.[^.]*$', '') +local progname, substcount = string.lower(arg[0]):gsub('^.*[\\/]', ''):gsub('%.exe$', '') -- special behaviour when called under 'runscript' name if (progname == 'runscript') then -- we are called as: runscript progname ... diff --git a/source/texk/web2c/ChangeLog b/source/texk/web2c/ChangeLog index 055f2f7f2..b4947838b 100644 --- a/source/texk/web2c/ChangeLog +++ b/source/texk/web2c/ChangeLog @@ -1,3 +1,10 @@ +2023-10-21 Andreas Scherer + + * tangleboot.pin, + * tangle.ch, + * weav-twill.ch, + * weave.ch: 'current_option' runs from '0..n_options'. + 2023-10-13 Andreas Scherer * help.h, diff --git a/source/texk/web2c/cwebdir/ChangeLog b/source/texk/web2c/cwebdir/ChangeLog index 1057caf48..6db4bcd3a 100644 --- a/source/texk/web2c/cwebdir/ChangeLog +++ b/source/texk/web2c/cwebdir/ChangeLog @@ -1,3 +1,8 @@ +2023-10-18 Andreas Scherer + + * cwebmac.tex, + * cwebman-w2c.ch: Minor redactions in the CWEB manual and macros. + 2023-10-15 Andreas Scherer * cwebman-w2c.ch: Fix display in Skim and Acrobat Reader on macOS. diff --git a/source/texk/web2c/cwebdir/cwebacromac.tex b/source/texk/web2c/cwebdir/cwebacromac.tex index 876f938ac..4c12e4138 100644 --- a/source/texk/web2c/cwebdir/cwebacromac.tex +++ b/source/texk/web2c/cwebdir/cwebacromac.tex @@ -1,6 +1,6 @@ % hypertext macros for CWEB listings (in addition to cwebmac.tex) % Version 1.1 --- September 2023 -\ifx\acrohint\undefined\else\endinput\fi % these are not standalone macros +\ifx\ifacrohint\undefined\endinput\fi % these are not standalone macros \ifluatex % LuaTeX is almost like pdfTeX \protected\def\pdfliteral {\pdfextension literal} \protected\def\pdfstartlink {\pdfextension startlink\space} @@ -32,9 +32,9 @@ \def\dosanitizecommand#1#2{\ifx\nxt#1\addF{#2}\fi} \catcode`\[=1 \catcode`\]=2 \catcode`\{=12 \catcode`\}=12 - \def\lbchar[{] \def\rbchar[}] + \def\lbchar[{] \def\rbchar[}] \catcode`\[=12 \catcode`\]=12 \catcode`\{=1 \catcode`\}=2 -\catcode`\~=12 \def\tildechar{~} \catcode`\~=13 +\catcode`\~=12 \def\tildechar{~} \catcode`\~=13 \catcode`\|=0 |catcode`|\=12 |def|bschar{\} |catcode`|\=0 \catcode`\|=12 \def\makeoutlinetoks{\Tnumfalse\afterassignment\makeolproctok\let\nxt= } \def\makeolnexttok{\afterassignment\makeolproctok\let\nxt= } @@ -80,12 +80,12 @@ \else\ifx\nxt\\\ifinstr\addF{\bschar\bschar}\else\tokprocessedtrue\fi \else\ifx\nxt\&\ifinstr\addF&\else\tokprocessedtrue\fi \else\ifx\nxt\~\ifTnum\addF{0}\else\addF\tildechar\fi % 077->\T{\~77} - \else\ifx\nxt\_\ifTnum\addF{E}\else\addF_\fi % 0.1E5->\T{0.1\_5} - \else\ifx\nxt\^\ifTnum\addF{0x}\else\addF^\fi % 0x77 -> \T{\^77} - \else\ifx\nxt\\\\\ifTnum\addF{0b}\else\addF\\\fi % 0b10111 -> \T{\\10111} + \else\ifx\nxt\_\ifTnum\addF{E}\else\addF_\fi % 0.1E5->\T{0.1\_5} + \else\ifx\nxt\^\ifTnum\addF{0x}\else\addF^\fi % 0x77 -> \T{\^77} + \else\ifx\nxt\\\\\ifTnum\addF{0b}\else\addF\\\fi % 0b10111 -> \T{\\10111} \else\ifx\nxt\$\ifTnum\tokprocessedtrue\else\addF$\fi %$% \T{77\$L} - \else\ifx\nxt\{\addF\lbchar \else\ifx\nxt\}\addF\rbchar - \else\ifx\nxt\ \addF\space \else\ifx\nxt\#\addF{\string\#}% + \else\ifx\nxt\{\addF\lbchar\else\ifx\nxt\}\addF\rbchar + \else\ifx\nxt\ \addF\space\else\ifx\nxt\#\addF{\string\#}% \else\ifx\nxt\PP\addF{++}\else\ifx\nxt\MM\addF{--}% \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi diff --git a/source/texk/web2c/cwebdir/cwebmac.tex b/source/texk/web2c/cwebdir/cwebmac.tex index be2e149e7..4d288e577 100644 --- a/source/texk/web2c/cwebdir/cwebmac.tex +++ b/source/texk/web2c/cwebdir/cwebmac.tex @@ -1,5 +1,5 @@ % standard macros for CWEB listings (in addition to plain.tex) -% Version 4.11 --- September 2023 +% Version 4.11 --- October 2023 \ifx\renewenvironment\undefined\else\endinput\fi % LaTeX will use other macros \xdef\fmtversion{\fmtversion+CWEB4.11} \chardef\cwebversion=4 \chardef\cwebrevision=11 @@ -7,13 +7,13 @@ \ifx\pdf+\pdftrue\fi % for plain TeX in combination with dvipdfm % Uncomment the following line if you want PDF goodies to be the default %\ifx\pdf-\else\pdftrue\fi -\def\pdflinkcolor{0 0 1} % the RGB values for hyperlink color \ifxetex\pdftrue\fi % XeTeX produces PDF output +\ifpdf \def\pdflinkcolor{0 0 1} \fi % the RGB values for hyperlink color \let\ifacro=\ifpdf \newif\ifacrohint \ifacro\acrohinttrue\fi \ifhint\acrohinttrue\fi \newif\ifpdflua \ifluatex\pdfluatrue\fi \ifpdftex\pdfluatrue\fi -\ifpdflua % luaTeX and pdfTeX produce PDF output if \pdfoutput>0 - \def\Black{\pdfliteral{0 g 0 G}} % use rgb colors for direct PDF output too +\ifpdflua % luaTeX and pdfTeX produce PDF output if \pdfoutput>0 (default) + \def\Black{\pdfliteral{0 g 0 G}} % use rgb colors for direct PDF output too \def\Blue{\pdfliteral{\pdflinkcolor\space rg \pdflinkcolor\space RG}} \fi @@ -298,7 +298,7 @@ \newwrite\cont \output{\setbox0=\page % the first page is garbage \openout\cont=\contentsfile - \write\cont{\catcode `\noexpand\@=11\relax} % \makeatletter + \write\cont{\catcode `\noexpand\@=11\relax} % \makeatletter \global\output{\normaloutput\page\lheader\rheader}} \setpage \vbox to \vsize{} % the first \topmark won't be null @@ -310,7 +310,7 @@ \def\inx{\par\vskip6pt plus 1fil % we are beginning the index \def\page{\box255 } \normalbottom \write\cont{} % ensure that the contents file isn't empty - \write\cont{\catcode `\noexpand\@=12\relax} % \makeatother + \write\cont{\catcode `\noexpand\@=12\relax} % \makeatother \closeout\cont % the contents information has been fully gathered \output{\ifpagesaved\normaloutput{\box\sbox}\lheader\rheader\fi \global\setbox\sbox=\page \global\pagesavedtrue \mark{\topmark}} diff --git a/source/texk/web2c/cwebdir/cwebman-w2c.ch b/source/texk/web2c/cwebdir/cwebman-w2c.ch index 3947de5f0..e21f6a62b 100644 --- a/source/texk/web2c/cwebdir/cwebman-w2c.ch +++ b/source/texk/web2c/cwebdir/cwebman-w2c.ch @@ -354,3 +354,15 @@ Looking at those \point 20. Furthermore, group titles can be converted to an arbitrary @z +@x +\vfill\end +@y +\point 21. With modern \TeX\ engines like `\.{luatex}', `\.{pdftex}', and +`\.{xetex}' (but \\{not} with classic `\.{tex}') you can say `\.{\\input +pdfwebtocfront}' as the last command in the limbo section and run \TeX\ +\\{twice} on your woven \.{CWEB} document, in order to shift the +table-of-contents to the front of the {\mc PDF} output. + +\vfill\end +@z + diff --git a/source/texk/web2c/cwebdir/cwebman.tex b/source/texk/web2c/cwebdir/cwebman.tex index 2d53e7589..9ee5968fb 100644 --- a/source/texk/web2c/cwebdir/cwebman.tex +++ b/source/texk/web2c/cwebdir/cwebman.tex @@ -57,9 +57,6 @@ \noindent \TeX\ is a trademark of the American Mathematical Society. -\noindent -Acrobat Reader is a trademark of Adobe Systems Incorporated. - \bigskip\noindent The printed form of this manual is copyright \copyright\ 1994 by Addison-Wesley Publishing Company, Inc. All rights reserved. @@ -1147,23 +1144,21 @@ Many people have of course noticed analogies between \.{CWEB} and the World Wide Web. The \.{CWEB} macros are in fact set up so that the output of -\.{CWEAVE} can be converted easily into Portable Document Format, -with clickable hyperlinks that can be read with Adobe's Acrobat Reader, -using a widely available open-source program called \.{dvipdfm} developed -by Mark~A. Wicks. After using \.{CWEAVE} to convert \.{cob.w} into -\.{cob.tex}, you can prepare and view a hypertext version of the program -by giving the commands +\.{CWEAVE} can be converted easily into Portable Document Format, with +clickable hyperlinks that can be read with your favorite {\mc PDF} viewer, +using a widely available open-source program called \.{dvipdfm} developed by +Mark~A. Wicks. After using \.{CWEAVE} to convert \.{cob.w} into \.{cob.tex}, +you can prepare a hypertext version of the program by giving the commands $$\vbox{\halign{\.{#}\hfil\cr tex "\\let\\pdf+ \\input cob"\cr -dvipdfm cob\cr -acroread cob.pdf\cr}}$$ +dvipdfm cob\cr}}$$ instead of invoking \TeX\ in the normal way. (Thanks to Hans Hagen, C\'esar Augusto Rorato Crusius, and Julian Gilbey for the macros that make this work.) Alternatively, thanks to H\`an Th\^e\kern-.3em\raise.3ex\hbox{\'{}} Th\`anh and Andreas Scherer, you can generate \.{cob.pdf} in one step by simply saying `\.{pdftex}~\.{cob}'. -Alternative ways to create PDF output from \.{CWEB} input are to say +Alternative ways to create {\mc PDF} output from \.{CWEB} input are to say `\.{xetex}~\.{cob}' or `\.{luatex}~\.{cob}'. Similar output for ``smart'' devices can be created with Martin Ruckert's @@ -1743,9 +1738,9 @@ \\pdfURL\{the author\}\{mailto:andreas\\UNDER/github@@freenet.de\}\cr or visit \\pdfURL\{his home page\}\{https://github.com/ascherer\}\cr}}$$ In a {\mc PDF} document, the first argument will appear in blue as -clickable text; the Acrobat reader, if correctly configured, will then -redirect those links to the user's browser and open either the -email client or the HTML viewer. In a hardcopy document, both arguments +clickable text; the {\mc PDF} viewer, if correctly configured, will then +redirect those links to the user's browser and open either the email client +or the {\mc HTML} viewer. In a hardcopy document, both arguments will be printed ({\tt the second in parentheses and typewriter type}). Certain special characters in an Internet address need to be handled in a somewhat awkward way, so that \.{CWEAVE} and/or \TeX\ @@ -1757,7 +1752,7 @@ others if the depth feature of \.{@*} has been used. Such bookmark entries are also known as ``outlines.'' Moreover, the final group title, `Names of the sections', -can be opened up to list every section name; Acrobat users can therefore +can be opened up to list every section name; users can therefore navigate easily to any desired section. The macros of \.{cwebacromac.tex} are careful to ``sanitize'' all the names diff --git a/source/texk/web2c/cwebdir/texinputs/pdfctproofmac.tex b/source/texk/web2c/cwebdir/texinputs/pdfctproofmac.tex index 53c184ac5..0ba54fbe8 100644 --- a/source/texk/web2c/cwebdir/texinputs/pdfctproofmac.tex +++ b/source/texk/web2c/cwebdir/texinputs/pdfctproofmac.tex @@ -9,13 +9,13 @@ \ifx\pdf+\pdftrue\fi % for plain TeX in combination with dvipdfm % Uncomment the following line if you want PDF goodies to be the default %\ifx\pdf-\else\pdftrue\fi -\def\pdflinkcolor{0 0 1} % the RGB values for hyperlink color \ifxetex\pdftrue\fi % XeTeX produces PDF output +\ifpdf \def\pdflinkcolor{0 0 1} \fi % the RGB values for hyperlink color \let\ifacro=\ifpdf \newif\ifacrohint \ifacro\acrohinttrue\fi \ifhint\acrohinttrue\fi \newif\ifpdflua \ifluatex\pdfluatrue\fi \ifpdftex\pdfluatrue\fi \ifpdflua % luaTeX and pdfTeX produce PDF output if \pdfoutput>0 - \def\Black{\pdfliteral{0 g 0 G}} % use rgb colors for direct PDF output too + \def\Black{\pdfliteral{0 g 0 G}} % use rgb colors for direct PDF output too \def\Blue{\pdfliteral{\pdflinkcolor\space rg \pdflinkcolor\space RG}} \fi diff --git a/source/texk/web2c/cwebdir/texinputs/pdfctwimac.tex b/source/texk/web2c/cwebdir/texinputs/pdfctwimac.tex index 7e820d164..699cc4766 100644 --- a/source/texk/web2c/cwebdir/texinputs/pdfctwimac.tex +++ b/source/texk/web2c/cwebdir/texinputs/pdfctwimac.tex @@ -10,8 +10,8 @@ \ifx\pdf+\pdftrue\fi % for plain TeX in combination with dvipdfm % Uncomment the following line if you want PDF goodies to be the default %\ifx\pdf-\else\pdftrue\fi -\def\pdflinkcolor{0 0 1} % the RGB values for hyperlink color \ifxetex\pdftrue\fi % XeTeX produces PDF output +\ifpdf \def\pdflinkcolor{0 0 1} \fi % the RGB values for hyperlink color \let\ifacro=\ifpdf \ifhint\message{These macros are not suitable for HiTeX.} \message{Please use 'ctwill +P [+lpdf]' instead.} @@ -20,7 +20,7 @@ \newif\ifacrohint \ifacro\acrohinttrue\fi \ifhint\acrohinttrue\fi \newif\ifpdflua \ifluatex\pdfluatrue\fi \ifpdftex\pdfluatrue\fi \ifpdflua % luaTeX and pdfTeX produce PDF output if \pdfoutput>0 - \def\Black{\pdfliteral{0 g 0 G}} % use rgb colors for direct PDF output too + \def\Black{\pdfliteral{0 g 0 G}} % use rgb colors for direct PDF output too \def\Blue{\pdfliteral{\pdflinkcolor\space rg \pdflinkcolor\space RG}} \fi diff --git a/source/texk/web2c/tangle.ch b/source/texk/web2c/tangle.ch index 644373e99..c3a9de3f8 100644 --- a/source/texk/web2c/tangle.ch +++ b/source/texk/web2c/tangle.ch @@ -681,7 +681,7 @@ Parse a Unix-style command line. @ = procedure parse_arguments; -const n_options = 10; {Pascal won't count array lengths for us.} +const n_options = 9; {Pascal won't count array lengths for us.} var @!long_options: array[0..n_options] of getopt_struct; @!getopt_return_val: integer; @!option_index: c_int_type; diff --git a/source/texk/web2c/tangleboot.pin b/source/texk/web2c/tangleboot.pin index e13c47fcd..ed0acc4d9 100644 --- a/source/texk/web2c/tangleboot.pin +++ b/source/texk/web2c/tangleboot.pin @@ -61,7 +61,7 @@ end{:32}else{33:}begin writeln(stdout,'. (l.',line:1,')'); for j:=1 to outptr do write(stdout,xchr[outbuf[j-1]]); write(stdout,'... ');end{:33};fflush(stdout);history:=2; {debugskipped:=debugcycle;debughelp;}end; -{:31}{188:}procedure parsearguments;const noptions=10; +{:31}{188:}procedure parsearguments;const noptions=9; var longoptions:array[0..noptions]of getoptstruct; getoptreturnval:integer;optionindex:cinttype;currentoption:0..noptions; len:integer;begin{190:}currentoption:=0; diff --git a/source/texk/web2c/weav-twill.ch b/source/texk/web2c/weav-twill.ch index 06ef08f1d..72e8b801a 100644 --- a/source/texk/web2c/weav-twill.ch +++ b/source/texk/web2c/weav-twill.ch @@ -692,9 +692,9 @@ var lhs:integer; Section 264. @x WEAVE.CH -const n_options = 5; {Pascal won't count array lengths for us.} -@y const n_options = 4; {Pascal won't count array lengths for us.} +@y +const n_options = 3; {Pascal won't count array lengths for us.} @z @x WEAVE.CH diff --git a/source/texk/web2c/weave.ch b/source/texk/web2c/weave.ch index 1458f5840..57fa2eb80 100644 --- a/source/texk/web2c/weave.ch +++ b/source/texk/web2c/weave.ch @@ -563,7 +563,7 @@ Parse a Unix-style command line. @ = procedure parse_arguments; -const n_options = 5; {Pascal won't count array lengths for us.} +const n_options = 4; {Pascal won't count array lengths for us.} var @!long_options: array[0..n_options] of getopt_struct; @!getopt_return_val: integer; @!option_index: c_int_type;