From 5c5eccb48b4f1ae749e19882118bf5884cd2b4d8 Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Wed, 13 Aug 2014 06:17:37 +0000 Subject: texk/web2c/omegaware: Fixed a bug when checking for ligature loops git-svn-id: svn://tug.org/texlive/trunk@34920 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/omegaware/ChangeLog | 6 +++++ Build/source/texk/web2c/omegaware/ofm2opl.ch | 6 ++--- Build/source/texk/web2c/omegaware/ofm2opl.web | 6 ++--- Build/source/texk/web2c/omegaware/opl2ofm.ch | 6 ++--- Build/source/texk/web2c/omegaware/opl2ofm.web | 4 ++-- Build/source/texk/web2c/omegaware/ovf2ovp.ch | 6 ++--- Build/source/texk/web2c/omegaware/ovf2ovp.web | 6 ++--- Build/source/texk/web2c/omegaware/ovp2ovf.ch | 6 ++--- Build/source/texk/web2c/omegaware/ovp2ovf.web | 4 ++-- Build/source/texk/web2c/omegaware/yannis.test | 33 +++++++++++++++------------ 10 files changed, 47 insertions(+), 36 deletions(-) (limited to 'Build/source/texk/web2c/omegaware') diff --git a/Build/source/texk/web2c/omegaware/ChangeLog b/Build/source/texk/web2c/omegaware/ChangeLog index d1146d21929..1cb0918578d 100644 --- a/Build/source/texk/web2c/omegaware/ChangeLog +++ b/Build/source/texk/web2c/omegaware/ChangeLog @@ -1,3 +1,9 @@ +2014-08-13 Peter Breitenlohner + + * ofm2opl.{ch,web}, ovf2ovp.{ch,web}, yannis.test: Fixed a bug + when checking for ligature loops. + * opl2ofm.(ch,web}, ovp2ovf.{ch,web}: No 64-bit arg1 of f(). + 2014-08-08 Peter Breitenlohner * yannis.test, tests/arabicr.pl, tests/arabic.ovp (new): diff --git a/Build/source/texk/web2c/omegaware/ofm2opl.ch b/Build/source/texk/web2c/omegaware/ofm2opl.ch index 05a6ace2e8e..5ad99cefd1e 100644 --- a/Build/source/texk/web2c/omegaware/ofm2opl.ch +++ b/Build/source/texk/web2c/omegaware/ofm2opl.ch @@ -273,12 +273,12 @@ f:=((tfm[k+1] mod 16)*intcast(@'400)+tfm[k+2])*@'400+tfm[k+3]; % symbol table. We also have to change the name, because there is also a % variable named `f', and some C compilers can't deal with that. @x -@p function f(@!h:integer64;@!x,@!y:index):index; forward;@t\2@> +@p function f(@!h,@!x,@!y:index):index; forward;@t\2@> {compute $f$ for arguments known to be in |hash[h]|} @y @p ifdef('notdef') -function f_fn(@!h:integer64;@!x,@!y:index):index; begin end;@t\2@> +function f_fn(@!h,@!x,@!y:index):index; begin end;@t\2@> {compute $f$ for arguments known to be in |hash[h]|} endif('notdef') @z @@ -293,7 +293,7 @@ else eval:=f_fn(h,x,y); @x @p function f; @y -@p function f_fn(@!h:integer64;@!x,@!y:index):index; +@p function f_fn(@!h,@!x,@!y:index):index; @z @x f:=lig_z[h]; diff --git a/Build/source/texk/web2c/omegaware/ofm2opl.web b/Build/source/texk/web2c/omegaware/ofm2opl.web index b466f614880..9e8c8d142b6 100644 --- a/Build/source/texk/web2c/omegaware/ofm2opl.web +++ b/Build/source/texk/web2c/omegaware/ofm2opl.web @@ -1236,7 +1236,7 @@ and |bad_char| macros: @!c:xchar_type; {a random character} @!d:0..3; {byte number in a word} @!k:index; {a random index} -@!r:0..65535; {a random two-byte value} +@!r:0..max_char; {a random two-byte value} @!count:0..127; {for when we need to enumerate a small set} @ There are a lot of simple things to do, and they have to be done one @@ -2243,7 +2243,7 @@ else begin case t of @ Evaluation of $f(x,y)$ is handled by two mutually recursive procedures. Kind of a neat algorithm, generalizing a depth-first search. -@p function f(@!h:integer64;@!x,@!y:index):index; forward;@t\2@> +@p function f(@!h,@!x,@!y:index):index; forward;@t\2@> {compute $f$ for arguments known to be in |hash[h]|} function eval(@!x,@!y:index):index; {compute $f(x,y)$ with hashtable lookup} var @!key:integer64; {value sought in hash table} @@ -2255,7 +2255,7 @@ else eval:=f(h,x,y); end; @ Pascal's beastly convention for |forward| declarations prevents us from -saying |function f(h:integer64;x,y:index):index| here. +saying |function f(h,x,y:index):index| here. @p function f; begin case class[h] of diff --git a/Build/source/texk/web2c/omegaware/opl2ofm.ch b/Build/source/texk/web2c/omegaware/opl2ofm.ch index 38e79328be9..019f6217d30 100644 --- a/Build/source/texk/web2c/omegaware/opl2ofm.ch +++ b/Build/source/texk/web2c/omegaware/opl2ofm.ch @@ -169,12 +169,12 @@ HEX:=' 0123456789ABCDEF';@/ % symbol table... %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @x -@p function f(@!h:integer64;@!x,@!y:indx):indx; forward;@t\2@> +@p function f(@!h,@!x,@!y:indx):indx; forward;@t\2@> {compute $f$ for arguments known to be in |hash[h]|} @y @p ifdef('notdef') -function f(@!h:integer64;@!x,@!y:indx):indx; begin end;@t\2@> +function f(@!h,@!x,@!y:indx):indx; begin end;@t\2@> {compute $f$ for arguments known to be in |hash[h]|} endif('notdef') @z @@ -184,7 +184,7 @@ endif('notdef') @x @p function f; @y -@p function f(@!h:integer64;@!x,@!y:indx):indx; +@p function f(@!h,@!x,@!y:indx):indx; @z @x [127] Fix up output of bytes. diff --git a/Build/source/texk/web2c/omegaware/opl2ofm.web b/Build/source/texk/web2c/omegaware/opl2ofm.web index caf1aab169a..3e0e398b5e4 100644 --- a/Build/source/texk/web2c/omegaware/opl2ofm.web +++ b/Build/source/texk/web2c/omegaware/opl2ofm.web @@ -2664,7 +2664,7 @@ else begin case t of @ (More good stuff from \.{TFtoPL}.) -@p function f(@!h:integer64;@!x,@!y:indx):indx; forward;@t\2@> +@p function f(@!h,@!x,@!y:indx):indx; forward;@t\2@> {compute $f$ for arguments known to be in |hash[h]|} function eval(@!x,@!y:indx):indx; {compute $f(x,y)$ with hashtable lookup} var @!key:integer64; {value sought in hash table} @@ -2676,7 +2676,7 @@ else eval:=f(h,x,y); end; @ Pascal's beastly convention for |forward| declarations prevents us from -saying |function f(h:integer64;x,y:indx):indx| here. +saying |function f(h,x,y:indx):indx| here. @p function f; begin case class[h] of diff --git a/Build/source/texk/web2c/omegaware/ovf2ovp.ch b/Build/source/texk/web2c/omegaware/ovf2ovp.ch index a29a2aebbd3..93a27e5af56 100644 --- a/Build/source/texk/web2c/omegaware/ovf2ovp.ch +++ b/Build/source/texk/web2c/omegaware/ovf2ovp.ch @@ -394,12 +394,12 @@ f:=((tfm[k+1] mod 16)*intcast(@'400)+tfm[k+2])*@'400+tfm[k+3]; % But let's do a fake definition of f here, so that it gets into web2c's % symbol table... @x -@p function f(@!h:integer64;@!x,@!y:index):index; forward;@t\2@> +@p function f(@!h,@!x,@!y:index):index; forward;@t\2@> {compute $f$ for arguments known to be in |hash[h]|} @y @p ifdef('notdef') -function lig_f(@!h:integer64;@!x,@!y:index):index; begin end;@t\2@> +function lig_f(@!h,@!x,@!y:index):index; begin end;@t\2@> {compute $f$ for arguments known to be in |hash[h]|} endif('notdef') @z @@ -413,7 +413,7 @@ else eval:=lig_f(h,x,y); @x [117] ... and then really define it now. @p function f; @y -@p function lig_f(@!h:integer64;@!x,@!y:index):index; +@p function lig_f(@!h,@!x,@!y:index):index; @z @x diff --git a/Build/source/texk/web2c/omegaware/ovf2ovp.web b/Build/source/texk/web2c/omegaware/ovf2ovp.web index a2692694481..7001c920000 100644 --- a/Build/source/texk/web2c/omegaware/ovf2ovp.web +++ b/Build/source/texk/web2c/omegaware/ovf2ovp.web @@ -1775,7 +1775,7 @@ and |bad_char| macros: @!c:xchar_type; {a random character} @!d:0..3; {byte number in a word} @!k:index; {a random index} -@!r:0..65535; {a random two-byte value} +@!r:0..max_char; {a random two-byte value} @!count:0..127; {for when we need to enumerate a small set} @ There are a lot of simple things to do, and they have to be done one @@ -2780,7 +2780,7 @@ else begin case t of @ Evaluation of $f(x,y)$ is handled by two mutually recursive procedures. Kind of a neat algorithm, generalizing a depth-first search. -@p function f(@!h:integer64;@!x,@!y:index):index; forward;@t\2@> +@p function f(@!h,@!x,@!y:index):index; forward;@t\2@> {compute $f$ for arguments known to be in |hash[h]|} function eval(@!x,@!y:index):index; {compute $f(x,y)$ with hashtable lookup} var @!key:integer64; {value sought in hash table} @@ -2792,7 +2792,7 @@ else eval:=f(h,x,y); end; @ Pascal's beastly convention for |forward| declarations prevents us from -saying |function f(h:integer64;x,y:index):index| here. +saying |function f(h,x,y:index):index| here. @p function f; begin case class[h] of diff --git a/Build/source/texk/web2c/omegaware/ovp2ovf.ch b/Build/source/texk/web2c/omegaware/ovp2ovf.ch index 1c727230122..78fa86cc6ce 100644 --- a/Build/source/texk/web2c/omegaware/ovp2ovf.ch +++ b/Build/source/texk/web2c/omegaware/ovp2ovf.ch @@ -148,12 +148,12 @@ HEX:=' 0123456789ABCDEF';@/ @z @x [152] Fix up the mutually recursive procedures a la pltotf. -@p function f(@!h:integer64;@!x,@!y:indx):indx; forward;@t\2@> +@p function f(@!h,@!x,@!y:indx):indx; forward;@t\2@> {compute $f$ for arguments known to be in |hash[h]|} @y @p ifdef('notdef') -function f(@!h:integer64;@!x,@!y:indx):indx; begin end;@t\2@> +function f(@!h,@!x,@!y:indx):indx; begin end;@t\2@> {compute $f$ for arguments known to be in |hash[h]|} endif('notdef') @z @@ -161,7 +161,7 @@ endif('notdef') @x [153] Finish fixing up f. @p function f; @y -@p function f(@!h:integer64;@!x,@!y:indx):indx; +@p function f(@!h,@!x,@!y:indx):indx; @z @x [156] Change TFM-byte output to fix ranges. diff --git a/Build/source/texk/web2c/omegaware/ovp2ovf.web b/Build/source/texk/web2c/omegaware/ovp2ovf.web index 718a66cb2d5..47b3cc3836c 100644 --- a/Build/source/texk/web2c/omegaware/ovp2ovf.web +++ b/Build/source/texk/web2c/omegaware/ovp2ovf.web @@ -3308,7 +3308,7 @@ else begin case t of @ (More good stuff from \.{TFtoPL}.) -@p function f(@!h:integer64;@!x,@!y:indx):indx; forward;@t\2@> +@p function f(@!h,@!x,@!y:indx):indx; forward;@t\2@> {compute $f$ for arguments known to be in |hash[h]|} function eval(@!x,@!y:indx):indx; {compute $f(x,y)$ with hashtable lookup} var @!key:integer64; {value sought in hash table} @@ -3320,7 +3320,7 @@ else eval:=f(h,x,y); end; @ Pascal's beastly convention for |forward| declarations prevents us from -saying |function f(h:integer64;x,y:indx):indx| here. +saying |function f(h,x,y:indx):indx| here. @p function f; begin case class[h] of diff --git a/Build/source/texk/web2c/omegaware/yannis.test b/Build/source/texk/web2c/omegaware/yannis.test index 21a521b15bb..a431866eae7 100755 --- a/Build/source/texk/web2c/omegaware/yannis.test +++ b/Build/source/texk/web2c/omegaware/yannis.test @@ -33,27 +33,32 @@ echo && echo "*** ovp2ovf arabic yarabic yarabic" ./wovp2ovf $srcdir/$tests/arabic $tests/yarabic $tests/yarabic || exit 1 echo && echo "*** ofm2opl yarabic xyarabic" -omegafonts/omfonts -ofm2opl $tests/yarabic $tests/xyarabic || exit 1 +./wofm2opl $tests/yarabic $tests/xyarabic || exit 1 -echo && echo "*** ofm2opl yarabic xyarabic" -./wofm2opl $tests/yarabic $tests/xyarabic || exit 77 - -exit 0 -#*************************** +echo && echo "*** opl2ofm xyarabic xyarabic" +./wopl2ofm $tests/xyarabic $tests/xyarabic || exit 1 -diff $srcdir/$tests/Cherokee.pl $tests/xCherokee.pl || exit 1 +echo && echo "*** ofm2opl xyarabic yyarabic" +./wofm2opl $tests/xyarabic $tests/yyarabic || exit 1 - ./wovp2ovf $srcdir/$tests/OCherokee $tests/OCherokee $tests/OCherokee || exit 1 +echo && echo "*** diff xyarabicr.opl yyarabicr.opl" +diff $tests/xyarabic.opl $tests/yyarabic.opl || exit 1 - ./wofm2opl $tests/OCherokee $tests/OCherokee || exit 1 +echo && echo "*** ovf2ovp yarabic yarabic yyarabic" +./wovf2ovp $tests/yarabic $tests/yarabic $tests/yyarabic || exit 1 - ./wopl2ofm $tests/OCherokee $tests/xOCherokee || exit 1 +echo && echo "*** ovp2ovf yyarabic yyarabic yyarabic" +./wovp2ovf $tests/yyarabic $tests/yyarabic $tests/yyarabic || exit 1 - ./wofm2opl $tests/xOCherokee $tests/xOCherokee || exit 1 +echo && echo "*** ofm2opl yyarabic xyarabic" +./wofm2opl $tests/yyarabic $tests/zyarabic || exit 1 -diff $tests/OCherokee.opl $tests/xOCherokee.opl || exit 1 +echo && echo "*** diff xyarabicr.opl zyarabicr.opl" +diff $tests/xyarabic.opl $tests/zyarabic.opl || exit 1 - ./wovf2ovp $tests/OCherokee $tests/OCherokee $tests/xOCherokee || exit 1 +echo && echo "*** ovf2ovp yyarabic yyarabic zyarabic" +./wovf2ovp $tests/yyarabic $tests/yyarabic $tests/zyarabic || exit 1 -diff $srcdir/$tests/OCherokee.ovp $tests/xOCherokee.ovp || exit 1 +echo && echo "*** diff yyarabicr.ovp yyarabicr.ovp" +diff $tests/yyarabic.ovp $tests/zyarabic.ovp || exit 1 -- cgit v1.2.3