texlive[64010] Build/source/texk/web2c/luatexdir: luatex: sync with

commits+kakuto at tug.org commits+kakuto at tug.org
Sat Jul 30 22:58:50 CEST 2022


Revision: 64010
          http://tug.org/svn/texlive?view=revision&revision=64010
Author:   kakuto
Date:     2022-07-30 22:58:50 +0200 (Sat, 30 Jul 2022)
Log Message:
-----------
luatex: sync with the upstream

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/luatexdir/ChangeLog
    trunk/Build/source/texk/web2c/luatexdir/lang/texlang.c
    trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h

Modified: trunk/Build/source/texk/web2c/luatexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/ChangeLog	2022-07-30 20:41:51 UTC (rev 64009)
+++ trunk/Build/source/texk/web2c/luatexdir/ChangeLog	2022-07-30 20:58:50 UTC (rev 64010)
@@ -1,3 +1,9 @@
+2022-07-30  Luigi Scarso <luigi.scarso at gmail.com>
+    * Backtrack replace pointer when successive disc in exceptions  (H.Hagen)
+
+2022-07-30  Luigi Scarso <luigi.scarso at gmail.com>
+    * Take exception pre/port disc font from wordstart (H.Hagen)
+
 2022-05-23  Luigi Scarso <luigi.scarso at gmail.com>
     * Fixed mp_begin_iteration (H.Hagen)
 

Modified: trunk/Build/source/texk/web2c/luatexdir/lang/texlang.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/lang/texlang.c	2022-07-30 20:41:51 UTC (rev 64009)
+++ trunk/Build/source/texk/web2c/luatexdir/lang/texlang.c	2022-07-30 20:58:50 UTC (rev 64010)
@@ -358,7 +358,9 @@
         f = get_cur_font();
     }
     for (g = pre; g != null; g = vlink(g)) {
-        font(g) = f;
+        if (! font(g)) {
+            font(g) = f;
+        }
         if (attr != null) {
             delete_attribute_ref(node_attr(g));
             node_attr(g) = attr;
@@ -366,7 +368,9 @@
         }
     }
     for (g = post; g != null; g = vlink(g)) {
-        font(g) = f;
+        if (! font(g)) {
+            font(g) = f;
+        }
         if (attr != null) {
             delete_attribute_ref(node_attr(g));
             node_attr(g) = attr;
@@ -531,9 +535,14 @@
     The sequence from |wordstart| to |r| can contain only normal characters it
     could be faster to modify a halfword pointer and return an integer
 
+    We now take the font from the wordstart (as in \LUAMETATEX) but leave the
+    rest as it is, because we don't want to break compatibility (end June 2022).
+    We make a copy now of the parent and hope for the best. Backporting would be
+    too intrusive so this has to do. It went unnoticed for ages anyway.
+
 */
 
-static halfword find_exception_part(unsigned int *j, unsigned int *uword, int len)
+static halfword find_exception_part(unsigned int *j, unsigned int *uword, int len, halfword parent)
 {
     halfword g = null, gg = null;
     register unsigned i = *j;
@@ -541,13 +550,16 @@
     i++;
     while (i < (unsigned) len && uword[i + 1] != '}') {
         if (g == null) {
-            gg = new_char(0, (int) uword[i + 1]);
+         /* gg = new_char(font(parent), (int) uword[i + 1]); */
+            gg = copy_node(parent);
             g = gg;
         } else {
-            halfword s = new_char(0, (int) uword[i + 1]);
+         /* halfword s = new_char(font(parent), (int) uword[i + 1]); */
+            halfword s = copy_node(parent);
             couple_nodes(g, s);
-            g = vlink(g);
+            g = s;
         }
+        character(g) = (int) uword[i + 1];
         i++;
     }
     *j = ++i;
@@ -614,12 +626,12 @@
             halfword gg, hh, replace = null;
             int repl;
             /*tex |pre| */
-            gg = find_exception_part(&i, uword, (int) len);
+            gg = find_exception_part(&i, uword, (int) len, wordstart);
             if (i == len || uword[i + 1] != '{') {
                 tex_error("broken pattern 1", PAT_ERROR);
             }
             /*tex |post| */
-            hh = find_exception_part(&i, uword, (int) len);
+            hh = find_exception_part(&i, uword, (int) len, wordstart);
             if (i == len || uword[i + 1] != '{') {
                 tex_error("broken pattern 2", PAT_ERROR);
             }
@@ -693,6 +705,7 @@
             /*tex check if we have two exceptions in a row */
             if (uword[i + 1] == '{') {
                 i--;
+t = alink(t);
             }
         } else {
             t = vlink(t);

Modified: trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h	2022-07-30 20:41:51 UTC (rev 64009)
+++ trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h	2022-07-30 20:58:50 UTC (rev 64010)
@@ -1,4 +1,4 @@
 #ifndef luatex_svn_revision_h
 #define luatex_svn_revision_h
-#define luatex_svn_revision 7528
+#define luatex_svn_revision 7532
 #endif



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