diff --git a/include/c/motes.h b/include/c/motes.h index f4308ae9b2..6f56ea285b 100644 --- a/include/c/motes.h +++ b/include/c/motes.h @@ -413,6 +413,7 @@ # define c3__forb c3_s4('f','o','r','b') # define c3__fore c3_s4('f','o','r','e') # define c3__fork c3_s4('f','o','r','k') +# define c3__form c3_s4('f','o','r','m') # define c3__forq c3_s4('f','o','r','q') # define c3__foul c3_s4('f','o','u','l') # define c3__frag c3_s4('f','r','a','g') diff --git a/jets/f/ut_mint.c b/jets/f/ut_mint.c index 4983a79e7b..c5cf5876bb 100644 --- a/jets/f/ut_mint.c +++ b/jets/f/ut_mint.c @@ -564,6 +564,23 @@ return ret; } + case c3__form: u3x_cell(u3t(gen), &p_gen, &q_gen); + _mint_used(); + { + u3_noun hum = _mint_in(van, sut, gol, q_gen); + + if ( c3__void == u3h(hum) ) { + return hum; + } + else { + ret = u3nc(u3nt(c3__form, u3nc(u3k(sut), u3k(p_gen)), u3k(u3h(hum))), + u3k(u3t(hum))); + + u3z(hum); + return ret; + } + } + case c3__ktts: u3x_cell(u3t(gen), &p_gen, &q_gen); _mint_used(); { diff --git a/jets/f/ut_mull.c b/jets/f/ut_mull.c index 7af75ba9eb..42e3a91c2e 100644 --- a/jets/f/ut_mull.c +++ b/jets/f/ut_mull.c @@ -546,6 +546,31 @@ return ret; } + case c3__form: u3x_cell(u3t(gen), &p_gen, &q_gen); + _mull_used(); + { + u3_noun vat = _mull_in(van, sut, gol, dox, q_gen); + u3_noun nup, dur; + + if ( c3__void == u3h(vat) ) { + nup = c3__void; + } + else { + nup = u3nt(c3__form, u3nc(u3k(sut), u3k(p_gen)), u3k(u3h(vat))); + } + + if ( c3__void == u3t(vat) ) { + dur = c3__void; + } + else { + dur = u3nt(c3__form, u3nc(u3k(dox), u3k(p_gen)), u3k(u3t(vat))); + } + ret = u3nc(nup, dur); + + u3z(vat); + return ret; + } + case c3__ktts: u3x_cell(u3t(gen), &p_gen, &q_gen); _mull_used(); { @@ -725,7 +750,7 @@ return u3m_error("mull-bonk-f"); } else { - if ( c3y == _mull_feel(van, sut, p_gen) ) { + if ( c3y == fes ) { return _mull_in(van, sut, gol, dox, q_gen); } else { return _mull_in(van, sut, gol, dox, r_gen); diff --git a/jets/f/ut_play.c b/jets/f/ut_play.c index 443cdcb7ea..3b1adf5e8f 100644 --- a/jets/f/ut_play.c +++ b/jets/f/ut_play.c @@ -388,6 +388,19 @@ return ret; } + case c3__form: u3x_cell(u3t(gen), &p_gen, &q_gen); + _play_used(); + { + u3_noun boc = _play_x(van, sut, q_gen); + + if ( c3__void == boc ) { + return boc; + } + else { + return u3nt(c3__form, u3nc(u3k(sut), u3k(p_gen)), boc); + } + } + case c3__docs: u3x_cell(u3t(gen), &p_gen, &q_gen); _play_used(); {