From eea76bff51c647fa1e3917c4ffdcac479dde413b Mon Sep 17 00:00:00 2001 From: Luigi Scarso Date: Fri, 28 Oct 2022 06:21:31 +0000 Subject: \variablefam (backport from luametatex, handy for latex) (H .Hagen) git-svn-id: svn://tug.org/texlive/trunk@64839 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/luatexdir/ChangeLog | 9 +++++++++ Build/source/texk/web2c/luatexdir/luatex_svnversion.h | 2 +- Build/source/texk/web2c/luatexdir/tex/commands.c | 1 + Build/source/texk/web2c/luatexdir/tex/dumpdata.c | 2 +- Build/source/texk/web2c/luatexdir/tex/equivalents.h | 5 ++++- Build/source/texk/web2c/luatexdir/tex/texmath.c | 11 +++++++++++ 6 files changed, 27 insertions(+), 3 deletions(-) (limited to 'Build/source/texk') diff --git a/Build/source/texk/web2c/luatexdir/ChangeLog b/Build/source/texk/web2c/luatexdir/ChangeLog index 7ce5072da9f..9cd534c2c56 100644 --- a/Build/source/texk/web2c/luatexdir/ChangeLog +++ b/Build/source/texk/web2c/luatexdir/ChangeLog @@ -1,3 +1,12 @@ +2022-10-28 Luigi Scarso + * \variablefam (backport from luametatex, handy for latex) (H .Hagen) + +2022-10-22 Luigi Scarso + * STOP COMMITS TO SVN REPO -- WORK IN PROGRESS + +2022-10-22 Luigi Scarso + * porting texlive patch r53155 -- WORK IN PROGRESS + 2022-09-29 Luigi Scarso * Fixed an infinite loop with --halt-on-error option (K.Berry) diff --git a/Build/source/texk/web2c/luatexdir/luatex_svnversion.h b/Build/source/texk/web2c/luatexdir/luatex_svnversion.h index 9821051cb22..6c9c206b957 100644 --- a/Build/source/texk/web2c/luatexdir/luatex_svnversion.h +++ b/Build/source/texk/web2c/luatexdir/luatex_svnversion.h @@ -1,4 +1,4 @@ #ifndef luatex_svn_revision_h #define luatex_svn_revision_h -#define luatex_svn_revision 7540 +#define luatex_svn_revision 7546 #endif diff --git a/Build/source/texk/web2c/luatexdir/tex/commands.c b/Build/source/texk/web2c/luatexdir/tex/commands.c index 9cf5efeeec5..b502cf287fe 100644 --- a/Build/source/texk/web2c/luatexdir/tex/commands.c +++ b/Build/source/texk/web2c/luatexdir/tex/commands.c @@ -119,6 +119,7 @@ void initialize_commands(void) primitive_tex("floatingpenalty", assign_int_cmd, int_base + floating_penalty_code, int_base); primitive_tex("globaldefs", assign_int_cmd, int_base + global_defs_code, int_base); primitive_tex("fam", assign_int_cmd, int_base + cur_fam_code, int_base); + primitive_luatex("variablefam", assign_int_cmd, int_base + var_fam_code, int_base); primitive_tex("escapechar", assign_int_cmd, int_base + escape_char_code, int_base); primitive_tex("defaulthyphenchar", assign_int_cmd, int_base + default_hyphen_char_code, int_base); primitive_tex("defaultskewchar", assign_int_cmd, int_base + default_skew_char_code, int_base); diff --git a/Build/source/texk/web2c/luatexdir/tex/dumpdata.c b/Build/source/texk/web2c/luatexdir/tex/dumpdata.c index fb435c2ca1e..6b7535803f1 100644 --- a/Build/source/texk/web2c/luatexdir/tex/dumpdata.c +++ b/Build/source/texk/web2c/luatexdir/tex/dumpdata.c @@ -32,7 +32,7 @@ with LuaTeX; if not, see . */ -#define FORMAT_ID (907+58) +#define FORMAT_ID (907+59) #if ((FORMAT_ID>=0) && (FORMAT_ID<=256)) #error Wrong value for FORMAT_ID. #endif diff --git a/Build/source/texk/web2c/luatexdir/tex/equivalents.h b/Build/source/texk/web2c/luatexdir/tex/equivalents.h index 8df33be5237..f755af60a3f 100644 --- a/Build/source/texk/web2c/luatexdir/tex/equivalents.h +++ b/Build/source/texk/web2c/luatexdir/tex/equivalents.h @@ -314,8 +314,9 @@ the |number_regs| \.{\\dimen} registers. # define partoken_context_code 121 # define show_stream_code 122 # define math_eq_dir_mode_code 123 +# define var_fam_code 124 -# define math_option_code 124 +# define math_option_code 125 # define mathoption_int_base_code (math_option_code+1) /* one reserve */ # define mathoption_int_last_code (mathoption_int_base_code+8) @@ -651,11 +652,13 @@ extern halfword last_cs_name; #define split_top_skip_par glue_par(split_top_skip_code) #define cur_fam_par int_par(cur_fam_code) +#define var_fam_par int_par(var_fam_code) #define pre_display_direction_par int_par(pre_display_direction_code) #define pre_display_penalty_par int_par(pre_display_penalty_code) #define post_display_penalty_par int_par(post_display_penalty_code) #define cur_fam_par_in_range ((cur_fam_par>=0)&&(cur_fam_par<256)) +#define var_fam_par_in_range ((var_fam_par>=0)&&(var_fam_par<256)) #define local_inter_line_penalty_par int_par(local_inter_line_penalty_code) #define local_broken_penalty_par int_par(local_broken_penalty_code) diff --git a/Build/source/texk/web2c/luatexdir/tex/texmath.c b/Build/source/texk/web2c/luatexdir/tex/texmath.c index 7a71fd80349..8b6138e7cbb 100644 --- a/Build/source/texk/web2c/luatexdir/tex/texmath.c +++ b/Build/source/texk/web2c/luatexdir/tex/texmath.c @@ -1462,6 +1462,8 @@ int scan_math(pointer p, int mstyle) math_character(p) = mval.character_value; if ((mval.class_value == math_use_current_family_code) && cur_fam_par_in_range) math_fam(p) = cur_fam_par; + else if ((mval.family_value == var_fam_par) && var_fam_par_in_range) + math_fam(p) = cur_fam_par; else math_fam(p) = mval.family_value; return 0; @@ -1508,6 +1510,9 @@ void set_math_char(mathcodeval mval) if (cur_fam_par_in_range) math_fam(nucleus(p)) = cur_fam_par; subtype(p) = ord_noad_type; + } else if ((mval.family_value == var_fam_par) && var_fam_par_in_range) { + if (cur_fam_par_in_range) + math_fam(nucleus(p)) = cur_fam_par; } else { math_class_to_type(subtype(p),mval.class_value); } @@ -1802,6 +1807,8 @@ void math_ac(void) math_character(top_accent_chr(tail)) = t.character_value; if ((t.class_value == math_use_current_family_code) && cur_fam_par_in_range) math_fam(top_accent_chr(tail)) = cur_fam_par; + else if ((t.family_value == var_fam_par) && var_fam_par_in_range) + math_fam(top_accent_chr(tail)) = cur_fam_par; else math_fam(top_accent_chr(tail)) = t.family_value; } @@ -1811,6 +1818,8 @@ void math_ac(void) math_character(bot_accent_chr(tail)) = b.character_value; if ((b.class_value == math_use_current_family_code) && cur_fam_par_in_range) math_fam(bot_accent_chr(tail)) = cur_fam_par; + else if ((b.family_value == var_fam_par) && var_fam_par_in_range) + math_fam(bot_accent_chr(tail)) = cur_fam_par; else math_fam(bot_accent_chr(tail)) = b.family_value; } @@ -1820,6 +1829,8 @@ void math_ac(void) math_character(overlay_accent_chr(tail)) = o.character_value; if ((o.class_value == math_use_current_family_code) && cur_fam_par_in_range) math_fam(overlay_accent_chr(tail)) = cur_fam_par; + else if ((o.family_value == var_fam_par) && var_fam_par_in_range) + math_fam(overlay_accent_chr(tail)) = cur_fam_par; else math_fam(overlay_accent_chr(tail)) = o.family_value; } -- cgit v1.2.3