@prog msay.muf 1 999 d 1 i $def beginprop "_first_line" $def endprop "_last_line" $def compref "_command_prefix" $def comsuf "_command_suffix" : handle-this-line trigger @ compref getpropstr swap trigger @ comsuf getpropstr strcat strcat me @ swap force ; : sub-this-line me @ swap pronoun_sub handle-this-line ; : main trigger @ beginprop getpropstr dup if sub-this-line else pop then dup if "Type `" over "' to exit " command @ "." 5 else "Enter a blank line to exit " command @ "." 3 then "" rimplode begin "" 3 timed-prompt dup int? if pop dup me @ swap notify read then 3 pick over strcmp while handle-this-line loop 3 mpop trigger @ endprop getpropstr dup if sub-this-line else pop then me @ "[" command @ " done]" strcat strcat notify ; . c q