@Cobaltasaurus
I do, but I never give up a chance to see if you want to jump on a particular code-wagon.
Without the help files in front of me, I can think of a few things:
- escape() instead of secure(). Escape will comment out commas and similar. However, when you read the attribute, you will probably need to s( get( <blah> )) to turn it back into legible text.
- The attribute flag 'no_parse' (or possibly 'no_parse') on the $command attribute. This will mean that the system is reads the text as typed (tho space compression still happens). The danger here is that when you read it, you must use get() or v(). If you don't, you risk running the contents as the object, which could be pretty horrible. If this is what you want (it happens), you want to do it this way: [setq( x, get( <blah >))][eval( %#, s( %qx ))] <-- there may be better ways to do this.
If you're using my update to @Sammi's notes system, the latter half of the 'no_parse' method is kind of what I do, because showing a %r as a return is pretty darned important for notes. What I think I do is more like this:
&c.note [no_parse]: $note/add *:@check everything; @set target=attribute:[eval( %#, %0 )]
So this way, the note is stored already parsed, and I don't have to do the 'get() with wizard privs, but eval() as the player' trick. Nope, it's set in stone when it hits the attribute.
I haven't tested this to make sure I'm right, but I'm pretty sure that I am and this is the way I'd recommend it.