string *find_stuff(object ob, string varname){ string *variables = variables(ob); string *ret = ({}); if(member_array(varname, variables) > -1){ object *inhobs = map(inherit_list(ob), (:find_object:)); object obj; foreach(obj in inhobs){ ret += find_stuff(obj, varname); } if(ret == ({})){ ret = ({file_name(ob)}); } } return ret; } int cmd(object ob, string var){ string *files = find_stuff(ob, var); if(sizeof(files) > 1) printf("%s is defined in %s and %s.\n", var, implode(files[0..<2], ", "), files[<1]); else write("No redefinition found.\n"); return 1; } string *query_patterns(){ return ({"<indirect:wiz-present> <word'global'>", (:cmd($1[0], $4[1]):)}); }