From: Peep P. <so...@us...> - 2004-07-24 18:08:22
|
Update of /cvsroot/agd/server/lib/sys In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1241 Modified Files: master.lpc Log Message: * Crash doesn't use signal number * write_version() uses get_dir() * preloading * compile error handler * some tests using the flag() apply Index: master.lpc =================================================================== RCS file: /cvsroot/agd/server/lib/sys/master.lpc,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- master.lpc 21 Jul 2004 12:11:21 -0000 1.1 +++ master.lpc 24 Jul 2004 18:08:13 -0000 1.2 @@ -1,20 +1,14 @@ -int biggest; - -int crash(int signal) { - if(signal == 11) { - shout("Driver shutting down - segmentation fault!\n"); - } else if(signal == 2) { - shout("Driver crashing - interrupted!\n"); - } else if(signal) { - shout("Crashing on signal " + signal + "!\n"); - } else { - shout("Driver crashing!\n"); +void crash(string msg) { + if(msg) { + shout("Driver crashing: " + msg + "!\n"); } - return 1; } void write_version() { - write(read_file("/doc/login/" + random(biggest))); + string *names; + int i; + names = get_dir("/doc/login"); + write(read_file("/doc/login/" + names[random(sizeof(names))])); write("\n\t" + __VERSION__ + " / " + __ARCH__ + "\n" + "\thttp://agd.sf.net\n\tag...@li...\n"); } @@ -26,6 +20,62 @@ return ob; } -void create() { - biggest = atoi(read_file("/doc/login/biggest")); +string ex_str, ex_del; + +void flag(string s) { + if(s == "intersection") { + string *s1 = ({ "abc", "def", "fgh", "1337" }); + string *s2 = ({ "def", "1337", "foo" }); + string *s3 = s1&s2; + int i; + for(i=0;i<sizeof(s3);i++) { + write(i + ": " + s3[i] + "\n"); + } + } else if(s[0..2] == "ex=") { + ex_str = s[3..strlen(s)]; + } else if(s[0..2] == "de=") { + ex_del = s[3..strlen(s)]; + } else if(s == "explode") { + string *str; + int i; + if(!ex_str) + ex_str = "ababababcdeabc"; + if(!ex_del) + ex_del = "b"; + write("exploding " + ex_str + " with " + ex_del + "\n"); + str = explode(ex_str, ex_del); + for(i=0;i<sizeof(str);i++) { + write(i + ": " + str[i]+"\n"); + } + } else if(s == "implode") { + string str, im_del; + string *im_str; + im_str = ({ "tell", "foo", "blahblahblah" }); + im_del = " "; + str = implode(im_str, im_del); + write("str: " + str+"\n"); + } else { + write("flag " +s+" passed to us!\n"); + } +} + +string *preload_list() { + return ({ "/sys/login", "/sys/player" }); +} + +void preload(string file) { + write("Preloading " + file + ".. "); + if(load_object(file)) { + write("ok\n"); + } else { + write("failed\n"); + shutdown(1); + } +} + +void compile_error(string file, string message) { + write(file + ":" + message); +/* catch { */ + write_file("/log/compile-errors", file + ":" + message); + /* } */ } |