&FILTER_GREP [v(DBREF_WIZZED_OBJECT_PARENT)]=strmatch(get(%q9/%0),*%q8*) &DO_GREP [v(DBREF_WIZZED_OBJECT)]=$+gre* *=*:@switch/first setq(9,locate(%#,secure(%1),*V))[setq(5,secure(%0))][setq(8,secure(%2))]%q9+[or(match(%#,owner(%q9)),hasflag(%q9,VISUAL),hasflag(%#,WIZARD))]=#-2*,{@pemit %#=I don't know which one you mean!},#-1*,{@pemit %#=I don't see that here.},*+1,{@pemit %#=[setq(7,lattr(%q9))][setq(6,setunion(filter(filter_grep,%q7),[switch(%q5,p/*name*,lattr(%q9/*%q8*))]))]Attributes on [name(%q9)](%q9) that[switch(%q5,*name*,%bmatch and)] contain "%q8":[switch(words(%q6),0,%rNo Matches found.,[iter(%q6,%r##[switch(%q5,p/*list*,%r%t[get(%q9/##)])])])];@pemit %#=[switch(parent(%q9),#-1,,[name(%q9)](%q9) is parented to [name(parent(%q9))]([parent(%q9)]).)]},{@pemit %#=Permission denied.} &HELP_grep [v(dbref_help_object)]=The syntax of the command is:%r%b%b+grep object=string%r%rOptional Switches:%r%b%b/name%b%b Matches against the attribute name as well as the contents.%r%b%b/list%b%b Lists the contents of matching attributes%r%rThis command searches an object for attributes that contain the %rspecified string, which may contain wild cards.%b%bBy default, only%rattribute namess whose contents contain the string are listed.%r%rThe /list switch will display the contents of the attributes.%rThe /name switch will include the name of the attribute in the test.%rThe /list and /name switches may be combined.%r%rYou may only +grep objects which you own, or which are set VISUAL.%rWizards may +grep anything. @pemit me=Done Quoting!