/* Do not remove the headers from this file! see /USAGE for more info. */ #include <mudlib.h> #include <clean_up.h> inherit __DIR__ "cmd/stdio"; //### necessary? inherit M_ACCESS; varargs void main(mixed arg1, mixed arg2); protected void create() { set_privilege(1); } varargs nomask mixed call_main(mixed arg1, mixed arg2, mixed arg3, mixed arg4, mixed implode_info, mixed remaining_implode_info, string original_input) { mixed hello_res; if (previous_object() != this_user()->query_shell_ob()) error("Illegal attempt to fake a command.\n"); if(!restrict_redirection()) { if((hello_res = hello_stdio(arg3,arg4, remaining_implode_info)) == 0) { return 0; }; if(stringp(hello_res)) main(arg1,arg2,hello_res,implode_info); else main(arg1, arg2,0,implode_info); } else { bare_init(); main(original_input,arg1,arg2,implode_info); } return done_outputing(); } protected nomask varargs void resend(string ob, mixed arg1, mixed arg2) { if (ob->valid_resend(base_name())) ob->do_resend(arg1, arg2); else error("Illegal resend()\n"); out(ob->get_output()); } nomask void do_resend(mixed arg1, mixed arg2) { string prog = call_stack(0)[1]; string fun = call_stack(2)[1]; if (prog != __FILE__ || fun != "resend") error(sprintf("Illegal resend() from %s::%s()\n", prog, fun)); if(!restrict_redirection()) hello_stdio(0,0,0); else bare_init(); main(arg1, arg2); } int clean_up(int instances) { if (instances) return ASK_AGAIN; destruct(this_object()); }