@prog whisper.muf 1 999 d 1 i : last-prop "*last-whisper" ; : say me @ swap notify ; : stripleading begin dup " " 1 strncmp not while 1 strcut swap pop loop ; : striptrailing dup strlen begin dup 0 > while 1 - swap over strcut dup " " strcmp if strcat swap break then pop swap loop pop ; : stripspaces stripleading striptrailing ; : make-pose 1 strcut prog "_pose-nospace" getpropstr 3 pick instr if me @ name -rot strcat strcat else me @ name " " 4 2 roll strcat strcat strcat then ; : main dup not if pop "Whisper to whom?" say exit then dup "=" instr dup if 1 - strcut swap stripspaces dup if .pmatch+ dup #-1 dbcmp if pop pop "Whisper to whom?" say exit then dup #-2 dbcmp if pop pop "You'll have to clarify that." say exit then me @ over int intostr last-prop swap addprop else pop me @ last-prop getpropstr atoi dbref dup player? not if pop pop "You must whisper to someone first!" say exit then then me @ royalty? not trigger @ "q" flag? or if dup location me @ location dbcmp not if name " is not in this room. (Using page may be more appropriate.)" strcat say pop exit then then dup royalty? not if dup location me @ location dbcmp not if "NOTE: " over name strcat " cannot whisper back" strcat say then then dup awake? not if name " is not awake." strcat say pop exit then swap 1 strcut swap pop stripspaces dup ":" 1 strncmp over ";" 1 strncmp and if "You whisper, \"" over "\" to " strcat strcat 3 pick name "." strcat strcat me @ name " whispers, \"" strcat 3 pick "\" to you." strcat strcat else 1 strcut swap pop make-pose "Privately to " 3 pick name ", " strcat strcat over strcat "Privately to you, " 3 pick strcat then rot pop swap me @ "_whisper_noecho" prop-exists? not if say else pop then notify else pop pop "Format is: whisper =" say exit then ; . c q