// /bin/dev/_codefor.c #include <lib.h> inherit LIB_DAEMON; #define SYNTAX "Syntax: \"codefor <lpc commands>\".\n" int cmd( string a ) { string file, filename; mixed err, ret; string path; if( !a ) { notify_fail( SYNTAX ); return 0; } file = "mixed eval() { " + a + "; }\n"; path = user_path(lower_case(this_player()->GetName())); if( file_size( path ) != -2 ) path = "/open/" +lower_case(this_player()->GetName()); filename = path +"CMD_EVAL_TMP_FILE.c"; rm( filename ); if( ret = find_object( filename ) ) destruct( ret ); write_file( filename, file ); if( err = catch( (mixed)call_other( filename, "???" ) ) ) write( "Error = " + err ); else ret = find_object(filename); dump_prog(ret, 1, "/tmp/CODE_TMP_FILE"); ret = read_file( "/tmp/CODE_TMP_FILE"); rm("/tmp/CODE_TMP_FILE"); rm( filename ); ret = explode(ret, ";;; *** Disassembly ***"); write(ret[1]); return 1; }