#pragma strict_types // Apr 17, 1996 Hazard Added event inform // Apr 21, 1996 Hazard Changed creator informs to call get_cre_list // in user_handler instead of users() // 1996 May 03 Laggard new log_file_time(). // cleaned up code somewhat. #include <standard.h> #include <cmd.h> inherit CMD_BASE; void setup() { position = 1; } static int cmd(string str, object me) { string *filenames, dest, *fnames; int loop, fs; if (this_player(1) != this_player()) { return 0; } if(!str) { notify_fail("Usage : mv file [file|dir...]\n"); return 0; } fnames = explode(str, " "); filenames = this_player()->get_files(implode(fnames[0..sizeof(fnames)-2], " ")); if(!sizeof(filenames)) { notify_fail("Usage : mv file [file|dir...]\n"); return 0; } dest = fnames[sizeof(fnames) - 1]; dest = this_player()->get_path(dest); if(!dest) { write("No destination\n"); return 1; } for(loop = 0; loop < sizeof(filenames); loop++) { str = filenames[loop]; if(file_size(str) == -1) { write("No such file : " + str + "\n"); continue; } fs = file_size(dest); if(fs == -2) { string *names; names = explode(str, "/"); fs = file_size(dest + "/" + names[sizeof(names) - 1]); if(fs != -1) { write("file exists " + dest + "/" + names[sizeof(names) - 1] + "\n"); continue; } rename(str, dest + "/" + names[sizeof(names) - 1]); /* log_file_time( LOG, sprintf("%s moved to %s by %s\n", str, dest, capitalize(this_player()->query_name()) ) ); event(CREINFO, "inform", this_player()->query_cap_name() +" moves "+str+" to "+dest+"", "file" ); */ } else { if(fs != -1) { write("File exists : " + dest + "\n"); continue; } rename(str, dest); /* log_file_time( LOG, sprintf( "%s moved %s to %s\n", capitalize(this_player()->query_name()), str, dest )); event(CREINFO, "inform", this_player()->query_cap_name() +" moves "+str+" to "+dest+"", "file"); */ } } write("Ok.\n"); return 1; } /* mv_file() */