diff options
Diffstat (limited to 'source/luametatex/source/mp')
-rw-r--r-- | source/luametatex/source/mp/mpc/mp.c | 6 | ||||
-rw-r--r-- | source/luametatex/source/mp/mpw/mp.w | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/source/luametatex/source/mp/mpc/mp.c b/source/luametatex/source/mp/mpc/mp.c index a79f7db3f..032d8f34a 100644 --- a/source/luametatex/source/mp/mpc/mp.c +++ b/source/luametatex/source/mp/mpc/mp.c @@ -17038,6 +17038,7 @@ static void mp_do_binary (MP mp, mp_node p, int c) } break; case mp_times_operation: + TIMES: if ((mp->cur_exp.type < mp_color_type) || (p->type < mp_color_type)) { mp_bad_binary(mp, p, mp_times_operation); } else if ((mp->cur_exp.type == mp_known_type) || (p->type == mp_known_type)) { @@ -17222,6 +17223,11 @@ static void mp_do_binary (MP mp, mp_node p, int c) mp_do_edges_trans(mp, p, (int) c); mp_finish_binary(mp, old_p, old_exp); return; + case mp_color_type: + case mp_cmykcolor_type: + if (c == mp_scaled_operation) { + goto TIMES; + } default: mp_bad_binary(mp, p, (int) c); break; diff --git a/source/luametatex/source/mp/mpw/mp.w b/source/luametatex/source/mp/mpw/mp.w index fe47d3d82..6acecd35b 100644 --- a/source/luametatex/source/mp/mpw/mp.w +++ b/source/luametatex/source/mp/mpw/mp.w @@ -24713,6 +24713,7 @@ static void mp_do_binary (MP mp, mp_node p, int c) } break; case mp_times_operation: + TIMES: if ((mp->cur_exp.type < mp_color_type) || (p->type < mp_color_type)) { mp_bad_binary(mp, p, mp_times_operation); } else if ((mp->cur_exp.type == mp_known_type) || (p->type == mp_known_type)) { @@ -24904,6 +24905,12 @@ static void mp_do_binary (MP mp, mp_node p, int c) mp_do_edges_trans(mp, p, (int) c); mp_finish_binary(mp, old_p, old_exp); return; + case mp_color_type: + case mp_cmykcolor_type: + if (c == mp_scaled_operation) { + goto TIMES; + } + /* fall through */ default: mp_bad_binary(mp, p, (int) c); break; |