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);
+ /* } */
}
|