summaryrefslogtreecommitdiff
path: root/source/luametatex/source/tex/texequivalents.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/luametatex/source/tex/texequivalents.c')
-rw-r--r--source/luametatex/source/tex/texequivalents.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/source/luametatex/source/tex/texequivalents.c b/source/luametatex/source/tex/texequivalents.c
index 56d14a54f..c3cbf087d 100644
--- a/source/luametatex/source/tex/texequivalents.c
+++ b/source/luametatex/source/tex/texequivalents.c
@@ -1017,6 +1017,7 @@ inline static int tex_aux_equal_eq(halfword p, singleword cmd, singleword flag,
}
case dimension_cmd:
case integer_cmd:
+ case posit_cmd:
if (eq_type(p) == cmd && eq_value(p) == chr) {
// if (eq_type(p) == cmd && eq_value(p) == chr && eq_level(p) == cur_level) {
return 1;
@@ -1307,6 +1308,7 @@ void tex_define_swapped(int g, halfword p1, halfword p2, int force)
return;
} else {
switch (t1) {
+ case register_posit_cmd:
case register_int_cmd:
case register_attribute_cmd:
case register_dimen_cmd:
@@ -1315,6 +1317,7 @@ void tex_define_swapped(int g, halfword p1, halfword p2, int force)
case internal_mu_glue_cmd: /* unchecked */
case integer_cmd:
case dimension_cmd:
+ case posit_cmd:
tex_aux_just_define(g, p1, v2);
tex_aux_just_define(g, p2, v1);
return;
@@ -1335,6 +1338,10 @@ void tex_define_swapped(int g, halfword p1, halfword p2, int force)
tex_assign_internal_attribute_value(g, p1, v2);
tex_assign_internal_attribute_value(g, p2, v1);
return;
+ case internal_posit_cmd:
+ tex_assign_internal_posit_value(g, p1, v2);
+ tex_assign_internal_posit_value(g, p2, v1);
+ return;
case internal_dimen_cmd:
tex_assign_internal_dimen_value(g, p1, v2);
tex_assign_internal_dimen_value(g, p2, v1);
@@ -1900,6 +1907,16 @@ void tex_aux_show_eqtb(halfword n)
tex_print_char('=');
tex_print_int(eq_value(n));
break;
+ case internal_posit_reference_cmd:
+ tex_print_cmd_chr(internal_posit_cmd, n);
+ goto POSIT;
+ case register_posit_reference_cmd:
+ tex_print_str_esc("posit");
+ tex_print_int(register_posit_number(n));
+ POSIT:
+ tex_print_char('=');
+ tex_print_posit(eq_value(n));
+ break;
case internal_dimen_reference_cmd:
tex_print_cmd_chr(internal_dimen_cmd, n);
goto DIMEN;
@@ -1991,6 +2008,8 @@ void tex_initialize_equivalents(void)
tex_aux_set_eq(register_int_base, level_one, register_int_reference_cmd, 0, max_int_register_index);
tex_aux_set_eq(internal_attribute_base, level_one, internal_attribute_reference_cmd, unused_attribute_value, number_attribute_pars);
tex_aux_set_eq(register_attribute_base, level_one, register_attribute_reference_cmd, unused_attribute_value, max_attribute_register_index);
+ tex_aux_set_eq(internal_posit_base, level_one, internal_posit_reference_cmd, 0, number_posit_pars);
+ tex_aux_set_eq(register_posit_base, level_one, register_posit_reference_cmd, 0, max_posit_register_index);
tex_aux_set_eq(internal_dimen_base, level_one, internal_dimen_reference_cmd, 0, number_dimen_pars);
tex_aux_set_eq(register_dimen_base, level_one, register_dimen_reference_cmd, 0, max_dimen_register_index);
tex_aux_set_eq(internal_specification_base, level_one, specification_reference_cmd, null, number_specification_pars);