diff options
53 files changed, 249 insertions, 274 deletions
diff --git a/Build/source/texk/web2c/ChangeLog b/Build/source/texk/web2c/ChangeLog index afc9cfcd790..624998caee8 100644 --- a/Build/source/texk/web2c/ChangeLog +++ b/Build/source/texk/web2c/ChangeLog @@ -1,3 +1,15 @@ +2014-01-20 Peter Breitenlohner <peb@mppmu.mpg.de> + + TeX tuneup of 2014. + * gftopk.web, mf.web, pltotf.web, tex.web, tftopl.web, + vftovp.web, vptovf.web: Import new versions from Knuth and + remove some trailing white space. + * gftopk.ch, pltotf.ch, tex.ch, tftopl.ch, vftovp.ch, vptovf.ch, + mftraptest: Adapted. + * triptrap/{mftrap.fot,mftrap.log,mftrapin.log,trap.typ}, + triptrap/{trip.fot,trip.log, trip.typ,tripin.log}: New versions + from Knuth. + 2014-01-19 Peter Breitenlohner <peb@mppmu.mpg.de> * mftraptest: Stricter checking. diff --git a/Build/source/texk/web2c/alephdir/ChangeLog b/Build/source/texk/web2c/alephdir/ChangeLog index 5088881389c..c3216e377e0 100644 --- a/Build/source/texk/web2c/alephdir/ChangeLog +++ b/Build/source/texk/web2c/alephdir/ChangeLog @@ -1,3 +1,9 @@ +2014-01-20 Peter Breitenlohner <peb@mppmu.mpg.de> + + TeX tuneup of 2014. + * com16bit.ch, eobase.ch, eoext.ch, eover.ch, omstr.ch, + om16bit.ch: Adapt to TeX Version 3.14159265. + 2014-01-14 Peter Breitenlohner <peb@mppmu.mpg.de> * com16bit.ch, comsrcspec.ch: Write dump_name to the terminal. diff --git a/Build/source/texk/web2c/alephdir/alephextra.h b/Build/source/texk/web2c/alephdir/alephextra.h index f4a461b738a..3a997f0a926 100644 --- a/Build/source/texk/web2c/alephdir/alephextra.h +++ b/Build/source/texk/web2c/alephdir/alephextra.h @@ -23,7 +23,7 @@ along with Aleph; if not, write to the Free Software Foundation, Inc., */ -#define BANNER "This is Aleph, Version 3.1415926-1.15-2.1-0.1" +#define BANNER "This is Aleph, Version 3.14159265-1.15-2.1-0.1" #define COPYRIGHT_HOLDER "Aleph task force" #define AUTHOR NULL #define PROGRAM_HELP ALEPHHELP diff --git a/Build/source/texk/web2c/alephdir/com16bit.ch b/Build/source/texk/web2c/alephdir/com16bit.ch index 3c76a59f7bd..4d227e5edbf 100644 --- a/Build/source/texk/web2c/alephdir/com16bit.ch +++ b/Build/source/texk/web2c/alephdir/com16bit.ch @@ -40,9 +40,9 @@ @z @x -@d banner=='This is Aleph, Version 3.1415926-',Omega_version_banner,'-',eTeX_version_banner,'-',Aleph_version_banner {printed when \TeX\ starts} +@d banner=='This is Aleph, Version 3.14159265-',Omega_version_banner,'-',eTeX_version_banner,'-',Aleph_version_banner {printed when \TeX\ starts} @y -@d banner=='This is Aleph, Version 3.1415926-',Omega_version_banner,'-',eTeX_version_banner,'-',Aleph_version_banner {printed when \TeX\ starts} +@d banner=='This is Aleph, Version 3.14159265-',Omega_version_banner,'-',eTeX_version_banner,'-',Aleph_version_banner {printed when \TeX\ starts} @d banner_k==banner {Web2C announces itself} @z diff --git a/Build/source/texk/web2c/alephdir/eobase.ch b/Build/source/texk/web2c/alephdir/eobase.ch index d03011e1edd..a0d7d0ab007 100644 --- a/Build/source/texk/web2c/alephdir/eobase.ch +++ b/Build/source/texk/web2c/alephdir/eobase.ch @@ -182,11 +182,11 @@ to be known as `\Aleph'. @z %--------------------------------------- @x [1] m.2 l.187 - e-TeX basic -@d banner=='This is Omega, Version 3.1415926--1.15' {printed when \TeX\ starts} +@d banner=='This is Omega, Version 3.14159265--1.15' {printed when \TeX\ starts} @y -@d banner=='This is Aleph, Version 3.1415926--1.15--2.1' {printed when \TeX\ starts} +@d banner=='This is Aleph, Version 3.14159265--1.15--2.1' {printed when \TeX\ starts} @# -@d eTeX_version_string=='3.1415926--1.15--2.1' {current \eTeX\ version} +@d eTeX_version_string=='3.14159265--1.15--2.1' {current \eTeX\ version} @d eTeX_version=2 { \.{\\eTeXversion} } @d eTeX_revision==".1" { \.{\\eTeXrevision} } @# diff --git a/Build/source/texk/web2c/alephdir/eoext.ch b/Build/source/texk/web2c/alephdir/eoext.ch index 1d036ad9756..08432788270 100644 --- a/Build/source/texk/web2c/alephdir/eoext.ch +++ b/Build/source/texk/web2c/alephdir/eoext.ch @@ -62,9 +62,9 @@ print_err("Aleph capacity exceeded, sorry ["); @z %---------------------------------------- @x - print("Omega output, Version 3.1415926--1.15, "); + print("Omega output, Version 3.14159265--1.15, "); @y - print("Aleph output, Version 3.1415926--1.15--2.1, "); + print("Aleph output, Version 3.14159265--1.15--2.1, "); @z %---------------------------------------- @x diff --git a/Build/source/texk/web2c/alephdir/eover.ch b/Build/source/texk/web2c/alephdir/eover.ch index 3cc89729833..0384368969d 100644 --- a/Build/source/texk/web2c/alephdir/eover.ch +++ b/Build/source/texk/web2c/alephdir/eover.ch @@ -5,9 +5,9 @@ % * we add both \eTeX-like and \OMEGA-like % commands to display the version @x -@d banner=='This is Aleph, Version 3.1415926--1.15--2.1' {printed when \TeX\ starts} +@d banner=='This is Aleph, Version 3.14159265--1.15--2.1' {printed when \TeX\ starts} @# -@d eTeX_version_string=='3.1415926--1.15--2.1' {current \eTeX\ version} +@d eTeX_version_string=='3.14159265--1.15--2.1' {current \eTeX\ version} @d eTeX_version=2 { \.{\\eTeXversion} } @d eTeX_revision==".1" { \.{\\eTeXrevision} } @# @@ -30,7 +30,7 @@ @d Omega_revision==".15" { \.{\\Omegarevision} } @d Aleph_revision==".0" { \.{\\Alephrevision} } @# -@d banner=='This is Aleph, Version 3.1415926-',Omega_version_banner,'-',eTeX_version_banner,'-',Aleph_version_banner {printed when \TeX\ starts} +@d banner=='This is Aleph, Version 3.14159265-',Omega_version_banner,'-',eTeX_version_banner,'-',Aleph_version_banner {printed when \TeX\ starts} @d eTeX_banner==banner {printed when \eTeX\ starts} @z diff --git a/Build/source/texk/web2c/alephdir/om16bit.ch b/Build/source/texk/web2c/alephdir/om16bit.ch index 494c7f51fca..311b97f0c82 100644 --- a/Build/source/texk/web2c/alephdir/om16bit.ch +++ b/Build/source/texk/web2c/alephdir/om16bit.ch @@ -74,9 +74,9 @@ author' in the documentation are to D. E. Knuth. @z %--------------------------------------- @x [1] m.2 l.187 - Omega -@d banner=='This is TeX, Version 3.1415926' {printed when \TeX\ starts} +@d banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts} @y -@d banner=='This is Omega, Version 3.1415926--1.15' {printed when \TeX\ starts} +@d banner=='This is Omega, Version 3.14159265--1.15' {printed when \TeX\ starts} @z %--------------------------------------- @x [1] m.4 l.243 diff --git a/Build/source/texk/web2c/alephdir/omstr.ch b/Build/source/texk/web2c/alephdir/omstr.ch index a3b0b37d887..702e6f778c5 100644 --- a/Build/source/texk/web2c/alephdir/omstr.ch +++ b/Build/source/texk/web2c/alephdir/omstr.ch @@ -785,7 +785,7 @@ end @x [32] m.617 l.12262 - Omega print(" TeX output "); print_int(year); print_char("."); @y - print("Omega output, Version 3.1415926--1.15, "); + print("Omega output, Version 3.14159265--1.15, "); print_int(year); print_char("."); @z %--------------------------------------- diff --git a/Build/source/texk/web2c/enctex.ch b/Build/source/texk/web2c/enctex.ch index b3149f85295..13ff30d1faf 100644 --- a/Build/source/texk/web2c/enctex.ch +++ b/Build/source/texk/web2c/enctex.ch @@ -1,5 +1,5 @@ % enctex.ch: implementation of enc\TeX, to be applied on top of tex.ch. -% Used by TeX, e-TeX, pdfTeX, but not by pTeX or XeTeX, +% Used by TeX, e-TeX, pdfTeX, but not by pTeX or XeTeX. @x [2.20] l.579 - encTeX: global declarations xprn: array [ASCII_code] of ASCII_code; diff --git a/Build/source/texk/web2c/eptexdir/ChangeLog b/Build/source/texk/web2c/eptexdir/ChangeLog index 282508678f1..7b41ad704cb 100644 --- a/Build/source/texk/web2c/eptexdir/ChangeLog +++ b/Build/source/texk/web2c/eptexdir/ChangeLog @@ -1,3 +1,8 @@ +2014-01-20 Peter Breitenlohner <peb@mppmu.mpg.de> + + TeX tuneup of 2014. + * eptex.ech: Adapt to TeX Version 3.14159265. + 2014-01-17 Peter Breitenlohner <peb@mppmu.mpg.de> * eptrip.test (removed): Renamed ... diff --git a/Build/source/texk/web2c/eptexdir/eptex.ech b/Build/source/texk/web2c/eptexdir/eptex.ech index bb810e0cd06..23ab578bb05 100644 --- a/Build/source/texk/web2c/eptexdir/eptex.ech +++ b/Build/source/texk/web2c/eptexdir/eptex.ech @@ -22,7 +22,7 @@ {printed when p\TeX\ starts} @# @d epTeX_version==pTeX_version_string,epTeX_version_string,eTeX_version_string -@d epTeX_banner=='This is e-pTeX, Version 3.1415926',epTeX_version +@d epTeX_banner=='This is e-pTeX, Version 3.14159265',epTeX_version @d epTeX_banner_k==epTeX_banner {printed when \epTeX\ starts} @z diff --git a/Build/source/texk/web2c/etexdir/ChangeLog b/Build/source/texk/web2c/etexdir/ChangeLog index 3aeb8f1dbf8..ea503e01406 100644 --- a/Build/source/texk/web2c/etexdir/ChangeLog +++ b/Build/source/texk/web2c/etexdir/ChangeLog @@ -1,3 +1,8 @@ +2014-01-20 Peter Breitenlohner <peb@mppmu.mpg.de> + + TeX tuneup of 2014. + * etex.ch, tex.ch0, tex.ech: Adapt to TeX Version 3.14159265. + 2014-01-17 Peter Breitenlohner <peb@mppmu.mpg.de> * etrip.test (removed): Renamed ... diff --git a/Build/source/texk/web2c/etexdir/etex.ch b/Build/source/texk/web2c/etexdir/etex.ch index 858b13e5ee8..742cbec47ab 100644 --- a/Build/source/texk/web2c/etexdir/etex.ch +++ b/Build/source/texk/web2c/etexdir/etex.ch @@ -16,7 +16,7 @@ % TeX is a trademark of the American Mathematical Society. % e-TeX and NTS are trademarks of the NTS group. -% All line numbers refer to tex.web 3.1415926 as of March 23, 2008. +% All line numbers refer to tex.web 3.14159265 as of January 20, 2014. @x limbo l.1 - this is e-TeX % This program is copyright (C) 1982 by D. E. Knuth; all rights are reserved. @@ -189,16 +189,16 @@ known as `\eTeX'. @z %--------------------------------------- @x [1] m.2 l.190 - e-TeX basic -@d banner=='This is TeX, Version 3.1415926' {printed when \TeX\ starts} +@d banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts} @y @d eTeX_version=2 { \.{\\eTeXversion} } @d eTeX_revision==".6" { \.{\\eTeXrevision} } @d eTeX_version_string=='-2.6' {current \eTeX\ version} @# -@d eTeX_banner=='This is e-TeX, Version 3.1415926',eTeX_version_string +@d eTeX_banner=='This is e-TeX, Version 3.14159265',eTeX_version_string {printed when \eTeX\ starts} @# -@d TeX_banner=='This is TeX, Version 3.1415926' {printed when \TeX\ starts} +@d TeX_banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts} @# @d banner==eTeX_banner @# diff --git a/Build/source/texk/web2c/etexdir/tex.ch0 b/Build/source/texk/web2c/etexdir/tex.ch0 index 466dda7a162..775e75259f8 100644 --- a/Build/source/texk/web2c/etexdir/tex.ch0 +++ b/Build/source/texk/web2c/etexdir/tex.ch0 @@ -4,11 +4,11 @@ % Public domain. @x [1.2] l.188 -@d TeX_banner=='This is TeX, Version 3.1415926' {printed when \TeX\ starts} +@d TeX_banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts} @# @d banner==eTeX_banner @y -@d banner=='This is TeX, Version 3.1415926' {printed when \TeX\ starts} +@d banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts} @z @x [17.236] l.4960 - first web2c, then e-TeX additional integer parameters diff --git a/Build/source/texk/web2c/etexdir/tex.ech b/Build/source/texk/web2c/etexdir/tex.ech index 0328234bd50..03db36ebc6f 100644 --- a/Build/source/texk/web2c/etexdir/tex.ech +++ b/Build/source/texk/web2c/etexdir/tex.ech @@ -35,10 +35,10 @@ % Consequently, changes in all these files have to be coordinated. @x [1] m.2 l.188 - Web2C: extensions imply we're not e-TeX -@d eTeX_banner=='This is e-TeX, Version 3.1415926',eTeX_version_string +@d eTeX_banner=='This is e-TeX, Version 3.14159265',eTeX_version_string @y -@d eTeX_banner_k=='This is e-TeXk, Version 3.1415926',eTeX_version_string -@d eTeX_banner=='This is e-TeX, Version 3.1415926',eTeX_version_string +@d eTeX_banner_k=='This is e-TeXk, Version 3.14159265',eTeX_version_string +@d eTeX_banner=='This is e-TeX, Version 3.14159265',eTeX_version_string @z @x [51.1332] l.24203 (ca.) texarray diff --git a/Build/source/texk/web2c/euptexdir/ChangeLog b/Build/source/texk/web2c/euptexdir/ChangeLog index 309ee200324..61916a5523b 100644 --- a/Build/source/texk/web2c/euptexdir/ChangeLog +++ b/Build/source/texk/web2c/euptexdir/ChangeLog @@ -1,3 +1,8 @@ +2014-01-20 Peter Breitenlohner <peb@mppmu.mpg.de> + + TeX tuneup of 2014. + * euptex.ch0: Adapt to TeX Version 3.14159265. + 2014-01-17 Peter Breitenlohner <peb@mppmu.mpg.de> * euptrip.test (removed): Renamed ... diff --git a/Build/source/texk/web2c/euptexdir/euptex.ch0 b/Build/source/texk/web2c/euptexdir/euptex.ch0 index e35be327ffb..e1c9e1c0535 100644 --- a/Build/source/texk/web2c/euptexdir/euptex.ch0 +++ b/Build/source/texk/web2c/euptexdir/euptex.ch0 @@ -11,7 +11,7 @@ {printed when up\TeX\ starts} @# @d eupTeX_version==pTeX_version_string,upTeX_version_string,epTeX_version_string,eTeX_version_string -@d eupTeX_banner=='This is e-upTeX, Version 3.1415926',eupTeX_version +@d eupTeX_banner=='This is e-upTeX, Version 3.14159265',eupTeX_version @d eupTeX_banner_k==eupTeX_banner {printed when \eupTeX\ starts} @z diff --git a/Build/source/texk/web2c/gftopk.ch b/Build/source/texk/web2c/gftopk.ch index af4f10fcb77..d6949da91c8 100644 --- a/Build/source/texk/web2c/gftopk.ch +++ b/Build/source/texk/web2c/gftopk.ch @@ -20,10 +20,10 @@ @z @x [1] Define my_name -@d banner=='This is GFtoPK, Version 2.3' {printed when the program starts} +@d banner=='This is GFtoPK, Version 2.4' {printed when the program starts} @y @d my_name=='gftopk' -@d banner=='This is GFtoPK, Version 2.3' {printed when the program starts} +@d banner=='This is GFtoPK, Version 2.4' {printed when the program starts} @z @x [4] No global labels. @@ -356,22 +356,6 @@ end ; @y @z -@x [61] bug fix: GF file too short. -find_gf_length ; -@y -find_gf_length ; -if gf_len<8 then bad_gf('only ',gf_len:1,' bytes long'); -@.only n bytes long@> -@z - -@x [61] bug fix: GF file too short. -move_to_byte(post_loc - 3); -@y -if post_loc<5 then bad_gf('post location is ',post_loc:1) ; -@.post location is@> -move_to_byte(post_loc - 3); -@z - @x [82] Don't add `GFtoPK 2.3 output from ' to the font comment. @d comm_length = 23 {length of |preamble_comment|} @d from_length = 6 {length of its |' from '| part} diff --git a/Build/source/texk/web2c/gftopk.web b/Build/source/texk/web2c/gftopk.web index 0812f33109a..ab9ba104656 100644 --- a/Build/source/texk/web2c/gftopk.web +++ b/Build/source/texk/web2c/gftopk.web @@ -17,10 +17,11 @@ % gf_ch < 0, or if comp_size = 1016 (both unlikely). Removed some % code that would never get executed since bad_gf terminates. Also % some other nits that don't really affect functionality. 29 Jul 1990 TGR -% Bugs and fixes reported by Peter Breitenlohner. +% Bugs and fixes reported by Peter Breitenlohner (PEB). % Corrected two typos -- 21 Dec 96 (don) +% Version 2.4: fixed cases that might move to negative. 06 January 2014 PEB -\def\versiondate{29 July 1990} +\def\versiondate{06 January 2014} % Here is TeX material that gets inserted after \input webmac \def\hang{\hangindent 3em\noindent\ignorespaces} @@ -48,7 +49,7 @@ \vfill \centerline{\titlefont The {\ttitlefont GFtoPK} processor} \vskip 15pt - \centerline{(Version 2.3, \versiondate)} + \centerline{(Version 2.4, \versiondate)} \vfill} \def\botofcontents{\vfill \centerline{\hsize 5in\baselineskip9pt @@ -96,7 +97,7 @@ The |banner| string defined here should be changed whenever \.{GFtoPK} gets modified. The |preamble_comment| macro (near the end of the program) should be changed too. -@d banner=='This is GFtoPK, Version 2.3' {printed when the program starts} +@d banner=='This is GFtoPK, Version 2.4' {printed when the program starts} @ Some of the diagnostic information is printed using |d_print_ln|. When debugging, it should be set the same as @@ -1579,6 +1580,8 @@ in the postamble, this should not be a major difficulty. @<Find and interpret postamble@>= find_gf_length ; +if gf_len<8 then bad_gf('only ',gf_len:1,' bytes long'); +@.only n bytes long@> post_loc := gf_len - 4 ; repeat if post_loc = 0 then bad_gf('all 223''s'); @@ -1587,6 +1590,8 @@ repeat until k <> 223 ; if k <> gf_id_byte then bad_gf('ID byte is ',k:1); @.ID byte is wrong@> +if post_loc<5 then bad_gf('post location is ',post_loc:1) ; +@.post location is@> move_to_byte(post_loc - 3); q := gf_signed_quad ; if (q<0) or (q>post_loc-3) then bad_gf('post pointer is ',q:1) ; @@ -2103,7 +2108,7 @@ until h_bit = width @ Now we are ready for the routine that writes the preamble of the packed file. -@d preamble_comment == 'GFtoPK 2.3 output from ' +@d preamble_comment == 'GFtoPK 2.4 output from ' @d comm_length = 23 {length of |preamble_comment|} @d from_length = 6 {length of its |' from '| part} diff --git a/Build/source/texk/web2c/mf.web b/Build/source/texk/web2c/mf.web index 13c4b85f498..ca3cb2518d8 100644 --- a/Build/source/texk/web2c/mf.web +++ b/Build/source/texk/web2c/mf.web @@ -25,6 +25,7 @@ % Version 2.7182 fixed bugs related to "<unprintable char>" (August 1996). % Version 2.71828 suppressed autorounding in dangerous cases (June 2003). % Version 2.718281 was a general cleanup with minor fixes (February 2008). +% Version 2.7182818 was similar (January 2014). % A reward of $327.68 will be paid to the first finder of any remaining bug. @@ -154,7 +155,7 @@ helping to determine whether an implementation deserves to be known as `\MF\kern.5pt' [cf.~Stanford Computer Science report CS1095, January 1986]. -@d banner=='This is METAFONT, Version 2.718281' {printed when \MF\ starts} +@d banner=='This is METAFONT, Version 2.7182818' {printed when \MF\ starts} @ Different \PASCAL s have slightly different conventions, and the present @!@:PASCAL H}{\ph@> @@ -295,7 +296,7 @@ redundant code to be eliminated when the production system is being generated. Arithmetic overflow will be detected in all cases. @:PASCAL H}{\ph@> @^system dependencies@> -@^Overflow in arithmetic@> +@^overflow in arithmetic@> @<Compiler directives@>= @{@&$C-,A+,D-@} {no range check, catch arithmetic overflow, no debug overhead} @@ -11139,11 +11140,11 @@ are the most important; diagonal lines (when $\vert u\vert=\vert v\vert=1$) are next; and then come lines with slope $\pm2$ or $\pm1/2$. The nicest way to generate all rational directions having small -numerators and denominators is to generalize the Stern-Brocot tree +numerators and denominators is to generalize the Stern--Brocot tree [cf.~{\sl Concrete Mathematics}, section 4.5] @^Brocot, Achille@> @^Stern, Moritz Abraham@> -to a ``Stern-Brocot wreath'' as follows: Begin with four nodes +to a ``Stern--Brocot wreath'' as follows: Begin with four nodes arranged in a circle, containing the respective directions $(u,v)=(1,0)$, $(0,1)$, $(-1,0)$, and~$(0,-1)$. Then between pairs of consecutive terms $(u,v)$ and $(u',v')$ of the wreath, insert the @@ -11172,7 +11173,7 @@ the intersection $(m'',n'')$ and compute its class with respect to $(u+u',v+v')$. If the class is too large to be the best approximation, we move back the proper number of steps from $(m'',n'')$ toward smaller class numbers on both $l$ and~$l'$, unless this requires moving to points -that are no longer in the polygon; in this we arrive at two points that +that are no longer in the polygon; in this way we arrive at two points that determine a line~$l''$ having the appropriate class. The process continues recursively, until it cannot proceed without removing the last remaining point from the class for $(u,v)$ or the class for $(u',v')$. @@ -11298,10 +11299,10 @@ if gamma<=abs(alpha) then else alpha:=1-gamma @ If $a$ and $b$ are the semi-major and semi-minor axes, -the given ellipse rises highest above the $y$-axis at the point +the given ellipse rises highest above the $x$-axis at the point $\bigl((a^2-b^2)\sin\theta\cos\theta/\rho\bigr)+i\rho$, where $\rho=\sqrt{(a\sin\theta)^2+(b\cos\theta)^2}$. It reaches -furthest to the right of~the $x$-axis at the point +furthest to the right of~the $y$-axis at the point $\sigma+i(a^2-b^2)\sin\theta\cos\theta/\sigma$, where $\sigma=\sqrt{(a\cos\theta)^2+(b\sin\theta)^2}$. @@ -11446,6 +11447,7 @@ left_length(r):=left_length(r)-delta; end @ Only the coordinates need to be copied, not the class numbers and other stuff. +At this point either |link(p)| or |link(link(p))| is |null|. @<Complete the half ellipse...@>= begin s:=null; q:=h; @@ -11455,7 +11457,8 @@ loop@+ begin r:=get_node(knot_node_size); link(r):=s; s:=r;@/ q:=link(q); if y_coord(q)=0 then goto done1; end; -done1: link(p):=s; beta:=-y_coord(h); +done1: if (link(p)<>null) then free_node(link(p),knot_node_size); +link(p):=s; beta:=-y_coord(h); while y_coord(p)<>beta do p:=link(p); q:=link(p); end @@ -22436,6 +22439,7 @@ end @ @<Send the current expression as a title to the output file@>= begin check_gf; gf_string("title ",cur_exp); +@.title@> end @ @<Cases of |print_cmd...@>= diff --git a/Build/source/texk/web2c/mftraptest b/Build/source/texk/web2c/mftraptest index bbdd8998b9c..ce098f77cc5 100755 --- a/Build/source/texk/web2c/mftraptest +++ b/Build/source/texk/web2c/mftraptest @@ -25,6 +25,9 @@ cat >filter <<-\_EOF s/tokens out of [1-9][0-9]*/tokens out of YYYY/ s/out of [1-9][0-9]*i,[0-9nrpb,]*/out of YYi,YYYn,YYYr,YYYp,YYYb/ s/out of [1-9][0-9]*w,[0-9hdilkep,]*)/out of YYYw,YYh,YYd,YYi,YYYYl,YYYk,YYYe,YYp)/ + s/ %CA$/ %/ + s/^PSULE1675/CAPSULE1172/ + s/%CAPSULE[1-9][0-9]*/%CAPSULEnnnn/g s/METAFONT output 20..\...\...:..../METAFONT output 20YY.MM.DD:hhmm/ _EOF diff --git a/Build/source/texk/web2c/pdftexdir/ChangeLog b/Build/source/texk/web2c/pdftexdir/ChangeLog index aa77eec0a40..701c844fc01 100644 --- a/Build/source/texk/web2c/pdftexdir/ChangeLog +++ b/Build/source/texk/web2c/pdftexdir/ChangeLog @@ -1,3 +1,8 @@ +2014-01-20 Peter Breitenlohner <peb@mppmu.mpg.de> + + TeX tuneup of 2014. + * pdftex.web, tex.ch0: Adapt to TeX Version 3.14159265. + 2014-01-09 Peter Breitenlohner <peb@mppmu.mpg.de> * pdftoepdf.cc (copyObject): Always write "\nendstream" for diff --git a/Build/source/texk/web2c/pdftexdir/pdftex.web b/Build/source/texk/web2c/pdftexdir/pdftex.web index bd77b8132b7..8da48670304 100644 --- a/Build/source/texk/web2c/pdftexdir/pdftex.web +++ b/Build/source/texk/web2c/pdftexdir/pdftex.web @@ -69,6 +69,7 @@ % Version 3.14159 allowed fontmemsize to change; bulletproofing (March 1995). % Version 3.141592 fixed \xleaders, glueset, weird alignments (December 2002). % Version 3.1415926 was a general cleanup with minor fixes (February 2008). +% Version 3.14159265 was similar (January 2014). % A preliminary version of TeX--XeT was released in April 1992. % TeX--XeT version 1.0 was released in June 1992, @@ -301,17 +302,17 @@ known as `\eTeX'. @d eTeX_revision==".6" { \.{\\eTeXrevision} } @d eTeX_version_string=='-2.6' {current \eTeX\ version} @# -@d eTeX_banner=='This is e-TeX, Version 3.1415926',eTeX_version_string +@d eTeX_banner=='This is e-TeX, Version 3.14159265',eTeX_version_string {printed when \eTeX\ starts} @# @d pdftex_version==140 { \.{\\pdftexversion} } @d pdftex_revision=="14" { \.{\\pdftexrevision} } @d pdftex_version_string=='-1.40.14' {current \pdfTeX\ version} @# -@d pdfTeX_banner=='This is pdfTeX, Version 3.1415926',eTeX_version_string,pdftex_version_string +@d pdfTeX_banner=='This is pdfTeX, Version 3.14159265',eTeX_version_string,pdftex_version_string {printed when \pdfTeX\ starts} @# -@d TeX_banner=='This is TeX, Version 3.1415926' {printed when \TeX\ starts} +@d TeX_banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts} @# @d banner==pdfTeX_banner @# @@ -6608,7 +6609,7 @@ procedure print_cs(@!p:integer); {prints a purported control sequence} begin if p<hash_base then {single character} if p>=single_base then if p=null_cs then - begin print_esc("csname"); print_esc("endcsname"); + begin print_esc("csname"); print_esc("endcsname"); print_char(" "); end else begin print_esc(p-single_base); if cat_code(p-single_base)=letter then print_char(" "); @@ -8927,13 +8928,13 @@ end @ This block deals with unexpandable \.{\\primitive} appearing at a spot where an integer or an internal values should have been found. It fetches the -next token then resets |cur_cmd|, |cur_cs|, and |cur_tok|, based on the +next token then resets |cur_cmd|, |cur_cs|, and |cur_tok|, based on the primitive value of that token. No expansion takes place, because the next token may be all sorts of things. This could trigger further expansion creating new errors. @<Reset |cur_tok| for unexpandable primitives, goto restart @>= -begin +begin get_token; cur_cs := prim_lookup(text(cur_cs)); if cur_cs<>undefined_primitive then begin @@ -10440,7 +10441,7 @@ in {\sl Technische Grundlagen zur Satzherstellung\/} (Bern, 1980). The Didot point has been newly standardized in 1978; it's now exactly $\rm 1\,nd=0.375\,mm$. Conversion uses the equation $0.375=21681/20320/72.27\cdot25.4$. -The new Cicero follows the new Didot point; $\rm 1\,nc=12\,nd$. +The new Cicero follows the new Didot point; $\rm 1\,nc=12\,nd$. These would lead to the ratios $21681/20320$ and $65043/5080$, respectively. The closest approximations supported by the algorithm would be @@ -11218,9 +11219,9 @@ end; pdf_page_ref_code: print_int(get_obj(obj_type_page, cur_val, false)); left_margin_kern_code: begin p := list_ptr(p); - while (p <> null) and - (cp_skipable(p) or - ((not is_char_node(p)) and (type(p) = glue_node) and (subtype(p) = left_skip_code + 1))) + while (p <> null) and + (cp_skipable(p) or + ((not is_char_node(p)) and (type(p) = glue_node) and (subtype(p) = left_skip_code + 1))) do p := link(p); if (p <> null) and (not is_char_node(p)) and @@ -11233,8 +11234,8 @@ end; right_margin_kern_code: begin q := list_ptr(p); p := prev_rightmost(q, null); - while (p <> null) and - (cp_skipable(p) or + while (p <> null) and + (cp_skipable(p) or ((not is_char_node(p)) and (type(p) = glue_node) and (subtype(p) = right_skip_code + 1))) do p := prev_rightmost(q, p); @@ -17175,9 +17176,9 @@ var k: internal_font_number; begin if fs <> 0 then begin for k := font_base + 1 to font_ptr do - if (font_area[k] <> non_existent_path) and - str_eq_str(font_name[k], s) and - (font_size[k] = fs) then + if (font_area[k] <> non_existent_path) and + str_eq_str(font_name[k], s) and + (font_size[k] = fs) then begin flush_str(s); tfm_lookup := k; @@ -17186,7 +17187,7 @@ begin end else begin for k := font_base + 1 to font_ptr do - if (font_area[k] <> non_existent_path) and + if (font_area[k] <> non_existent_path) and str_eq_str(font_name[k], s) then begin flush_str(s); @@ -17353,12 +17354,12 @@ begin begin if pdf_font_step[f] <> font_step then pdf_error("font expansion", "font has been expanded with different expansion step"); - + if ((pdf_font_stretch[f] = null_font) and (stretch_limit <> 0)) or ((pdf_font_stretch[f] <> null_font) and (pdf_font_expand_ratio[pdf_font_stretch[f]] <> stretch_limit)) then pdf_error("font expansion", "font has been expanded with different stretch limit"); - + if ((pdf_font_shrink[f] = null_font) and (shrink_limit <> 0)) or ((pdf_font_shrink[f] <> null_font) and (-pdf_font_expand_ratio[pdf_font_shrink[f]] <> shrink_limit)) then @@ -17706,7 +17707,7 @@ begin vf_read_signed := i; end; -function vf_read_unsigned(k: integer): integer; +function vf_read_unsigned(k: integer): integer; {read |k| bytes as an unsigned integer from \.{VF} file} var i: integer; begin @@ -18036,7 +18037,7 @@ vf_stack_ptr := 0; @ Some functions for processing character packets. -@p function packet_read_signed(k: integer): integer; +@p function packet_read_signed(k: integer): integer; {read |k| bytes as a signed integer from character packet} var i: integer; begin @@ -18068,7 +18069,7 @@ begin packet_read_unsigned := i; end; -function packet_scaled(k: integer; fs: scaled): scaled; +function packet_scaled(k: integer; fs: scaled): scaled; {get |k| bytes from packet as scaled} begin packet_scaled := store_scaled_f(packet_read_signed(k), fs); @@ -19459,10 +19460,10 @@ The following procedures sort the table of destination names. end; end else begin case c@&# of - 98: c@&# := 8; {`\.b': backspace} + 98: c@&# := 8; {`\.b': backspace} 102: c@&# := 12; {`\.f': form feed} 110: c@&# := 10; {`\.n': line feed} - 114: c@&# := 13; {`\.r': carriage return} + 114: c@&# := 13; {`\.r': carriage return} 116: c@&# := 9; {`\.t': horizontal tab} {nothing to do for `\.{\\}', `\.(', `\.)'} othercases do_nothing @@ -20330,7 +20331,7 @@ begin r := lig_char(r) else return; - if not ((font(l) = font(r)) and + if not ((font(l) = font(r)) and (pdf_font_stretch[font(l)] <> null_font)) then return; @@ -20359,7 +20360,7 @@ begin r := lig_char(r) else return; - if not ((font(l) = font(r)) and + if not ((font(l) = font(r)) and (pdf_font_shrink[font(l)] <> null_font)) then return; @@ -22559,7 +22560,7 @@ end @ The purpose of |make_scripts(q,delta)| is to attach the subscript and/or superscript of noad |q| to the list that starts at |new_hlist(q)|, -given that subscript and superscript aren't both empty. The superscript +given that the subscript and superscript aren't both empty. The superscript will appear to the right of the subscript by a given distance |delta|. We set |shift_down| and |shift_up| to the minimum amounts to shift the @@ -23734,7 +23735,7 @@ There are also a number of implicit parameters: The hlist to be broken starts at |link(head)|, and it is nonempty. The value of |prev_graf| in the enclosing semantic level tells where the paragraph should begin in the sequence of line numbers, in case hanging indentation or \.{\\parshape} -are in use; |prev_graf| is zero unless this paragraph is being continued +is in use; |prev_graf| is zero unless this paragraph is being continued after a displayed formula. Other implicit parameters, such as the |par_shape_ptr| and various penalties to use for hyphenation, etc., appear in |eqtb|. @@ -28382,6 +28383,7 @@ case is |sf_code(cur_chr)=1000|, so we want that case to be fast. The overall structure of the main loop is presented here. Some program labels are inside the individual sections. +@^inner loop@> @d adjust_space_factor==@t@>@;@/ main_s:=sf_code(cur_chr); @@ -28430,6 +28432,7 @@ character~|cur_l|. A discretionary break is not inserted for an explicit hyphen when we are in restricted horizontal mode. In particular, this avoids putting discretionary nodes inside of other discretionaries. +@^inner loop@> @d pack_lig(#)== {the parameter is either |rt_hit| or |false|} begin main_p:=new_ligature(main_f,cur_l,link(cur_q)); @@ -28468,6 +28471,7 @@ nodes inside of other discretionaries. wrapup(rt_hit) @ @<If the cursor is immediately followed by the right boundary...@>= +@^inner loop@> if lig_stack=null then goto reswitch; cur_q:=tail; cur_l:=character(lig_stack); main_loop_move+1:if not is_char_node(lig_stack) then goto main_loop_move_lig; @@ -29096,8 +29100,8 @@ and `\.{\\xleaders}'. The second problem is solved by giving the command code |make_box| to all control sequences that produce a box, and by using the following |chr_code| values to distinguish between them: |box_code|, |copy_code|, |last_box_code|, -|vsplit_code|, |vtop_code|, |vtop_code+vmode|, and |vtop_code+hmode|, -where the latter two are used denote \.{\\vbox} and \.{\\hbox}, respectively. +|vsplit_code|, |vtop_code|, |vtop_code+vmode|, and |vtop_code+hmode|, where +the latter two are used to denote \.{\\vbox} and \.{\\hbox}, respectively. @d box_flag==@'10000000000 {context code for `\.{\\setbox0}'} @d global_box_flag==@'10000100000 {context code for `\.{\\global\\setbox0}'} @@ -32744,7 +32748,7 @@ begin dumpimagemeta; {the image information array } dump_int(pdf_mem_size); dump_int(pdf_mem_ptr); -for k:=1 to pdf_mem_ptr-1 do begin +for k:=1 to pdf_mem_ptr-1 do begin dump_int(pdf_mem[k]); end; print_ln; print_int(pdf_mem_ptr-1); print(" words of pdfTeX memory"); @@ -32788,7 +32792,7 @@ undump_int(sys_obj_ptr); for k:=1 to sys_obj_ptr do begin undump_int(obj_tab[k].int0); undump_int(obj_tab[k].int1); - obj_tab[k].int2 := -1; + obj_tab[k].int2 := -1; undump_int(obj_tab[k].int3); undump_int(obj_tab[k].int4); end; @@ -36072,12 +36076,12 @@ begin pdf_end_text; pdf_print_ln("q"); - if pdf_lookup_list(pdf_ximage_list, pdf_ximage_objnum(p)) = null then + if pdf_lookup_list(pdf_ximage_list, pdf_ximage_objnum(p)) = null then pdf_append_list(pdf_ximage_objnum(p))(pdf_ximage_list); if not is_pdf_image(image) then begin if is_png_image(image) then begin groupref := get_image_group_ref(image); - if (groupref > 0) and (pdf_page_group_val = 0) then + if (groupref > 0) and (pdf_page_group_val = 0) then pdf_page_group_val := groupref; end; pdf_print_real(ext_xn_over_d(pdf_width(p), diff --git a/Build/source/texk/web2c/pdftexdir/tex.ch0 b/Build/source/texk/web2c/pdftexdir/tex.ch0 index 3c483e0f879..73f1a49a1c3 100644 --- a/Build/source/texk/web2c/pdftexdir/tex.ch0 +++ b/Build/source/texk/web2c/pdftexdir/tex.ch0 @@ -20,11 +20,11 @@ % pdfetex.web and tex.ch @x [1.2] l.188 -@d TeX_banner=='This is TeX, Version 3.1415926' {printed when \TeX\ starts} +@d TeX_banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts} @# @d banner==pdfTeX_banner @y -@d banner=='This is TeX, Version 3.1415926' {printed when \TeX\ starts} +@d banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts} @z @x [17.236] l.4960 - first web2c, then pdfTeX, then e-TeX additional integer parameters diff --git a/Build/source/texk/web2c/pltotf.ch b/Build/source/texk/web2c/pltotf.ch index 417fda30907..012ea24d738 100644 --- a/Build/source/texk/web2c/pltotf.ch +++ b/Build/source/texk/web2c/pltotf.ch @@ -20,10 +20,10 @@ @z @x [1] Define my_name -@d banner=='This is PLtoTF, Version 3.5' {printed when the program starts} +@d banner=='This is PLtoTF, Version 3.6' {printed when the program starts} @y @d my_name=='pltotf' -@d banner=='This is PLtoTF, Version 3.5' {printed when the program starts} +@d banner=='This is PLtoTF, Version 3.6' {printed when the program starts} @z @x [still 2] No banner unless verbose. @@ -95,35 +95,6 @@ rewritebin (tfm_file, tfm_name); @d first_ord=0 {ordinal number of the smallest element of |char|} @z -@x [28] (fill_buffer) end-of-line counts as a delimiter. Possibly a bug. -else begin while (limit<buf_size-1)and(not eoln(pl_file)) do - begin incr(limit); read(pl_file,buffer[limit]); - end; - buffer[limit+1]:=' '; right_ln:=eoln(pl_file); -@y -else begin while (limit<buf_size-2)and(not eoln(pl_file)) do - begin incr(limit); read(pl_file,buffer[limit]); - end; - buffer[limit+1]:=' '; right_ln:=eoln(pl_file); - if right_ln then begin incr(limit); buffer[limit+1]:=' '; - end; -@z - -@x [31] (get_keyword_char) Unnecessary due to previous change. -begin while (loc=limit)and(not right_ln) do fill_buffer; -if loc=limit then cur_char:=" " {end-of-line counts as a delimiter} -else begin cur_char:=xord[buffer[loc+1]]; -@y -begin while loc=limit do fill_buffer; - begin cur_char:=xord[buffer[loc+1]]; -@z - -@x [63] Interpret '--' as '+', not '-'. - begin cur_char:=" "; negative:=true; -@y - begin cur_char:=" "; negative:=not negative; -@z - @x [79] `index' might be a library routine. |k|th element of its list. @y diff --git a/Build/source/texk/web2c/pltotf.web b/Build/source/texk/web2c/pltotf.web index e54f4f3d7b4..0aad14f2f04 100644 --- a/Build/source/texk/web2c/pltotf.web +++ b/Build/source/texk/web2c/pltotf.web @@ -16,7 +16,9 @@ % Version 3.2 (December 1989) improved `shorten', increased max_letters. % Version 3.3 (September 1990) fixed `nonexistent char 0' (John Gourlay). % Version 3.4 (March 1991) has more robust `out_scaled' (Wayne Sullivan). -% Version 3.5 (March 1995) initialized lk_step_ended (Armin K\"ollner). +% Version 3.5 (March 1995) initialized lk_step_ended (Armin K\"ollner). +% Version 3.6 (January 2014) corrected possible end-of-line glitch (Ken Nakano), +% and get_fix now treats -- as + (Peter Breitenlohner). % Here is TeX material that gets inserted after \input webmac \def\hang{\hangindent 3em\indent\ignorespaces} @@ -37,7 +39,7 @@ \vfill \centerline{\titlefont The {\ttitlefont PLtoTF} processor} \vskip 15pt - \centerline{(Version 3.5, March 1995)} + \centerline{(Version 3.6, January 2014)} \vfill} \def\botofcontents{\vfill \centerline{\hsize 5in\baselineskip9pt @@ -64,7 +66,7 @@ Extensions for an enhanced ligature mechanism were added by the author in 1989. The |banner| string defined here should be changed whenever \.{PLtoTF} gets modified. -@d banner=='This is PLtoTF, Version 3.5' {printed when the program starts} +@d banner=='This is PLtoTF, Version 3.6' {printed when the program starts} @ This program is written entirely in standard \PASCAL, except that it has to do some slightly system-dependent character code conversion @@ -609,10 +611,12 @@ if left_ln then if eof(pl_file) then begin limit:=1; buffer[1]:=')'; right_ln:=false; input_has_ended:=true; end -else begin while (limit<buf_size-1)and(not eoln(pl_file)) do +else begin while (limit<buf_size-2)and(not eoln(pl_file)) do begin incr(limit); read(pl_file,buffer[limit]); end; buffer[limit+1]:=' '; right_ln:=eoln(pl_file); + if right_ln then begin incr(limit); buffer[limit+1]:=' '; + end; if left_ln then @<Set |loc| to the number of leading blanks in the buffer, and check the indentation@>; end; @@ -1216,7 +1220,7 @@ end; @ @<Scan the blanks...@>= repeat get_next; if cur_char="-" then - begin cur_char:=" "; negative:=true; + begin cur_char:=" "; negative:=not negative; end else if cur_char="+" then cur_char:=" "; until cur_char<>" " diff --git a/Build/source/texk/web2c/ptexdir/ChangeLog b/Build/source/texk/web2c/ptexdir/ChangeLog index f45ac6ec5b3..2811a8fcba1 100644 --- a/Build/source/texk/web2c/ptexdir/ChangeLog +++ b/Build/source/texk/web2c/ptexdir/ChangeLog @@ -1,3 +1,10 @@ +2014-01-20 Peter Breitenlohner <peb@mppmu.mpg.de> + + TeX tuneup of 2014. + * ptex-base.ch: Adapt to TeX Version 3.14159265. + * ppltotf.ch: Adapt to PLtoTF Version 3.6. + * ptftopl.ch: Adapt to TFtoPL Version 3.3. + 2014-01-17 Peter Breitenlohner <peb@mppmu.mpg.de> * ptrip.test (removed): Renamed ... diff --git a/Build/source/texk/web2c/ptexdir/ppltotf.ch b/Build/source/texk/web2c/ptexdir/ppltotf.ch index 1747546668e..80952d2fa85 100644 --- a/Build/source/texk/web2c/ptexdir/ppltotf.ch +++ b/Build/source/texk/web2c/ptexdir/ppltotf.ch @@ -12,10 +12,10 @@ @x [2] l.69 - pTeX: @d my_name=='pltotf' -@d banner=='This is PLtoTF, Version 3.5' {printed when the program starts} +@d banner=='This is PLtoTF, Version 3.6' {printed when the program starts} @y @d my_name=='ppltotf' -@d banner=='This is pPLtoTF, Version 3.5-p1.8' +@d banner=='This is pPLtoTF, Version 3.6-p1.8' {printed when the program starts} @z diff --git a/Build/source/texk/web2c/ptexdir/ptex-base.ch b/Build/source/texk/web2c/ptexdir/ptex-base.ch index 9077c77147c..02a7b78f204 100644 --- a/Build/source/texk/web2c/ptexdir/ptex-base.ch +++ b/Build/source/texk/web2c/ptexdir/ptex-base.ch @@ -56,7 +56,7 @@ @y @d pTeX_version_string=='-p3.4' {current p\TeX\ version} @# -@d pTeX_banner=='This is pTeX, Version 3.1415926',pTeX_version_string +@d pTeX_banner=='This is pTeX, Version 3.14159265',pTeX_version_string @d pTeX_banner_k==pTeX_banner {printed when p\TeX\ starts} @# diff --git a/Build/source/texk/web2c/ptexdir/ptftopl.ch b/Build/source/texk/web2c/ptexdir/ptftopl.ch index 08e729b1155..565715d5c29 100644 --- a/Build/source/texk/web2c/ptexdir/ptftopl.ch +++ b/Build/source/texk/web2c/ptexdir/ptftopl.ch @@ -11,10 +11,10 @@ @x [2] l.64 - pTeX: @d my_name=='tftopl' -@d banner=='This is TFtoPL, Version 3.2' {printed when the program starts} +@d banner=='This is TFtoPL, Version 3.3' {printed when the program starts} @y @d my_name=='ptftopl' -@d banner=='This is pTFtoPL, Version 3.2-p1.7' +@d banner=='This is pTFtoPL, Version 3.3-p1.7' {printed when the program starts} @z diff --git a/Build/source/texk/web2c/tex.ch b/Build/source/texk/web2c/tex.ch index a76721e9164..c040e284ff4 100644 --- a/Build/source/texk/web2c/tex.ch +++ b/Build/source/texk/web2c/tex.ch @@ -72,10 +72,10 @@ a modified \TeX{} version. @z @x [1.2] l.188 -@d banner=='This is TeX, Version 3.1415926' {printed when \TeX\ starts} +@d banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts} @y -@d TeX_banner_k=='This is TeXk, Version 3.1415926' {printed when \TeX\ starts} -@d TeX_banner=='This is TeX, Version 3.1415926' {printed when \TeX\ starts} +@d TeX_banner_k=='This is TeXk, Version 3.14159265' {printed when \TeX\ starts} +@d TeX_banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts} @# @d banner==TeX_banner @d banner_k==TeX_banner_k diff --git a/Build/source/texk/web2c/tex.web b/Build/source/texk/web2c/tex.web index 73255e7cc9e..92b0cc53b9c 100644 --- a/Build/source/texk/web2c/tex.web +++ b/Build/source/texk/web2c/tex.web @@ -45,6 +45,7 @@ % Version 3.14159 allowed fontmemsize to change; bulletproofing (March 1995). % Version 3.141592 fixed \xleaders, glueset, weird alignments (December 2002). % Version 3.1415926 was a general cleanup with minor fixes (February 2008). +% Version 3.14159265 was similar (January 2014). % A reward of $327.68 will be paid to the first finder of any remaining bug. @@ -187,7 +188,7 @@ helping to determine whether a particular implementation deserves to be known as `\TeX' [cf.~Stanford Computer Science report CS1027, November 1984]. -@d banner=='This is TeX, Version 3.1415926' {printed when \TeX\ starts} +@d banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts} @ Different \PASCAL s have slightly different conventions, and the present @!@:PASCAL H}{\ph@> @@ -5587,7 +5588,7 @@ procedure print_cs(@!p:integer); {prints a purported control sequence} begin if p<hash_base then {single character} if p>=single_base then if p=null_cs then - begin print_esc("csname"); print_esc("endcsname"); + begin print_esc("csname"); print_esc("endcsname"); print_char(" "); end else begin print_esc(p-single_base); if cat_code(p-single_base)=letter then print_char(" "); @@ -7356,7 +7357,7 @@ if cur_cmd>=outer_call then check_outer_validity; end @ Notice that a code like \.{\^\^8} becomes \.x if not followed by a hex digit. - + @d is_hex(#)==(((#>="0")and(#<="9"))or((#>="a")and(#<="f"))) @d hex_to_cur_chr== if c<="9" then cur_chr:=c-"0" @+else cur_chr:=c-"a"+10; @@ -7366,7 +7367,7 @@ end @<If this |sup_mark| starts an expanded character...@>= begin if cur_chr=buffer[loc] then if loc<limit then begin c:=buffer[loc+1]; @+if c<@'200 then {yes we have an expanded char} - begin loc:=loc+2; + begin loc:=loc+2; if is_hex(c) then if loc<=limit then begin cc:=buffer[loc]; @+if is_hex(cc) then begin incr(loc); hex_to_cur_chr; goto reswitch; @@ -14857,7 +14858,7 @@ end @ The purpose of |make_scripts(q,delta)| is to attach the subscript and/or superscript of noad |q| to the list that starts at |new_hlist(q)|, -given that subscript and superscript aren't both empty. The superscript +given that the subscript and superscript aren't both empty. The superscript will appear to the right of the subscript by a given distance |delta|. We set |shift_down| and |shift_up| to the minimum amounts to shift the @@ -16013,7 +16014,7 @@ There are also a number of implicit parameters: The hlist to be broken starts at |link(head)|, and it is nonempty. The value of |prev_graf| in the enclosing semantic level tells where the paragraph should begin in the sequence of line numbers, in case hanging indentation or \.{\\parshape} -are in use; |prev_graf| is zero unless this paragraph is being continued +is in use; |prev_graf| is zero unless this paragraph is being continued after a displayed formula. Other implicit parameters, such as the |par_shape_ptr| and various penalties to use for hyphenation, etc., appear in |eqtb|. @@ -17765,7 +17766,7 @@ affect the translation of the beginning of the word. function reconstitute(@!j,@!n:small_number;@!bchar,@!hchar:halfword): small_number; label continue,done; -var @!p:pointer; {temporary register for list manipulation} +var @!p:pointer; {temporary register for list manipulation} @!t:pointer; {a node being appended to} @!q:four_quarters; {character information or a lig/kern instruction} @!cur_rh:halfword; {hyphen character for ligature testing} @@ -19913,7 +19914,7 @@ end in internal vertical mode, and \TeX\ will do the following: @<Resume the page builder after an output routine has come to an end@>= -begin if (loc<>null) or +begin if (loc<>null) or ((token_type<>output_text)and(token_type<>backed_up)) then @<Recover from an unbalanced output routine@>; end_token_list; {conserve stack space in case more outputs are triggered} @@ -20096,6 +20097,7 @@ case is |sf_code(cur_chr)=1000|, so we want that case to be fast. The overall structure of the main loop is presented here. Some program labels are inside the individual sections. +@^inner loop@> @d adjust_space_factor==@t@>@;@/ main_s:=sf_code(cur_chr); @@ -20141,6 +20143,7 @@ character~|cur_l|. A discretionary break is not inserted for an explicit hyphen when we are in restricted horizontal mode. In particular, this avoids putting discretionary nodes inside of other discretionaries. +@^inner loop@> @d pack_lig(#)== {the parameter is either |rt_hit| or |false|} begin main_p:=new_ligature(main_f,cur_l,link(cur_q)); @@ -20167,6 +20170,7 @@ nodes inside of other discretionaries. wrapup(rt_hit) @ @<If the cursor is immediately followed by the right boundary...@>= +@^inner loop@> if lig_stack=null then goto reswitch; cur_q:=tail; cur_l:=character(lig_stack); main_loop_move+1:if not is_char_node(lig_stack) then goto main_loop_move_lig; @@ -20763,8 +20767,8 @@ and `\.{\\xleaders}'. The second problem is solved by giving the command code |make_box| to all control sequences that produce a box, and by using the following |chr_code| values to distinguish between them: |box_code|, |copy_code|, |last_box_code|, -|vsplit_code|, |vtop_code|, |vtop_code+vmode|, and |vtop_code+hmode|, -where the latter two are used denote \.{\\vbox} and \.{\\hbox}, respectively. +|vsplit_code|, |vtop_code|, |vtop_code+vmode|, and |vtop_code+hmode|, where +the latter two are used to denote \.{\\vbox} and \.{\\hbox}, respectively. @d box_flag==@'10000000000 {context code for `\.{\\setbox0}'} @d ship_out_flag==box_flag+512 {context code for `\.{\\shipout}'} diff --git a/Build/source/texk/web2c/tftopl.ch b/Build/source/texk/web2c/tftopl.ch index 8c1644962e9..2d9b1945177 100644 --- a/Build/source/texk/web2c/tftopl.ch +++ b/Build/source/texk/web2c/tftopl.ch @@ -24,10 +24,10 @@ @z @x [1] Define my_name -@d banner=='This is TFtoPL, Version 3.2' {printed when the program starts} +@d banner=='This is TFtoPL, Version 3.3' {printed when the program starts} @y @d my_name=='tftopl' -@d banner=='This is TFtoPL, Version 3.2' {printed when the program starts} +@d banner=='This is TFtoPL, Version 3.3' {printed when the program starts} @z @x [2] Print all terminal output on stderr, so the pl can be sent to stdout. @@ -142,22 +142,6 @@ tfm_file_array := cast_to_byte_pointer (xrealloc (tfm_file_array, 4 * lf - 1 + 1002)); @z -% [21] Both nl and lig_size are in words, so the multiplication is not -% needed. Found by "C.M. Connelly" <c@eskimo.com> and -% Melissa O'Neill <oneill@cs.sfu.ca> -@x -if nl>4*lig_size then -@y -if nl>lig_size then -@z - -% [21] Add missing space in error message. -@x - bc:1,'..',ec:1,'is illegal!'); -@y - bc:1,'..',ec:1,' is illegal!'); -@z - % [27, 28] Change strings to C char pointers. The Pascal strings are % indexed starting at 1, so we pad with a blank. @x diff --git a/Build/source/texk/web2c/tftopl.web b/Build/source/texk/web2c/tftopl.web index d77f4b8a428..65095d43275 100644 --- a/Build/source/texk/web2c/tftopl.web +++ b/Build/source/texk/web2c/tftopl.web @@ -13,6 +13,8 @@ % Version 3 (October 1989) introduced new ligature capabilities. % Version 3.1 (November 1989) renamed z[] to lig_z[] for better portability. % Version 3.2 (February 2008) added a newline after a warning message. +% Version 3.3 (January 2014) added a space to an error message (Breitenlohner), +% and tests nl>lig_size not 4*lig_size (C. M. Connelly, Melissa O'Neill). % Here is TeX material that gets inserted after \input webmac \def\hang{\hangindent 3em\indent\ignorespaces} @@ -31,7 +33,7 @@ \vfill \centerline{\titlefont The {\ttitlefont TFtoPL} processor} \vskip 15pt - \centerline{(Version 3.2, February 2008)} + \centerline{(Version 3.3, January 2014)} \vfill} \def\botofcontents{\vfill \centerline{\hsize 5in\baselineskip9pt @@ -62,7 +64,7 @@ Extensions for an enhanced ligature mechanism were added by the author in 1989. The |banner| string defined here should be changed whenever \.{TFtoPL} gets modified. -@d banner=='This is TFtoPL, Version 3.2' {printed when the program starts} +@d banner=='This is TFtoPL, Version 3.3' {printed when the program starts} @ This program is written entirely in standard \PASCAL, except that it occasionally has lower case letters in strings that are output. @@ -480,12 +482,12 @@ eval_two_bytes(ne); eval_two_bytes(np); if lh<2 then abort('The header length is only ',lh:1,'!'); @.The header length...@> -if nl>4*lig_size then +if nl>lig_size then abort('The lig/kern program is longer than I can handle!'); @.The lig/kern program...@> if (bc>ec+1)or(ec>255) then abort('The character code range ', @.The character code range...@> - bc:1,'..',ec:1,'is illegal!'); + bc:1,'..',ec:1,' is illegal!'); if (nw=0)or(nh=0)or(nd=0)or(ni=0) then abort('Incomplete subfiles for character dimensions!'); @.Incomplete subfiles...@> diff --git a/Build/source/texk/web2c/triptrap/mftrap.fot b/Build/source/texk/web2c/triptrap/mftrap.fot index fd0104a1606..6bceb9f67e0 100644 --- a/Build/source/texk/web2c/triptrap/mftrap.fot +++ b/Build/source/texk/web2c/triptrap/mftrap.fot @@ -1,4 +1,4 @@ -This is METAFONT, Version 2.718281 (INIMF) +This is METAFONT, Version 2.7182818 (INIMF) ** &trap trap (trap.mf \*//*\trap\pass2! @@ -35,7 +35,7 @@ f<expr>->let)=];let[=(;show._ xpart '=-ypart '-0.66667 {qq:=pen} {showstats} -Memory usage 1476&588 (104 still untouched) +Memory usage 1462&588 (104 still untouched) String usage 41&161 (815&7634 still untouched) {[repeat the loop]} ! A group begun on line 163 never ended. diff --git a/Build/source/texk/web2c/triptrap/mftrap.log b/Build/source/texk/web2c/triptrap/mftrap.log index e877070bed0..611ce589e2f 100644 --- a/Build/source/texk/web2c/triptrap/mftrap.log +++ b/Build/source/texk/web2c/triptrap/mftrap.log @@ -1,4 +1,4 @@ -This is METAFONT, Version 2.718281 (preloaded base=trap 2008.3.15) 15 MAR 2008 02:23 +This is METAFONT, Version 2.7182818 (preloaded base=trap 2014.1.7) 7 JAN 2014 18:11 ** &trap trap (trap.mf {if} @@ -4231,7 +4231,7 @@ f<expr>->let)=];let[=(;show._ xpart '=-ypart '-0.66667 {qq:=pen} {showstats} -Memory usage 1476&588 (104 still untouched) +Memory usage 1462&588 (104 still untouched) String usage 41&161 (815&7634 still untouched) {[repeat the loop]} ! A group begun on line 163 never ended. diff --git a/Build/source/texk/web2c/triptrap/mftrapin.log b/Build/source/texk/web2c/triptrap/mftrapin.log index 0e1deb85b36..2fbafd0e6bc 100644 --- a/Build/source/texk/web2c/triptrap/mftrapin.log +++ b/Build/source/texk/web2c/triptrap/mftrapin.log @@ -1,4 +1,4 @@ -This is METAFONT, Version 2.718281 (INIMF) 15 MAR 2008 02:23 +This is METAFONT, Version 2.7182818 (INIMF) 7 JAN 2014 17:51 **\input trap (trap.mf >> << == >> ::: ||`` ''--!! ??## && @@ $$[[]]{{ }}((5.5 0.5)) @@ -173,7 +173,7 @@ Path at line 18, after choices: {elseif} ) Beginning to dump on file trap.base - (preloaded base=trap 2008.3.15) + (preloaded base=trap 2014.1.7) 1117 strings of total length 20614 395 memory locations dumped; current usage is 317&67 265 symbolic tokens diff --git a/Build/source/texk/web2c/triptrap/trap.typ b/Build/source/texk/web2c/triptrap/trap.typ index 881bd5842a9..159c5ce7fc0 100644 --- a/Build/source/texk/web2c/triptrap/trap.typ +++ b/Build/source/texk/web2c/triptrap/trap.typ @@ -1,6 +1,6 @@ This is GFtype, Version 3.1 Options selected: Mnemonic output = true; pixel output = true. -' METAFONT output 2008.03.15:0223' +' METAFONT output 2014.01.07:1811' 35: beginning of char 5: -4096<=m<=4094 -2<=n<=1 (initially n=1) paint (4095)1 diff --git a/Build/source/texk/web2c/triptrap/trip.fot b/Build/source/texk/web2c/triptrap/trip.fot index b4009212153..7ae8e89d871 100644 --- a/Build/source/texk/web2c/triptrap/trip.fot +++ b/Build/source/texk/web2c/triptrap/trip.fot @@ -1,4 +1,4 @@ -This is TeX, Version 3.1415926 (INITEX) +This is TeX, Version 3.14159265 (INITEX) ** &trip trip (trip.tex ## ! Bad number (-7). diff --git a/Build/source/texk/web2c/triptrap/trip.log b/Build/source/texk/web2c/triptrap/trip.log index 7b54cff274b..585bf9b1fa5 100644 --- a/Build/source/texk/web2c/triptrap/trip.log +++ b/Build/source/texk/web2c/triptrap/trip.log @@ -1,4 +1,4 @@ -This is TeX, Version 3.1415926 (preloaded format=trip 2008.3.15) 15 MAR 2008 02:23 +This is TeX, Version 3.14159265 (preloaded format=trip 2014.1.7) 7 JAN 2014 09:59 ** &trip trip (trip.tex ## {vertical mode: \tracingrestores} @@ -6485,7 +6485,7 @@ l.427 ...xdeadcycles=3\show\dump {\let} {\relax} -\csname\endcsname{->{ +\csname\endcsname {->{ ! Use of \csname\endcsname doesn't match its definition. l.429 \relax \catcode`\qq1qM=13 \defqqM{\relax}#\begingroup{\s... diff --git a/Build/source/texk/web2c/triptrap/trip.typ b/Build/source/texk/web2c/triptrap/trip.typ index dabab4c6d54..2ef2781289a 100644 --- a/Build/source/texk/web2c/triptrap/trip.typ +++ b/Build/source/texk/web2c/triptrap/trip.typ @@ -6,7 +6,7 @@ Options selected: Resolution = 72.27000000 pixels per inch numerator/denominator=25400000/473628672 magnification=2000; 0.00003052 pixels per DVI unit -' TeX output 2008.03.15:0223' +' TeX output 2014.01.07:0959' 42: beginning of page 0.0.0.0.11.0.0.0.0.0 87: down4 129105920 diff --git a/Build/source/texk/web2c/triptrap/tripin.log b/Build/source/texk/web2c/triptrap/tripin.log index e7baa824874..1d983794568 100644 --- a/Build/source/texk/web2c/triptrap/tripin.log +++ b/Build/source/texk/web2c/triptrap/tripin.log @@ -1,4 +1,4 @@ -This is TeX, Version 3.1415926 (INITEX) 15 MAR 2008 02:23 +This is TeX, Version 3.14159265 (INITEX) 7 JAN 2014 09:09 **\input trip (trip.tex ! Bad character code (256). @@ -447,7 +447,7 @@ l.79 ...terns{toolate}\showbox0} ) Beginning to dump on file trip.fmt - (preloaded format=trip 2008.3.15) + (preloaded format=trip 2014.1.7) 1326 strings of total length 23646 471 memory locations dumped; current usage is 96&278 341 multiletter control sequences diff --git a/Build/source/texk/web2c/uptexdir/ChangeLog b/Build/source/texk/web2c/uptexdir/ChangeLog index 6579b0b77df..d455c77684e 100644 --- a/Build/source/texk/web2c/uptexdir/ChangeLog +++ b/Build/source/texk/web2c/uptexdir/ChangeLog @@ -1,3 +1,10 @@ +2014-01-20 Peter Breitenlohner <peb@mppmu.mpg.de> + + TeX tuneup of 2014. + * uptex-m.ch: Adapt to TeX Version 3.14159265. + * uppltotf.ch: Adapt to PLtoTF Version 3.6. + * uptftopl.ch: Adapt to TFtoPL Version 3.3. + 2014-01-17 Peter Breitenlohner <peb@mppmu.mpg.de> * uptrip.test (removed): Renamed ... diff --git a/Build/source/texk/web2c/uptexdir/uppltotf.ch b/Build/source/texk/web2c/uptexdir/uppltotf.ch index a5df99d4e3a..6101639b44b 100644 --- a/Build/source/texk/web2c/uptexdir/uppltotf.ch +++ b/Build/source/texk/web2c/uptexdir/uppltotf.ch @@ -1,9 +1,9 @@ @x @d my_name=='ppltotf' -@d banner=='This is pPLtoTF, Version 3.5-p1.8' +@d banner=='This is pPLtoTF, Version 3.6-p1.8' @y @d my_name=='uppltotf' -@d banner=='This is upPLtoTF, Version 3.5-p1.8-u1.11' +@d banner=='This is upPLtoTF, Version 3.6-p1.8-u1.11' @z @x diff --git a/Build/source/texk/web2c/uptexdir/uptex-m.ch b/Build/source/texk/web2c/uptexdir/uptex-m.ch index e1d2725f30c..c80d0de03ee 100644 --- a/Build/source/texk/web2c/uptexdir/uptex-m.ch +++ b/Build/source/texk/web2c/uptexdir/uptex-m.ch @@ -41,7 +41,7 @@ @d upTeX_version_string=='-u1.11' {current up\TeX\ version} @# @d upTeX_version==pTeX_version_string,upTeX_version_string -@d upTeX_banner=='This is upTeX, Version 3.1415926',upTeX_version +@d upTeX_banner=='This is upTeX, Version 3.14159265',upTeX_version @d upTeX_banner_k==upTeX_banner {printed when up\TeX\ starts} @z diff --git a/Build/source/texk/web2c/uptexdir/uptftopl.ch b/Build/source/texk/web2c/uptexdir/uptftopl.ch index 904d2871452..aa11ef06530 100644 --- a/Build/source/texk/web2c/uptexdir/uptftopl.ch +++ b/Build/source/texk/web2c/uptexdir/uptftopl.ch @@ -1,9 +1,9 @@ @x @d my_name=='ptftopl' -@d banner=='This is pTFtoPL, Version 3.2-p1.7' +@d banner=='This is pTFtoPL, Version 3.3-p1.7' @y @d my_name=='uptftopl' -@d banner=='This is upTFtoPL, Version 3.2-p1.7-u1.11' +@d banner=='This is upTFtoPL, Version 3.3-p1.7-u1.11' @z @x diff --git a/Build/source/texk/web2c/vftovp.ch b/Build/source/texk/web2c/vftovp.ch index 273b6337995..3c94bf4d57b 100644 --- a/Build/source/texk/web2c/vftovp.ch +++ b/Build/source/texk/web2c/vftovp.ch @@ -11,10 +11,10 @@ @z @x [1] Define my_name -@d banner=='This is VFtoVP, Version 1.3' {printed when the program starts} +@d banner=='This is VFtoVP, Version 1.4' {printed when the program starts} @y @d my_name=='vftovp' -@d banner=='This is VFtoVP, Version 1.3' {printed when the program starts} +@d banner=='This is VFtoVP, Version 1.4' {printed when the program starts} @z @x [2] All terminal output goes to stderr, so we can dump the vpl on stdout. @@ -163,22 +163,6 @@ tfm_file_array := cast_to_byte_pointer (xrealloc (tfm_file_array, 4 * lf - 1 + 1002)); @z -% [25] Both nl and lig_size are in words, so the multiplication is not -% needed. Found by "C.M. Connelly" <c@eskimo.com> and -% Melissa O'Neill <oneill@cs.sfu.ca> -@x -if nl>4*lig_size then -@y -if nl>lig_size then -@z - -% [25] Add missing space in error message. -@x - bc:1,'..',ec:1,'is illegal!'); -@y - bc:1,'..',ec:1,' is illegal!'); -@z - % [31] Ditto for vf_abort. @x @d vf_abort(#)== @@ -499,21 +483,6 @@ sixty_four_cases(set_char_0),sixty_four_cases(set_char_0+64), begin if o>=set1 then @z -@x [129] Bugfix. - if o>=put1 then c:=get_bytes(o-put1+1,false) - else c:=get_bytes(o-set1+1,false) - else c:=o; - if f=font_ptr then -@y - if o>=put1 then k:=get_bytes(o-put1+1,false) - else k:=get_bytes(o-set1+1,false) - else k:=o; - c:=k; - if (k<0)or(k>255) then - bad_vf('Character ',k:1,' is out of range and will be ignored') - else if f=font_ptr then -@z - @x [129] End of block of code moved outside the case statement. end; @y diff --git a/Build/source/texk/web2c/vftovp.web b/Build/source/texk/web2c/vftovp.web index 73c0024ccf6..0abfdbefc18 100644 --- a/Build/source/texk/web2c/vftovp.web +++ b/Build/source/texk/web2c/vftovp.web @@ -3,6 +3,8 @@ % Version 1.1 fixed problems of strict Pascal (April 1990). % Version 1.2 fixed various bugs found by Peter Breitenlohner (September 1990). % Version 1.3 made out_as_fix tell the truth in overflow cases (Dec 2002). +% Version 1.4 reports out-of-range characters (Breitenlohner, Jan 2014), +% and tests nl>lig_size not 4*lig_size (C. M. Connelly, Melissa O'Neill). % Here is TeX material that gets inserted after \input webmac \def\hang{\hangindent 3em\indent\ignorespaces} @@ -21,7 +23,7 @@ \vfill \centerline{\titlefont The {\ttitlefont VFtoVP} processor} \vskip 15pt - \centerline{(Version 1.3, December 2002)} + \centerline{(Version 1.4, January 2014)} \vfill} \def\botofcontents{\vfill \centerline{\hsize 5in\baselineskip9pt @@ -56,7 +58,7 @@ called \.{AMFtoXPL}. The |banner| string defined here should be changed whenever \.{VFtoVP} gets modified. -@d banner=='This is VFtoVP, Version 1.3' {printed when the program starts} +@d banner=='This is VFtoVP, Version 1.4' {printed when the program starts} @ This program is written entirely in standard \PASCAL, except that it occasionally has lower case letters in strings that are output. @@ -143,7 +145,7 @@ purposes, when fonts designed for one output device are unavailable on another. @ A \.{VF} file is organized as a stream of 8-bit bytes, using conventions borrowed from \.{DVI} and \.{PK} files. Thus, a device driver that knows about \.{DVI} and \.{PK} format will already -contain most of the mechanisms necessary to process \.{VF} files. +contain most of the mechanisms necessary to process \.{VF} files. We shall assume that \.{DVI} format is understood; the conventions in the \.{DVI} documentation (see, for example, {\sl \TeX: The Program}, part 31) are adopted here to define \.{VF} format. @@ -187,7 +189,7 @@ is a |fix_word| relative to the design size of the virtual font. Thus if the local font is to be used at the same size as the design size of the virtual font itself, |s| will be the integer value $2^{20}$. The value of |s| must be positive and less than -$2^{24}$ (thus less than 16 when considered as a |fix_word|). +$2^{24}$ (thus less than 16 when considered as a |fix_word|). The dimension~|d| is a |fix_word| in units of printer's points; hence it is identical to the design size found in the corresponding \.{TFM} file. @@ -642,12 +644,12 @@ eval_two_bytes(ne); eval_two_bytes(np); if lh<2 then abort('The header length is only ',lh:1,'!'); @.The header length...@> -if nl>4*lig_size then +if nl>lig_size then abort('The lig/kern program is longer than I can handle!'); @.The lig/kern program...@> if (bc>ec+1)or(ec>255) then abort('The character code range ', @.The character code range...@> - bc:1,'..',ec:1,'is illegal!'); + bc:1,'..',ec:1,' is illegal!'); if (nw=0)or(nh=0)or(nd=0)or(ni=0) then abort('Incomplete subfiles for character dimensions!'); @.Incomplete subfiles...@> @@ -838,7 +840,7 @@ if vf[vf_ptr-10]>0 then {|s| is negative or exceeds $2^{24}-1$} a:=vf[vf_ptr-2]; l:=vf[vf_ptr-1]; vf_store(a+l); {|n[a+l]|} @<Print the name of the local font@>; @<Read the local font's \.{TFM} file and record the characters it contains@>; -incr(font_ptr); font_start[font_ptr]:=vf_ptr; +incr(font_ptr); font_start[font_ptr]:=vf_ptr; end @ The font area may need to be separated from the font name on some systems. @@ -2169,7 +2171,7 @@ push:begin if top=max_stack then incr(top); wstack[top]:=wstack[top-1]; xstack[top]:=xstack[top-1]; ystack[top]:=ystack[top-1]; zstack[top]:=zstack[top-1]; out('(PUSH)'); out_ln; - end; + end; pop:if top=0 then bad_vf('More pops than pushes!') @.More pops than pushes@> else begin decr(top); out('(POP)'); out_ln; @@ -2218,10 +2220,13 @@ sixty_four_cases(fnt_num_0),four_cases(fnt1):begin f:=0; @<Cases...@>= sixty_four_cases(set_char_0),sixty_four_cases(set_char_0+64), four_cases(set1),four_cases(put1):begin if o>=set1 then - if o>=put1 then c:=get_bytes(o-put1+1,false) - else c:=get_bytes(o-set1+1,false) - else c:=o; - if f=font_ptr then + if o>=put1 then k:=get_bytes(o-put1+1,false) + else k:=get_bytes(o-set1+1,false) + else k:=o; + c:=k; + if (k<0)or(k>255) then + bad_vf('Character ',k:1,' is out of range and will be ignored') + else if f=font_ptr then bad_vf('Character ',c:1,' in undeclared font will be ignored') @.Character...will be ignored@> else begin vf[font_start[f+1]-1]:=c; {store |c| in the ``hole'' we left} diff --git a/Build/source/texk/web2c/vptovf.ch b/Build/source/texk/web2c/vptovf.ch index 7c3c4abffb0..bbfa6e4d2a4 100644 --- a/Build/source/texk/web2c/vptovf.ch +++ b/Build/source/texk/web2c/vptovf.ch @@ -9,10 +9,10 @@ @z @x [1] Define my_name -@d banner=='This is VPtoVF, Version 1.5' {printed when the program starts} +@d banner=='This is VPtoVF, Version 1.6' {printed when the program starts} @y @d my_name=='vptovf' -@d banner=='This is VPtoVF, Version 1.5' {printed when the program starts} +@d banner=='This is VPtoVF, Version 1.6' {printed when the program starts} @z @x [2] Print the banner later. @@ -89,35 +89,6 @@ rewritebin (tfm_file, tfm_name); @d first_ord=0 {ordinal number of the smallest element of |char|} @z -@x [34] (fill_buffer) end-of-line counts as a delimiter. Possibly a bug. -else begin while (limit<buf_size-1)and(not eoln(vpl_file)) do - begin incr(limit); read(vpl_file,buffer[limit]); - end; - buffer[limit+1]:=' '; right_ln:=eoln(vpl_file); -@y -else begin while (limit<buf_size-2)and(not eoln(vpl_file)) do - begin incr(limit); read(vpl_file,buffer[limit]); - end; - buffer[limit+1]:=' '; right_ln:=eoln(vpl_file); - if right_ln then begin incr(limit); buffer[limit+1]:=' '; - end; -@z - -@x [37] (get_keyword_char) Unnecessary due to previous change. -begin while (loc=limit)and(not right_ln) do fill_buffer; -if loc=limit then cur_char:=" " {end-of-line counts as a delimiter} -else begin cur_char:=xord[buffer[loc+1]]; -@y -begin while loc=limit do fill_buffer; - begin cur_char:=xord[buffer[loc+1]]; -@z - -@x [73] Interpret '--' as '+', not '-'. - begin cur_char:=" "; negative:=true; -@y - begin cur_char:=" "; negative:=not negative; -@z - % [89] `index' is not a good choice for an identifier on Unix systems. % Neither is `class', on AIX. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Build/source/texk/web2c/vptovf.web b/Build/source/texk/web2c/vptovf.web index b5d6aff66d6..0da7cd8a7ca 100644 --- a/Build/source/texk/web2c/vptovf.web +++ b/Build/source/texk/web2c/vptovf.web @@ -3,8 +3,10 @@ % Version 1.1 fixed some for-loop indices for stricter Pascal (April 1990). % Version 1.2 fixed `nonexistent char 0' bug, and a bit more (September 1990). % Version 1.3 has more robust `out_scaled' (March 1991). -% Version 1.4 (March 1995) initialized lk_step_ended (Armin K\"ollner). +% Version 1.4 (March 1995) initialized lk_step_ended (Armin K\"ollner). % Version 1.5 (August 1998) corrected vf_fix(0) (Wayne Sullivan). +% Version 1.6 (January 2014) corrected possible end-of-line glitch (Ken Nakano), +% and get_fix now treats -- as + (Peter Breitenlohner). % Here is TeX material that gets inserted after \input webmac \def\hang{\hangindent 3em\indent\ignorespaces} @@ -25,7 +27,7 @@ \vfill \centerline{\titlefont The {\ttitlefont VPtoVF} processor} \vskip 15pt - \centerline{(Version 1.5, August 1998)} + \centerline{(Version 1.6, January 2014)} \vfill} \def\botofcontents{\vfill \centerline{\hsize 5in\baselineskip9pt @@ -44,7 +46,7 @@ of the given \.{VPL} file, so that the \.{VF} file should be acceptable to device drivers and the \.{TFM} file should be acceptable to \TeX. \indent\.{VPtoVF} is an extended version of the program \.{PLtoTF}, which -is part of the standard \TeX ware library. +is part of the standard \TeX ware library. The idea of a virtual font was inspired by the work of David R. Fuchs @^Fuchs, David Raymond@> who designed a similar set of conventions in 1984 while developing a @@ -54,7 +56,7 @@ called \.{PLFONT}. The |banner| string defined here should be changed whenever \.{VPtoVF} gets modified. -@d banner=='This is VPtoVF, Version 1.5' {printed when the program starts} +@d banner=='This is VPtoVF, Version 1.6' {printed when the program starts} @ This program is written entirely in standard \PASCAL, except that it has to do some slightly system-dependent character code conversion @@ -783,10 +785,12 @@ if left_ln then if eof(vpl_file) then begin limit:=1; buffer[1]:=')'; right_ln:=false; input_has_ended:=true; end -else begin while (limit<buf_size-1)and(not eoln(vpl_file)) do +else begin while (limit<buf_size-2)and(not eoln(vpl_file)) do begin incr(limit); read(vpl_file,buffer[limit]); end; buffer[limit+1]:=' '; right_ln:=eoln(vpl_file); + if right_ln then begin incr(limit); buffer[limit+1]:=' '; + end; if left_ln then @<Set |loc| to the number of leading blanks in the buffer, and check the indentation@>; end; @@ -1486,7 +1490,7 @@ end; @ @<Scan the blanks...@>= repeat get_next; if cur_char="-" then - begin cur_char:=" "; negative:=true; + begin cur_char:=" "; negative:=not negative; end else if cur_char="+" then cur_char:=" "; until cur_char<>" " diff --git a/Build/source/texk/web2c/xetexdir/ChangeLog b/Build/source/texk/web2c/xetexdir/ChangeLog index a0a9961bc16..3e934e8e46c 100644 --- a/Build/source/texk/web2c/xetexdir/ChangeLog +++ b/Build/source/texk/web2c/xetexdir/ChangeLog @@ -1,3 +1,8 @@ +2014-01-20 Peter Breitenlohner <peb@mppmu.mpg.de> + + TeX tuneup of 2014. + * xetex.web: Adapt to TeX Version 3.14159265. + 2014-01-17 TANAKA Takuji <KXD02663@nifty.ne.jp> * XeTeX_ext.c, xetex.h: Accept Unicode characters from STDIO diff --git a/Build/source/texk/web2c/xetexdir/xetex.web b/Build/source/texk/web2c/xetexdir/xetex.web index d83054e2192..569d9709715 100644 --- a/Build/source/texk/web2c/xetexdir/xetex.web +++ b/Build/source/texk/web2c/xetexdir/xetex.web @@ -87,6 +87,7 @@ % Version 3.14159 allowed fontmemsize to change; bulletproofing (March 1995). % Version 3.141592 fixed \xleaders, glueset, weird alignments (December 2002). % Version 3.1415926 was a general cleanup with minor fixes (February 2008). +% Version 3.14159265 was similar (January 2014). % A reward of $327.68 will be paid to the first finder of any remaining bug. @@ -329,7 +330,7 @@ known as `\eTeX'. @d XeTeX_banner=='This is XeTeX, Version 3.1415926',eTeX_version_string,XeTeX_version_string {printed when \XeTeX\ starts} @# -@d banner=='This is TeX, Version 3.1415926' {printed when \TeX\ starts} +@d banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts} @# @d TEX==XETEX {change program name into |XETEX|} @# @@ -6255,7 +6256,7 @@ procedure print_cs(@!p:integer); {prints a purported control sequence} begin if p<hash_base then {single character} if p>=single_base then if p=null_cs then - begin print_esc("csname"); print_esc("endcsname"); + begin print_esc("csname"); print_esc("endcsname"); print_char(" "); end else begin print_esc(p-single_base); if cat_code(p-single_base)=letter then print_char(" "); @@ -17478,7 +17479,7 @@ end @ The purpose of |make_scripts(q,delta)| is to attach the subscript and/or superscript of noad |q| to the list that starts at |new_hlist(q)|, -given that subscript and superscript aren't both empty. The superscript +given that the subscript and superscript aren't both empty. The superscript will appear to the right of the subscript by a given distance |delta|. We set |shift_down| and |shift_up| to the minimum amounts to shift the @@ -18733,7 +18734,7 @@ There are also a number of implicit parameters: The hlist to be broken starts at |link(head)|, and it is nonempty. The value of |prev_graf| in the enclosing semantic level tells where the paragraph should begin in the sequence of line numbers, in case hanging indentation or \.{\\parshape} -are in use; |prev_graf| is zero unless this paragraph is being continued +is in use; |prev_graf| is zero unless this paragraph is being continued after a displayed formula. Other implicit parameters, such as the |par_shape_ptr| and various penalties to use for hyphenation, etc., appear in |eqtb|. @@ -23325,6 +23326,7 @@ case is |sf_code(cur_chr)=1000|, so we want that case to be fast. The overall structure of the main loop is presented here. Some program labels are inside the individual sections. +@^inner loop@> @d adjust_space_factor==@t@>@;@/ main_s:=sf_code(cur_chr) mod @"10000; @@ -23620,6 +23622,7 @@ character~|cur_l|. A discretionary break is not inserted for an explicit hyphen when we are in restricted horizontal mode. In particular, this avoids putting discretionary nodes inside of other discretionaries. +@^inner loop@> @d pack_lig(#)== {the parameter is either |rt_hit| or |false|} begin main_p:=new_ligature(main_f,cur_l,link(cur_q)); @@ -23646,6 +23649,7 @@ nodes inside of other discretionaries. wrapup(rt_hit) @ @<If the cursor is immediately followed by the right boundary...@>= +@^inner loop@> if lig_stack=null then goto reswitch; cur_q:=tail; cur_l:=character(lig_stack); main_loop_move+1:if not is_char_node(lig_stack) then goto main_loop_move_lig; @@ -24263,8 +24267,8 @@ and `\.{\\xleaders}'. The second problem is solved by giving the command code |make_box| to all control sequences that produce a box, and by using the following |chr_code| values to distinguish between them: |box_code|, |copy_code|, |last_box_code|, -|vsplit_code|, |vtop_code|, |vtop_code+vmode|, and |vtop_code+hmode|, -where the latter two are used denote \.{\\vbox} and \.{\\hbox}, respectively. +|vsplit_code|, |vtop_code|, |vtop_code+vmode|, and |vtop_code+hmode|, where +the latter two are used to denote \.{\\vbox} and \.{\\hbox}, respectively. @d box_flag==@'10000000000 {context code for `\.{\\setbox0}'} @d global_box_flag==@'10000100000 {context code for `\.{\\global\\setbox0}'} |