From e890df6dcc6e4f636e4183ff984b57deb8f26d14 Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Sat, 9 Aug 2014 10:31:23 +0000 Subject: texk/web2c/omegafonts: Fixed a bug in checking for infinite ligature loops git-svn-id: svn://tug.org/texlive/trunk@34883 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/omegafonts/ChangeLog | 5 +++ .../texk/web2c/omegafonts/ligkern_routines.c | 11 +++---- Build/source/texk/web2c/omegafonts/yannis.test | 37 ++++++++++++---------- Build/source/texk/web2c/omegaware/yannis.test | 4 +-- 4 files changed, 33 insertions(+), 24 deletions(-) (limited to 'Build') diff --git a/Build/source/texk/web2c/omegafonts/ChangeLog b/Build/source/texk/web2c/omegafonts/ChangeLog index f1294c2b21b..766fa07a17d 100644 --- a/Build/source/texk/web2c/omegafonts/ChangeLog +++ b/Build/source/texk/web2c/omegafonts/ChangeLog @@ -1,3 +1,8 @@ +2014-08-09 Peter Breitenlohner + + * ligkern_routines.c (l_hash_lookup): Fixed a bug in checking + for infinite ligature loops. + 2014-08-08 Peter Breitenlohner * char_routines.c: Compute checksum as in Web2C version. diff --git a/Build/source/texk/web2c/omegafonts/ligkern_routines.c b/Build/source/texk/web2c/omegafonts/ligkern_routines.c index 6da01bf8dcf..6ae730c4024 100644 --- a/Build/source/texk/web2c/omegafonts/ligkern_routines.c +++ b/Build/source/texk/web2c/omegafonts/ligkern_routines.c @@ -110,7 +110,7 @@ void set_skip_command(unsigned val) { if (lk_step_ended == TRUE) { - if (val>128) { + if (val>127) { warning_0("Maximum SKIP amount is 127; ignored"); } else { lig_kern_table[nl-1].entries[0] = val; @@ -382,11 +382,10 @@ l_hash_lookup(unsigned x, unsigned y) unsigned key = (x & 0x7fff)*(y & 0x7fff) % PRIME; hash_list L = hash_table[key]; - if (L==NULL) return NULL; - while (L->x < x) L = L->ptr; - if (L->x != x) return NULL; - while ((L->x == x) && (L->y < y)) L = L->ptr; - if (L->y != y) return NULL; + while ((L != NULL) && ((x > L->x) || ((x == L->x) && (y > L->y)))) + L = L->ptr; + if ((L == NULL) || (x < L->x) || ((x == L->x) && (y < L->y))) + return NULL; return L; } diff --git a/Build/source/texk/web2c/omegafonts/yannis.test b/Build/source/texk/web2c/omegafonts/yannis.test index 7a0cf3716ad..81ad2639f57 100755 --- a/Build/source/texk/web2c/omegafonts/yannis.test +++ b/Build/source/texk/web2c/omegafonts/yannis.test @@ -15,9 +15,6 @@ echo && echo "*** pltotf arabicr yarabicr" echo && echo "*** opl2ofm arabicr.pl zyarabicr" ./omfonts -opl2ofm -verbose $srcdir/tests/arabicr.pl tests/zyarabicr || exit 1 -echo && echo "*** cmp yarabicr.tfm zyarabicr.ofm" -cmp tests/yarabicr.tfm tests/zyarabicr.ofm || exit 1 - echo && echo "*** ofm2opl yarabicr.tfm xyarabicr" ./omfonts -ofm2opl -verbose tests/yarabicr.tfm tests/xyarabicr || exit 1 @@ -28,27 +25,35 @@ echo && echo "*** diff xyarabicr.opl zyarabicr.opl" diff tests/xyarabicr.opl tests/zyarabicr.opl || exit 1 echo && echo "*** ovp2ovf arabic yarabic yarabic" -./omfonts -ovp2ovf -verbose $srcdir/tests/arabic tests/yarabic tests/yarabic || exit 77 +./omfonts -ovp2ovf -verbose $srcdir/tests/arabic tests/yarabic tests/yarabic || exit 1 -echo && echo "*** ofm2opl yarabic.tfm xyarabic" -./omfonts -ofm2opl -verbose tests/yarabic tests/xyarabic || exit 77 +echo && echo "*** ofm2opl yarabic xyarabic" +./omfonts -ofm2opl -verbose tests/yarabic tests/xyarabic || exit 1 -exit 0 -#*************************** +echo && echo "*** opl2ofm xyarabic xyarabic" +./omfonts -opl2ofm -verbose tests/xyarabic tests/xyarabic || exit 1 -diff $srcdir/tests/Cherokee.pl tests/xCherokee.pl || exit 1 +echo && echo "*** ofm2opl xyarabic yyarabic" +./omfonts -ofm2opl -verbose tests/xyarabic tests/yyarabic || exit 1 - ./omfonts -ovp2ovf -verbose $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 - ./omfonts -ofm2opl -verbose tests/OCherokee tests/OCherokee || exit 1 +echo && echo "*** ovf2ovp yarabic yarabic yyarabic" +./omfonts -ovf2ovp -verbose tests/yarabic tests/yarabic tests/yyarabic || exit 1 - ./omfonts -opl2ofm -verbose tests/OCherokee tests/xOCherokee || exit 1 +echo && echo "*** ovp2ovf yyarabic yyarabic yyarabic" +./omfonts -ovp2ovf -verbose tests/yyarabic tests/yyarabic tests/yyarabic || exit 1 - ./omfonts -ofm2opl -verbose tests/xOCherokee tests/xOCherokee || exit 1 +echo && echo "*** ofm2opl yyarabic xyarabic" +./omfonts -ofm2opl -verbose 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 - ./omfonts -ovf2ovp -verbose tests/OCherokee tests/OCherokee tests/xOCherokee || exit 1 +echo && echo "*** ovf2ovp yyarabic yyarabic zyarabic" +./omfonts -ovf2ovp -verbose 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 diff --git a/Build/source/texk/web2c/omegaware/yannis.test b/Build/source/texk/web2c/omegaware/yannis.test index a00220bc2e1..21a521b15bb 100755 --- a/Build/source/texk/web2c/omegaware/yannis.test +++ b/Build/source/texk/web2c/omegaware/yannis.test @@ -32,10 +32,10 @@ diff $tests/xyarabicr.opl $tests/zyarabicr.opl || exit 1 echo && echo "*** ovp2ovf arabic yarabic yarabic" ./wovp2ovf $srcdir/$tests/arabic $tests/yarabic $tests/yarabic || exit 1 -echo && echo "*** ofm2opl yarabic.tfm xyarabic" +echo && echo "*** ofm2opl yarabic xyarabic" omegafonts/omfonts -ofm2opl $tests/yarabic $tests/xyarabic || exit 1 -echo && echo "*** ofm2opl yarabic.tfm xyarabic" +echo && echo "*** ofm2opl yarabic xyarabic" ./wofm2opl $tests/yarabic $tests/xyarabic || exit 77 exit 0 -- cgit v1.2.3