object user; /* user for this editor */ /* * NAME: edit() * DESCRIPTION: handle an editor command */ varargs void edit(string cmd) { if (user == 0 && previous_object() == this_user()->query_player()) { user = this_user(); cmd = editor(cmd); } else if (previous_object() == user) { cmd = editor(cmd); } if (cmd != 0) { user->catch_tell(cmd); } } /* * NAME: rescue_file() * DESCRIPTION: attempt to rescue the currently edited file */ void rescue_file() { string file, *path; if (previous_object() != user) { return; } if (query_editor(this_object()) == "input") { editor("."); } if (sscanf(editor("f"), "\"%s\" [Modified] %*s", file) == 2) { set_this_player(user->query_player()); path = explode(file, "/"); editor("w! " + "/players/" + user->query_player()->query_real_name() + "/.dead_ed_files/" + path[sizeof(path) - 1]); } }