summaryrefslogtreecommitdiff
path: root/source/luametatex/source/tex/texmaincontrol.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/luametatex/source/tex/texmaincontrol.c')
-rw-r--r--source/luametatex/source/tex/texmaincontrol.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/source/luametatex/source/tex/texmaincontrol.c b/source/luametatex/source/tex/texmaincontrol.c
index a5f3b5334..8b9250444 100644
--- a/source/luametatex/source/tex/texmaincontrol.c
+++ b/source/luametatex/source/tex/texmaincontrol.c
@@ -3487,8 +3487,8 @@ static int tex_aux_valid_arithmic(int cmd, int *index, int *level, int *varcmd,
*original = eq_value(*index);
return 1;
case register_cmd:
- *index = tex_aux_get_register_index(*level);
*level = cur_chr;
+ *index = tex_aux_get_register_index(cur_chr);
*original = eq_value(*index);
return 1;
case integer_cmd:
@@ -3603,30 +3603,30 @@ static void tex_aux_arithmic_register(int a, int code)
halfword original = 0;
if (tex_aux_valid_arithmic(cmd, &index, &level, &varcmd, &simple, &original)) {
halfword value = null;
- lmt_scanner_state.arithmic_error = 0;
+ // lmt_scanner_state.arithmic_error = 0;
switch (code) {
case advance_code:
tex_scan_optional_keyword("by");
case advance_by_code:
{
- value = tex_aux_get_register_value(level, 0);
+ halfword amount = tex_aux_get_register_value(level, 0);
switch (level) {
case int_val_level:
case attr_val_level:
case dimen_val_level:
- if (value) {
- value += original;
+ if (amount) {
+ value = original + amount;
break;
} else {
return;
}
case glue_val_level:
case mu_val_level:
- if (tex_glue_is_zero(value)) {
+ if (tex_glue_is_zero(amount)) {
return;
} else {
/* Compute the sum of two glue specs */
- halfword newvalue = tex_new_glue_spec_node(value);
+ halfword newvalue = tex_new_glue_spec_node(amount);
tex_flush_node(value);
glue_amount(newvalue) += glue_amount(original);
if (glue_stretch(newvalue) == 0) {
@@ -3667,9 +3667,11 @@ static void tex_aux_arithmic_register(int a, int code)
case multiply_by_code:
{
halfword amount = tex_scan_int(0, NULL);
+ halfword value = 0;
if (amount == 1) {
return;
} else {
+ lmt_scanner_state.arithmic_error = 0;
switch (level) {
case int_val_level:
case attr_val_level:
@@ -3710,6 +3712,7 @@ static void tex_aux_arithmic_register(int a, int code)
if (amount == 1) {
return;
} else {
+ lmt_scanner_state.arithmic_error = 0;
switch (level) {
case int_val_level:
case attr_val_level: