texlive[73426] Build/source/texk/web2c/luatexdir: fixed "unexpected

commits+lscarso at tug.org commits+lscarso at tug.org
Sat Jan 11 22:04:51 CET 2025


Revision: 73426
          https://tug.org/svn/texlive?view=revision&revision=73426
Author:   lscarso
Date:     2025-01-11 22:04:50 +0100 (Sat, 11 Jan 2025)
Log Message:
-----------
fixed "unexpected delimiter construction with classic tfm cmex font", see https://tex.stackexchange.com/a/734734/1090 (HH). LuaTeX 1.20.4

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/luatexdir/ChangeLog
    trunk/Build/source/texk/web2c/luatexdir/luatex.c
    trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h
    trunk/Build/source/texk/web2c/luatexdir/tex/mlist.c

Modified: trunk/Build/source/texk/web2c/luatexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/ChangeLog	2025-01-11 20:50:36 UTC (rev 73425)
+++ trunk/Build/source/texk/web2c/luatexdir/ChangeLog	2025-01-11 21:04:50 UTC (rev 73426)
@@ -1,7 +1,14 @@
 2025-01-04 Luigi Scarso <luigi.scarso at gmail.com>
+	* fixed "unexpected delimiter construction with classic tfm cmex font", 
+	  see https://tex.stackexchange.com/a/734734/1090 (HH)
+	* LuaTeX 1.20.4
+
+
+2025-01-04 Luigi Scarso <luigi.scarso at gmail.com>
 	* replaced # error with # define UNSUPPORTED_ARCH in ffi.[ch]
 	* LuaTeX 1.20.3
 
+
 2025-01-04 Luigi Scarso <luigi.scarso at gmail.com>
 	* ffi.h: do not assume that struct cdata is aligned(16). 
 	* More fixes for luaffi.

Modified: trunk/Build/source/texk/web2c/luatexdir/luatex.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luatex.c	2025-01-11 20:50:36 UTC (rev 73425)
+++ trunk/Build/source/texk/web2c/luatexdir/luatex.c	2025-01-11 21:04:50 UTC (rev 73426)
@@ -33,8 +33,8 @@
 */
 
 int luatex_version = 120;
-int luatex_revision = '3';
-const char *luatex_version_string = "1.20.3";
+int luatex_revision = '4';
+const char *luatex_version_string = "1.20.4";
 const char *engine_name = my_name;
 
 #include <kpathsea/c-ctype.h>

Modified: trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h	2025-01-11 20:50:36 UTC (rev 73425)
+++ trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h	2025-01-11 21:04:50 UTC (rev 73426)
@@ -1,4 +1,4 @@
 #ifndef luatex_svn_revision_h
 #define luatex_svn_revision_h
-#define luatex_svn_revision 7640
+#define luatex_svn_revision 7641
 #endif

Modified: trunk/Build/source/texk/web2c/luatexdir/tex/mlist.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/tex/mlist.c	2025-01-11 20:50:36 UTC (rev 73425)
+++ trunk/Build/source/texk/web2c/luatexdir/tex/mlist.c	2025-01-11 21:04:50 UTC (rev 73426)
@@ -1588,8 +1588,25 @@
                         f = g;
                         c = y;
                         w = u;
-                        if (u >= v)
-                            goto FOUND;
+                        if (u >= v) {
+                            /* 
+                                This solves a leftbrace middle being abused as starting point 
+                                for an extensible bar in cmex. It's the only known case where 
+                                a middle piece is so large that it makes us consider it a valid 
+                                sized character. It is large because it braces have variants. The 
+                                reason why actually these starting points can be somewhat weird 
+                                (like: the extesible is a bottom parent piece (small) that has a 
+                                recipe using shared middle pieces and and self references bottom 
+                                piece usage.) In opentype the extensibles always sit on a complete 
+                                shape i.e. they are end points in a variant list or a base 
+                                character. It took two decades to run into an example (HH & MS). 
+                            */
+                            if (is_new_mathfont(z)) {
+                                goto FOUND;
+                            } else if (char_tag(g, y) != ext_tag) {
+                                goto FOUND;
+                            }
+                        }
                     }
                     if (char_tag(g, y) == ext_tag) {
                         f = g;



More information about the tex-live-commits mailing list.