[NTG-context] "true" units in LuaMetaTeX

Max Chernoff mseven at telus.net
Thu Oct 27 08:11:26 CEST 2022


Hi Hans,

The unit scanner in LuaMetaTeX fails for any of the "true" dimensions. 

With this test file:

   \starttext
       \vrule width 1truein height 1pt depth 0pt\relax
   
       \vrule width 1in height 1pt depth 0pt\relax
   \stoptext

I get this output:

   tex error       > tex error on line 2 in file ./lmtx-true.tex: Valid keyword expected, likely 'true'
   
   <line 3.2> 
           \vrule width 1truei
       n height 1pt depth 0pt\relax
   
   1     \starttext
   2 >>      \vrule width 1truein height 1pt depth 0pt\relax
   3     
   4         \vrule width 1in height 1pt depth 0pt\relax
   5     \stoptext
   6     

I was able to fix this with the patch at the end of the email.

(Also, how do you want patches sent? Via email to the mailing list,
emailed directly to you, as a pull request on GitHub, or something
else?)

Thanks,
-- Max

-- >8 --
>From 69f186daa9b3bf53697e6edf1bd9b066d64b35fe Mon Sep 17 00:00:00 2001
From: Max Chernoff <49086429+gucci-on-fleek at users.noreply.github.com>
Date: Wed, 26 Oct 2022 23:45:19 -0600
Subject: [PATCH] Fix scanning of "true" units

---
 source/tex/texscanning.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/source/tex/texscanning.c b/source/tex/texscanning.c
index 7f78d80..98a9c41 100644
--- a/source/tex/texscanning.c
+++ b/source/tex/texscanning.c
@@ -2304,6 +2304,7 @@ typedef enum scanned_unit {
 
 static int tex_aux_scan_unit(halfword *num, halfword *denom, halfword *value, halfword *order)
 {
+  AGAIN:
     do {
         tex_get_x_token();
     } while (cur_cmd == spacer_cmd);
@@ -2327,7 +2328,6 @@ static int tex_aux_scan_unit(halfword *num, halfword *denom, halfword *value, ha
             goto BACK_TWO;
         }
         cur_cs = save_cur_cs;
-      AGAIN:
         switch (chrone) {
             case 'p': case 'P':
                 switch (chrtwo) {
-- 
2.37.3




More information about the ntg-context mailing list