@q @prog cmd-edit 1 99999 d 1 i ( cmd-edit ( This is a program that will let you replace errors in a message ) ( or property so that you can fix up typo's without having to ) ( retype the entire thing. ) ( ) ( Usage: edit <object>=<prop> or ) ( edit <object>=@<mesg> ) ( ) ( CHANGES: Added a 'checkperms' routine to prevent non-wiz users ) ( from changing @wizard or ~restricted props -- Jessy 7/00 ) ( ) $include $lib/strings : checkperms ( s -- ) dup "@" stringpfx over "/@" instr 3 pick "~" stringpfx 4 rotate "/~" instr or or or me @ "W" flag? not and if "Permission denied." .tell pid kill then ; : replace-text ( str -- str ) "Please enter the text it should be changed to." .tell "##edit> " swap strcat .tell read ; : error "Name: Edit v1.02 Written by Tygryss Last updated 3/31/92" .tell "Desc: Lets you use the tinyfugue /grab feature to edit a message" .tell " or property. Requires tinyfugue 1.5.0 or later with this" .tell " trigger defined: /def -fg -p100 -t\"##edit> *\" = /grab %-1" .tell " " .tell "Syntax: edit <object>=<propname> or" .tell " edit <object>=@<mesgtype>" .tell " " .tell "<mesgtype> can be name/desc/succ/osucc/fail/ofail/drop/odrop" .tell ; : change-main "me" match me ! "=" .split .stripspaces dup not if error exit then swap .stripspaces dup not if error exit then swap dup "@" 1 strncmp if ( property? ) swap match dup #-1 dbcmp if "I don't see that here." .tell exit then dup #-2 dbcmp if "I don't know which one you mean!" .tell exit then dup #-3 dbcmp if "I don't know what you mean!" .tell exit then dup owner me @ dbcmp not me @ "w" flag? not and if "Permission denied." .tell exit then swap over over dup checkperms getpropstr replace-text dup not if pop remove_prop else 0 addprop then "Property changed." .tell else ( ; for message? ) 1 strcut swap pop swap match dup #-1 dbcmp if "I don't see that here." .tell exit then dup #-2 dbcmp if "I don't know which one you mean!" .tell exit then dup #-3 dbcmp if "I don't know what you mean!" .tell exit then dup owner me @ dbcmp not me @ "w" flag? not and if "Permission denied." .tell exit then swap dup "name" stringcmp not if pop dup name replace-text setname else dup "desc" stringcmp not if pop dup desc replace-text setdesc else dup "succ" stringcmp not if pop dup succ replace-text setsucc else dup "osucc" stringcmp not if pop dup osucc replace-text setosucc else dup "fail" stringcmp not if pop dup fail replace-text setfail else dup "ofail" stringcmp not if pop dup ofail replace-text setofail else dup "drop" stringcmp not if pop dup drop replace-text setdrop else dup "odrop" stringcmp not if pop dup odrop replace-text setodrop else pop error then then then then then then then then "Message changed." .tell then ; . c q @register #me cmd-edit=tmp/prog1 @set $tmp/prog1=W @set $tmp/prog1=/_/de:A scroll containing a spell called cmd-edit