/
upgradedb.3.0a8-to-3.0a9.02/
upgradedb.3.0a8-to-3.0a9.02/files/
upgradedb.3.0a8-to-3.0a9.02/scripts/
diff -rwu ColdCore-3.0a8/src/+CORE ColdCore-3.0a9.02/src/+CORE
--- ColdCore-3.0a8/src/+CORE	Wed Aug 13 17:46:28 1997
+++ ColdCore-3.0a9.02/src/+CORE	Tue Aug 19 12:15:37 1997
@@ -58,6 +58,7 @@
 settings
 world
 motd
+cml_color
 physical
 located
 thing
diff -rwu ColdCore-3.0a8/src/admin.cdc ColdCore-3.0a9.02/src/admin.cdc
--- ColdCore-3.0a8/src/admin.cdc	Wed Aug 13 17:52:24 1997
+++ ColdCore-3.0a9.02/src/admin.cdc	Tue Aug 19 12:20:36 1997
@@ -53,7 +53,7 @@
 var $thing gender = $gender_neuter;
 var $user connected_at = 0;
 var $user connections = [];
-var $user formatter = $mail_list;
+var $user formatter = $plain_format;
 var $user last_command_at = 0;
 var $user modes = #[];
 var $user parsers = [$command_parser];
@@ -145,10 +145,10 @@
 };
 
 public method .configure_core() {
-    var list, l, x, t;
+    var list, l, x, t, err;
     
     // get the juice
-    .mojo(1);
+    $sys.add_to_system(this());
     
     // expand on this as we go
     .tell(["*" * 78, strfmt("%78{*}c", " Welcome to ColdCore "), "*" * 78]);
@@ -156,48 +156,74 @@
     .tell("*" * 78);
     
     // first question please
-    if (!(.configured_core('new_user_class))) {
+    if (!($admin.configured_core('new_user_class))) {
         .tell("What class should new users be created as?  Available classes:");
-        list = filter x in ($user.descendants()) where (x.has_flag('command_cache));
+        list = filter x in ($user.descendants()) where ('command_cache in (x.flags()));
+        t = $sys.get_new_user_class();
+        list = map x in (list) to ((list == t) ? (x + " (current class)") : x);
         .tell(list.prefix("  "));
         while (!l) {
+            refresh();
             l = .prompt("New User Class [$user] ");
+            if (l == "@skip") {
+                .tell("Skipping..");
+                break;
+            }
             if (l) {
                 catch any {
                     l = $object_lib.to_dbref(l);
                     if (!(l in list))
                         .tell("Invalid selection, try again.");
                 } with {
-                    .tell((traceback()[1])[2]);
+                    .tell(("Invalid selection '" + l) + "'");
+                    continue;
                 }
             } else {
                 l = $user;
             }
             $sys.set_setting("new-user-class", $sys, l);
-            .configured_core('new_user_class, 1);
+            $admin.configured_core('new_user_class, 1);
             .tell("New User Class set to: " + l);
-            .tell("You could also have set this with the command:");
-            .tell("  @set $sys:new-user-class=" + l);
         }
+        .tell(["", "You can set this at any time, with the command:"]);
+        .tell("  @set $sys:new-user-class=" + l);
     }
+    refresh();
     
     // server name/title
-    if (!(.configured_core('server_name))) {
+    if (!($admin.configured_core('server_name))) {
+        .tell(["", "---"]);
         l = (.prompt("What is your server name? [My Server] ")) || "My Server";
-        ($motd.set_setting("server-name", $motd, l)).configured_core('server_name, 1);
+        if (l == "@skip") {
+            .tell("Skipping..");
+        } else {
+            $motd.set_setting("server-name", $motd, l);
+            $admin.configured_core('server_name, 1);
         .tell("Server name set to: " + l);
-        .tell("You could also have set this with the command:");
+        }
+        .tell(["", "You can set this at any time, with the command:"]);
         .tell("  @set $motd:server-name=" + l);
     }
-    if (!(.configured_core('server_title))) {
+    refresh();
+    if (!($admin.configured_core('server_title))) {
+        .tell(["", "---"]);
         t = $motd.server_title();
         l = (.prompt(("What is your server title? [" + t) + "] ")) || t;
-        ($motd.set_setting("server-title", $motd, l)).configured_core('server_title, 1);
+        if (l == "@skip") {
+            .tell("Skipping..");
+        } else {
+            $motd.set_setting("server-title", $motd, l);
+            $admin.configured_core('server_title, 1);
         .tell("Server title set to: " + l);
-        .tell("You could also have set this with the command:");
+        }
+        .tell(["", "You can set this at any time, with the command:"]);
         .tell("  @set $motd:server-title=" + l);
     }
-    if (!(.configured_core('daemons))) {
+    refresh();
+    if (!($admin.configured_core('daemons))) {
+        .tell(["", "---"]);
+        while (1) {
+            refresh();
         list = ($daemon.children()).setremove($login_daemon);
         .tell("Which network daemons do you want to have automatically startup,");
         .tell("Other than $login_daemon.  Available daemons:");
@@ -208,20 +234,47 @@
             else
                 .tell("  " + l);
         }
+            l = .prompt(("Auto-Start: [" + (t.join(", "))) + "] ");
+            if (l == "@skip") {
+                .tell("Skipping..");
+                break;
+            } else if (!l) {
+                .tell("Using existing daemons: " + (t.join(", ")));
+                break;
+            } else {
+                err = 0;
+                for x in (l.explode_english_list()) {
+                    catch any {
+                        $sys.set_setting("startup-objects", $sys, "+" + x);
+                        .tell(("Added " + x) + " as a startup daemon.");
+                    } with {
+                        .tell(("Unable to add '" + x) + "' as a daemon:");
+                        .tell("=> " + ((traceback()[1])[2]));
+                        err++;
+                    }
+                }
+                if (!err) {
+                    $admin.configured_core('daemons, 1);
+                    break;
+                }
+                .tell("Errors occurred...");
+            }
+        }
+        .tell(["", "You can set this at any time, with the command:"]);
+        .tell("  @set $motd:startup-objects=OBJECTS...");
     }
     
     // Other things to add: HTTP Virtual Hosting info,
-    // which daemons other than $login to startup.
     // cleanup
     list = $admin.list_method('login);
     list = filter l in (list) where (!match_regexp(l, "\.configure_core\(\);"));
     if (list)
-        $admin.add_method('login, list);
+        $admin.add_method(list, 'login);
     else
         $admin.del_method('login);
     $admin.del_var('configured_core);
-    $admin.del_method('core_admin);
-    .tell("All done.");
+    $admin.add_var('configured_core);
+    .tell(["", strfmt("%79{*}c", " Configuration Complete ")]);
 };
 
 public method .configured_core() {
@@ -340,7 +393,7 @@
     arg connection;
     
     pass(connection);
-    .configure_core();
+
 };
 
 public method .logout() {
diff -rwu ColdCore-3.0a8/src/bug_handler.cdc ColdCore-3.0a9.02/src/bug_handler.cdc
--- ColdCore-3.0a8/src/bug_handler.cdc	Wed Aug 13 17:46:09 1997
+++ ColdCore-3.0a9.02/src/bug_handler.cdc	Tue Aug 19 12:15:17 1997
@@ -2,7 +2,7 @@
 new object $bug_handler: $misc, $has_name;
 
 var $bug_handler ticker = 0;
-var $bug_handler ticket = 28;
+var $bug_handler ticket = 30;
 var $bug_handler unclaimed_tally = 4;
 var $dmi_data descriptions = #[];
 var $has_name name = ['uniq, "Bug Report Handler", "the Bug Report Handler"];
diff -rwu ColdCore-3.0a8/src/builder.cdc ColdCore-3.0a9.02/src/builder.cdc
--- ColdCore-3.0a8/src/builder.cdc	Wed Aug 13 17:46:12 1997
+++ ColdCore-3.0a9.02/src/builder.cdc	Tue Aug 19 12:15:19 1997
@@ -50,7 +50,7 @@
 var $thing gender = $gender_neuter;
 var $user connected_at = 0;
 var $user connections = [];
-var $user formatter = $mail_list;
+var $user formatter = $plain_format;
 var $user last_command_at = 0;
 var $user modes = #[];
 var $user parsers = [$command_parser];
diff -rwu ColdCore-3.0a8/src/converters.cdc ColdCore-3.0a9.02/src/converters.cdc
--- ColdCore-3.0a8/src/converters.cdc	Wed Aug 13 17:46:28 1997
+++ ColdCore-3.0a9.02/src/converters.cdc	Tue Aug 19 12:15:37 1997
@@ -24,7 +24,7 @@
 public method .parse_textarea() {
     arg string;
     
-    string = (string.replace($http.decode("%0d"), "")).explode($http.decode("%0a"));
+    string = (string.replace($http.decode("%0d"), "")).explode($http.decode("%0a"), 1);
     return string;
 };
 
diff -rwu ColdCore-3.0a8/src/dns.cdc ColdCore-3.0a9.02/src/dns.cdc
--- ColdCore-3.0a8/src/dns.cdc	Wed Aug 13 17:46:27 1997
+++ ColdCore-3.0a9.02/src/dns.cdc	Tue Aug 19 12:15:36 1997
@@ -147,6 +147,8 @@
     
     (> .perms(sender(), 'system) <);
     .shutdown();
+    if (!async)
+        return;
     catch any {
         (> .startup_dns() <);
         $sys.log("** Starting async DNS lookups at " + (dnshost.join(":")));
diff -rwu ColdCore-3.0a8/src/editor_reference.cdc ColdCore-3.0a9.02/src/editor_reference.cdc
--- ColdCore-3.0a8/src/editor_reference.cdc	Wed Aug 13 17:46:11 1997
+++ ColdCore-3.0a9.02/src/editor_reference.cdc	Tue Aug 19 12:15:18 1997
@@ -22,7 +22,7 @@
 };
 
 public method .background_editor_sessions() {
-    return bg_sessions;
+    return bg_sessions || [];
 };
 
 public method .cleanup_sessions() {
@@ -209,6 +209,7 @@
     [(session ?= active_editor), (name ?= "")] = session;
     if (session == 0)
         return "No session to resume.";
+    bg_sessions ?= [];
     if (active_editor && ((active_editor != session) || (!(| session.is_resumable() |))))
         t = (.store_editor()) + " ";
     if ((!valid(session)) || (!(session in (bg_sessions + [active_editor])))) {
diff -rwu ColdCore-3.0a8/src/guest.cdc ColdCore-3.0a9.02/src/guest.cdc
--- ColdCore-3.0a8/src/guest.cdc	Wed Aug 13 17:46:12 1997
+++ ColdCore-3.0a9.02/src/guest.cdc	Tue Aug 19 12:15:19 1997
@@ -29,7 +29,7 @@
 var $thing gender = $gender_neuter;
 var $user connected_at = 0;
 var $user connections = [];
-var $user formatter = $mail_list;
+var $user formatter = $plain_format;
 var $user last_command_at = 0;
 var $user modes = #[];
 var $user parsers = [$command_parser];
diff -rwu ColdCore-3.0a8/src/heart.cdc ColdCore-3.0a9.02/src/heart.cdc
--- ColdCore-3.0a8/src/heart.cdc	Wed Aug 13 17:46:09 1997
+++ ColdCore-3.0a9.02/src/heart.cdc	Tue Aug 19 12:15:17 1997
@@ -2,8 +2,8 @@
 new object $heart: $utilities;
 
 var $heart heart_failures = [];
*var $heart hearts = '-' 
*var $heart info = '-' 
+var $heart hearts = [[$lag_watcher, 872013847], [$world, 872014008]];
+var $heart info = #[[$world, [600, 872013408]], [$lag_watcher, [14, 872013833]]];
 var $root created_on = 796268969;
 var $root flags = ['methods, 'code, 'variables, 'core];
 var $root inited = 1;
diff -rwu ColdCore-3.0a8/src/help_func_buf_to_str.cdc ColdCore-3.0a9.02/src/help_func_buf_to_str.cdc
--- ColdCore-3.0a8/src/help_func_buf_to_str.cdc	Wed Aug 13 17:46:20 1997
+++ ColdCore-3.0a9.02/src/help_func_buf_to_str.cdc	Tue Aug 19 12:15:29 1997
@@ -2,7 +2,9 @@
 new object $help_func_buf_to_str: $help_funcs_buf;
 
 var $has_name name = ['prop, "buf_to_str()", "buf_to_str()"];
+var $help_node body = <$ctext_frob, [[<$format, ["dfn", [], [<$format, ["tt", [], [<$format, ["i", [], ["BUFFER"], 'do_i]>, " str_to_buf(", <$format, ["i", [], ["BUFFER buf"], 'do_i]>, "[, ", <$format, ["i", [], ["BUFFER sep"], 'do_i]>, "])"], 'do_tt]>], 'do_dfn]>, <$format, ["p", [], [], 'do_p]>, "This function converts the buffer specified by buf to a list of printable strings, with a final buffer element. Each string is a line in the buffer, terminated by a newline. If any characters remain unterminted, they are placed in the last element as a buffer. The last element will always be a buffer, regarless of whether any characters are in it. ", <$format, ["np", [], [], 'do_np]>, "buf_to_strings() will alternatively split the strings based off the optional second argument. Note: it is not necessary to specify both a carriage return and a newline as the seperator--if both exist--as the newline will be sufficient to break the string, and the carriage return will be discarded as an unprintable character in the string."], #[]]>;
 var $help_node index = $help_index_function;
+var $help_node links = #[];
 var $help_node linnverts = 0;
 var $help_node nolist = 0;
 var $root created_on = 855384455;
diff -rwu ColdCore-3.0a8/src/help_updates.cdc ColdCore-3.0a9.02/src/help_updates.cdc
--- ColdCore-3.0a8/src/help_updates.cdc	Wed Aug 13 17:46:22 1997
+++ ColdCore-3.0a9.02/src/help_updates.cdc	Tue Aug 19 12:15:31 1997
@@ -8,7 +8,7 @@
 var $help_node nolist = 0;
 var $help_updates cleanup_time = 2592000;
 var $help_updates dirty = 2;
-var $help_updates update_list = [[871452000, [$help_theme]]];
+var $help_updates update_list = [[871970400, [$help_theme]]];
 var $root created_on = 848537316;
 var $root flags = ['variables, 'methods, 'code, 'core];
 var $root inited = 1;
diff -rwu ColdCore-3.0a8/src/in_location.cdc ColdCore-3.0a9.02/src/in_location.cdc
--- ColdCore-3.0a8/src/in_location.cdc	Wed Aug 13 17:46:13 1997
+++ ColdCore-3.0a9.02/src/in_location.cdc	Tue Aug 19 12:15:20 1997
@@ -2,33 +2,52 @@
 new object $in_location: $located_location;
 
 var $described prose = [];
-var $foundation defined_msgs = #[["enter", #[['branches, ["actor", "source", "dest"]]]]];
-var $foundation msgs = #[["enter", #[["actor", <$ctext_frob, [["You enter ", <$generator, ["dest", [], [], 'gen_dest]>, "."], #[]]>], ["source", <$ctext_frob, [[<$generator, ["actor", [], [], 'gen_actor]>, " enters ", <$generator, ["dest", [], [], 'gen_dest]>, "."], #[]]>], ["dest", <$ctext_frob, [[<$generator, ["actor", [], [], 'gen_actor]>, " enters from ", <$generator, ["source", [], [], 'gen_source]>, "."], #[]]>]]]];
+var $foundation defined_msgs = #[["enter", #[['branches, ["actor", "source", "dest"]]]], ["open", #[['branches, ["general", "actor", "inside"]]]], ["close", #[['branches, ["general", "actor", "inside"]]]]];
+var $foundation msgs = #[["enter", #[["actor", <$ctext_frob, [["You enter ", <$generator, ["dest", [], [], 'gen_dest]>, "."], #[]]>], ["source", <$ctext_frob, [[<$generator, ["actor", [], [], 'gen_actor]>, " enters ", <$generator, ["dest", [], [], 'gen_dest]>, "."], #[]]>], ["dest", <$ctext_frob, [[<$generator, ["actor", [], [], 'gen_actor]>, " enters from ", <$generator, ["source", [], [], 'gen_source]>, "."], #[]]>]]], ["open", #[["general", <$ctext_frob, [[<$generator, ["actor", [], [], 'gen_actor]>, " opens ", <$generator, ["this", [], [], 'gen_this]>, "."], #[]]>], ["inside", <$ctext_frob, [[<$generator, ["actor", [], [], 'gen_actor]>, " opens ", <$generator, ["this", [], [], 'gen_this]>, "."], #[]]>], ["actor", <$ctext_frob, [["You open ", <$generator, ["this", [], [], 'gen_this]>, "."], #[]]>]]], ["close", #[["inside", <$ctext_frob, [[<$generator, ["actor", [], [], 'gen_actor]>, " closes ", <$generator, ["this", [], [], 'gen_this]>, "."], #[]]>], ["general", <$ctext_frob, [[<$generator, ["actor", [], [], 'gen_actor]>, " closes ", <$generator, ["this", [], [], 'gen_this]>, "."], #[]]>], ["actor", <$ctext_frob, [["You close ", <$generator, ["this", [], [], 'gen_this]>, "."], #[]]>]]]];
 var $has_commands local = \
 	#[["exit|leave", [["exit|leave", "", "exit|leave", 'exit_cmd, #[]]]], ["exit", [["exit", "", "exit", 'exit_cmd, #[]]]]];
-var $has_commands remote = #[["enter", [["enter", "*", "enter <this>", 'enter_cmd, #[[1, ['this, []]]]]]]];
+var $has_commands remote = #[["enter", [["enter", "*", "enter <this>", 'enter_cmd, #[[1, ['this, []]]]]]], ["open", [["open", "*", "open <this>", 'open_cmd, #[[1, ['this, []]]]]]], ["close", [["close", "*", "close <this>", 'close_cmd, #[[1, ['this, []]]]]]]];
 var $has_commands shortcuts = #[];
 var $has_name name = ['prop, "in_location", "in_location"];
 var $located location = $nowhere;
 var $located obvious = 1;
*var $location contents = ' ' 
 var $root created_on = 809991552;
-var $root defined_settings = #[["locked", #[['parse, ['is_boolean]], ['format, ['format_boolean]]]], ["lockable", #[['parse, ['is_boolean]], ['format, ['format_boolean]]]], ["closable", #[['parse, ['is_boolean]], ['format, ['format_boolean]]]], ["open", #[['parse, ['is_boolean]], ['format, ['format_boolean]]]]];
+var $root defined_settings = #[["locked", #[['parse, ['is_boolean]], ['format, ['format_boolean]]]], ["lockable", #[['parse, ['is_boolean]], ['format, ['format_boolean]]]], ["closable", #[['parse, ['is_boolean]], ['format, ['format_boolean]]]], ["closed", #[['parse, ['is_boolean]], ['format, ['format_boolean]]]]];
 var $root flags = ['methods, 'code, 'variables, 'core, 'fertile];
 var $root inited = 1;
 var $root managed = [$in_location];
 var $root manager = $in_location;
-var $root settings = #[["locked", 0], ["lockable", 0], ["closable", 0], ["open", 1]];
+var $root settings = #[["locked", 0], ["lockable", 0], ["closable", 0], ["closed", 0]];
 var $thing gender = $gender_neuter;
 
+public method .close_cmd() {
+    arg cmdstr, cmd, this;
+    var vars, m;
+    
+    if (.get_setting("closable", $in_location)) {
+        if (.get_setting("closed", $in_location)) {
+            return ((.name()).capitalize()) + " is already closed.";
+        } else {
+            .set_setting("closed", $in_location, "yes");
+            vars = #[["$actor", sender()], ["actor", sender().name()], ["$this", this()], ["this", .name()], ["$inside", this()]];
+            m = .eval_message("close", $in_location, vars);
+            (.location()).announce(m);
+            .announce(m);
+        }
+    } else {
+        return ((.name()).capitalize()) + " cannot be closed.";
+    }
+};
+
 public method .description() {
     arg flags;
     var line;
     
-    if (.get_setting("open", $in_location))
-        line = (("Inside " + (.name())) + " you see: ") + ((.contents()).map_to_english('name));
-    else
+    if (.get_setting("closed", $in_location))
         line = (((.gender()).pronoun('ps)).capitalize()) + " is closed.";
+    else
+        line = (("Inside " + (.name())) + " you see: ") + ((.contents()).map_to_english('name));
     return (> pass(flags) <) + [line];
 };
 
@@ -37,11 +56,15 @@
     var m, source;
     
     (> .perms(caller(), 'command) <);
+    if (.get_setting("closed", $in_location)) {
+        return ((("You can't enter " + (.name())) + " because ") + ((.gender()).pronoun('ps))) + " is closed.";
+    } else {
     source = sender().location();
     m = .eval_message("enter", $in_location, #[["actor", sender().name()], ["$actor", sender()], ["source", source.name()], ["$source", source], ["dest", .name()], ["$dest", this()], ["this", this()]]);
     sender().move_to(this());
     (.location()).announce(m);
     return .announce(m);
+    }
 };
 
 public method .exit_cmd() {
@@ -54,6 +77,33 @@
     (.location()).announce(((((sender().name()).capitalize()) + " exits ") + (.name())) + ".", this(), sender());
     .announce(((sender().name()).capitalize()) + " leaves.");
     return "You arrive";
+};
+
+public method .open_cmd() {
+    arg cmdstr, cmd, this;
+    var vars, m;
+    
+    if (.get_setting("closable", $in_location)) {
+        if (.get_setting("closed", $in_location)) {
+            .set_setting("closed", $in_location, "no");
+            vars = #[["$actor", sender()], ["actor", sender().name()], ["$this", this()], ["this", .name()], ["$inside", this()]];
+            m = .eval_message("open", $in_location, vars);
+            (.location()).announce(m);
+            .announce(m);
+        } else {
+            return ((.name()).capitalize()) + " is already opened.";
+        }
+    } else {
+        return ((.name()).capitalize()) + " cannot be opened.";
+    }
+};
+
+public method .tell() {
+    arg @args;
+    
+    if (.get_setting("closed", $in_location))
+        return;
+    .announce([("[outside " + (.name())) + "]: "] + args);
 };
 
 
diff -rwu ColdCore-3.0a8/src/lag_watcher.cdc ColdCore-3.0a9.02/src/lag_watcher.cdc
--- ColdCore-3.0a8/src/lag_watcher.cdc	Wed Aug 13 17:46:09 1997
+++ ColdCore-3.0a9.02/src/lag_watcher.cdc	Tue Aug 19 12:15:17 1997
@@ -2,7 +2,7 @@
 new object $lag_watcher: $utilities;
 
 var $lag_watcher lags = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
-var $lag_watcher last_time = 871515472;
+var $lag_watcher last_time = 872013833;
 var $root created_on = 796268969;
 var $root flags = ['methods, 'code, 'variables, 'core];
 var $root inited = 1;
diff -rwu ColdCore-3.0a8/src/located.cdc ColdCore-3.0a9.02/src/located.cdc
--- ColdCore-3.0a8/src/located.cdc	Wed Aug 13 17:46:10 1997
+++ ColdCore-3.0a9.02/src/located.cdc	Tue Aug 19 12:15:18 1997
@@ -34,8 +34,7 @@
 public method .is_obvious_to() {
     arg whom;
     
-    // will later do something creative here
-    return 1;
+    return .is_visible_to(whom);
 };
 
 public method .location() {
diff -rwu ColdCore-3.0a8/src/motd.cdc ColdCore-3.0a9.02/src/motd.cdc
--- ColdCore-3.0a8/src/motd.cdc	Wed Aug 13 17:46:10 1997
+++ ColdCore-3.0a9.02/src/motd.cdc	Tue Aug 19 12:15:17 1997
@@ -73,7 +73,7 @@
     // this is your home page, change it as you whim may direct you
     p = "<p align=center>";
     page = [("<head><title>" + server_name) + "</title></head>"];
-    page += [$http.page_body()];
+    page += ["<body bgcolor=\"#000000\" text=\"#ffefef\" link=\"#b000f0\" vlink=\"#9000c0\" alink=\"#f000f0\">"];
     page += [("<h1 align=center>" + server_name) + "</h1>"];
     page += [("<h3 align=center>" + server_title) + "</h1>"];
     page += ([p + "<tt>"] + ($code_lib.random_quote())) + ["</tt>"];
diff -rwu ColdCore-3.0a8/src/no_one.cdc ColdCore-3.0a9.02/src/no_one.cdc
--- ColdCore-3.0a8/src/no_one.cdc	Wed Aug 13 17:46:12 1997
+++ ColdCore-3.0a9.02/src/no_one.cdc	Tue Aug 19 12:15:19 1997
@@ -30,7 +30,7 @@
 var $user connected_at = 0;
 var $user connections = [];
 var $user creation_time = 759878010;
-var $user formatter = $mail_list;
+var $user formatter = $plain_format;
 var $user last_command_at = 0;
 var $user modes = #[];
 var $user parsers = [$command_parser];
diff -rwu ColdCore-3.0a8/src/page_file_index.cdc ColdCore-3.0a9.02/src/page_file_index.cdc
--- ColdCore-3.0a8/src/page_file_index.cdc	Wed Aug 13 17:46:10 1997
+++ ColdCore-3.0a9.02/src/page_file_index.cdc	Tue Aug 19 12:15:18 1997
@@ -24,6 +24,8 @@
                 (headers['interface]).set_ctype("image/gif");
             case "jpg":
                 (headers['interface]).set_ctype("image/jpeg");
+            case "html":
+                (headers['interface]).set_ctype("text/html");
         }
     }
     (headers['interface]).respond_with_file(stat, filename);
diff -rwu ColdCore-3.0a8/src/parse_lib.cdc ColdCore-3.0a9.02/src/parse_lib.cdc
--- ColdCore-3.0a8/src/parse_lib.cdc	Wed Aug 13 17:46:08 1997
+++ ColdCore-3.0a9.02/src/parse_lib.cdc	Tue Aug 19 12:15:16 1997
@@ -287,8 +287,8 @@
     
     if ((rx = regexp(str, "^my$|^my +(.+)?")))
         return ["me", (| rx[1] |) || ""];
-    else if ((rx = regexp(str, "^([^ ]+s?)'s? *(.+)?")))
-        return rx;
+    else if ((rx = regexp(str, "^([^ ]+s'|[^ ]+'s) *(.+)?")))
+        return [substr(rx[1], 1, strlen(rx[1]) - 2), rx[2]];
     return 0;
 };
 
diff -rwu ColdCore-3.0a8/src/player.cdc ColdCore-3.0a9.02/src/player.cdc
--- ColdCore-3.0a8/src/player.cdc	Wed Aug 13 17:46:12 1997
+++ ColdCore-3.0a9.02/src/player.cdc	Tue Aug 19 12:15:19 1997
@@ -35,7 +35,7 @@
 var $user action = "";
 var $user connected_at = 0;
 var $user connections = [];
-var $user formatter = $mail_list;
+var $user formatter = $plain_format;
 var $user last_command_at = 0;
 var $user parsers = [$command_parser];
 var $user password = "*";
diff -rwu ColdCore-3.0a8/src/programmer.cdc ColdCore-3.0a9.02/src/programmer.cdc
--- ColdCore-3.0a8/src/programmer.cdc	Wed Aug 13 17:46:12 1997
+++ ColdCore-3.0a9.02/src/programmer.cdc	Tue Aug 19 12:15:19 1997
@@ -99,7 +99,7 @@
 var $thing gender = $gender_neuter;
 var $user connected_at = 0;
 var $user connections = [];
-var $user formatter = $mail_list;
+var $user formatter = $plain_format;
 var $user last_command_at = 0;
 var $user modes = #[];
 var $user parsers = [$command_parser];
@@ -1260,7 +1260,7 @@
     if (sender() != $eval_parser)
         (> .perms(caller(), $programmer) <);
     method = tosym("tmp_eval_" + time());
-    if ((errs = (> definer.add_method([str], method) <))) {
+    if ((errs = (> definer.add_method([str], method, 'evalonly) <))) {
         if (mode)
             return [[0, 0, 0], ['errors, errs, 0, 0], []];
         else
diff -rwu ColdCore-3.0a8/src/reaper.cdc ColdCore-3.0a9.02/src/reaper.cdc
--- ColdCore-3.0a8/src/reaper.cdc	Wed Aug 13 17:46:12 1997
+++ ColdCore-3.0a9.02/src/reaper.cdc	Tue Aug 19 12:15:19 1997
@@ -27,7 +27,7 @@
 var $user connected_at = 0;
 var $user connections = [];
 var $user creation_time = 780375877;
-var $user formatter = $mail_list;
+var $user formatter = $plain_format;
 var $user last_command_at = 0;
 var $user parsers = [$command_parser];
 var $user password = "*";
diff -rwu ColdCore-3.0a8/src/robot.cdc ColdCore-3.0a9.02/src/robot.cdc
--- ColdCore-3.0a8/src/robot.cdc	Wed Aug 13 17:46:11 1997
+++ ColdCore-3.0a9.02/src/robot.cdc	Tue Aug 19 12:15:18 1997
@@ -293,7 +293,7 @@
     for id in (dict_keys(reactions || #[])) {
         [m, tmpl, type, chance, times, [method, args], min, max] = reactions[id];
         t = $robot.match_type(m);
-        a = dict_contains(active_ids, id);
+        a = dict_contains(active_ids || #[], id);
         out += [strfmt("%l%3r %3r %4r %6l %8c %22l %l %l", a ? "*" : " ", id, chance, (times == (-1)) ? "inf" : times, type, (min == max) ? min : ((min + "~") + max), method, t[2], tmpl ? (("\"" + tmpl) + "\"") : "anything")];
     }
     if (out)
diff -rwu ColdCore-3.0a8/src/root.cdc ColdCore-3.0a9.02/src/root.cdc
--- ColdCore-3.0a8/src/root.cdc	Wed Aug 13 17:46:08 1997
+++ ColdCore-3.0a9.02/src/root.cdc	Tue Aug 19 12:15:16 1997
@@ -163,10 +163,13 @@
 };
 
 public method .add_method() {
-    arg code, name;
+    arg code, name, @evalonly;
     var l, m, line, errs;
     
     (> .perms(sender()) <);
+    if (evalonly && (caller() == $programmer))
+        (> $sys.touch('lockok) <);
+    else
     (> $sys.touch() <);
     
     // check for a few things only admins can do
@@ -655,7 +658,7 @@
     
     (> .perms(sender(), 'manager) <);
     (> $sys.touch('coreok) <);
-    if ((flag == 'core) && (!($sys.core_writable())))
+    if ((flag == 'core) && (!($sys.writable_core())))
         throw(~perm, this() + " is a core object, and the core isn't writable.");
     
     // let them add any flag they want
diff -rwu ColdCore-3.0a8/src/smtp_daemon.cdc ColdCore-3.0a9.02/src/smtp_daemon.cdc
--- ColdCore-3.0a8/src/smtp_daemon.cdc	Wed Aug 13 17:46:27 1997
+++ ColdCore-3.0a9.02/src/smtp_daemon.cdc	Tue Aug 19 12:15:36 1997
@@ -9,7 +9,7 @@
 var $root inited = 1;
 var $root managed = [$smtp_daemon];
 var $root manager = $smtp_daemon;
-var $smtp_daemon msg_id = 61;
+var $smtp_daemon msg_id = 64;
 
 public method .get_msg_id() {
     msg_id++;
diff -rwu ColdCore-3.0a8/src/storyteller.cdc ColdCore-3.0a9.02/src/storyteller.cdc
--- ColdCore-3.0a8/src/storyteller.cdc	Wed Aug 13 17:46:12 1997
+++ ColdCore-3.0a9.02/src/storyteller.cdc	Tue Aug 19 12:15:19 1997
@@ -12,7 +12,7 @@
 var $root managed = [$storyteller];
 var $root manager = $storyteller;
 var $thing gender = 0;
-var $user formatter = $mail_list;
+var $user formatter = $plain_format;
 var $user password = "*";
 var $user task_connections = #[];
 
diff -rwu ColdCore-3.0a8/src/sys.cdc ColdCore-3.0a9.02/src/sys.cdc
--- ColdCore-3.0a8/src/sys.cdc	Wed Aug 13 17:46:08 1997
+++ ColdCore-3.0a9.02/src/sys.cdc	Tue Aug 19 12:15:16 1997
@@ -12,11 +12,11 @@
*var $sys agents = ' '  DEFAULT [$root, $daemon]
*var $sys backup = ' '  DEFAULT #[['interval, 3600], ['last, 0], ['next, 0]]
*var $sys bindings = ' '  DEFAULT #[['atomic, $sys], ['create, $sys], ['backup, $sys], ['shutdown, $sys], ['set_heartbeat, $sys], ['cancel, $scheduler], ['task_info, $scheduler], ['execute, $sys], ['bind_function, $sys], ['unbind_function, $sys], ['bind_port, $daemon], ['unbind_port, $daemon], ['open_connection, $connection], ['reassign_connection, $daemon], ['fopen, $file], ['fstat, $file], ['fchmod, $file], ['fmkdir, $file], ['frmdir, $file], ['files, $file], ['fremove, $file], ['frename, $file], ['fclose, $file], ['fseek, $file], ['feof, $file], ['fwrite, $file], ['fread, $file], ['fflush, $file], ['chparents, $root], ['destroy, $root], ['dblog, $sys], ['add_var, $root], ['del_var, $root], ['variables, $root], ['list_method, $root], ['add_method, $root], ['del_method, $root], ['method_bytecode, $root], ['methods, $root], ['rename_method, $root], ['set_method_access, $root], ['set_method_flags, $root], ['data, $root], ['del_objname, $root], ['set_objname, $root], ['suspend, $scheduler], ['resume, $scheduler], ['set_user, $user], ['config, $sys]]
-var $sys core_version = "3.0a8";
+var $sys core_version = "3.0a9.02";
 var $sys deny_hosts = [];
 var $sys deny_users = [];
 var $sys loggers = [$daemon, $user, $connection, $dns];
*var $sys starting = '-'  DEFAULT #[['quota, 75000], ['new_user_class, $admin], ['anonymous_user_class, $guest]]
+var $sys starting = #[['quota, 76800], ['new_user_class, $admin], ['anonymous_user_class, $guest]];
*var $sys startup = ' '  DEFAULT #[['objects, [$login_daemon, $http_daemon, $smtp_daemon, $world, $dns, $lag_watcher]], ['heartbeat_interval, 2]]
*var $sys system = ' '  DEFAULT [$sys, $root]
*var $sys touched = ' '  DEFAULT 0
@@ -38,14 +38,14 @@
 public method ._status(): native;
 
 public method .add_method() {
-    arg code, name;
+    arg code, name, @evalonly;
     var line;
     
     (> .perms(sender()) <);
-    line = ("SYSTEM: ." + tostr(name)) + "() MODIFIED";
+    line = (("SYSTEM: ." + tostr(name)) + "() ") + (evalonly ? "EVAL" : "MODIFIED");
     line = (line + " by ") + (sender().namef('ref));
     .log(line);
-    return (> pass(code, name) <);
+    return (> pass(code, name, @evalonly) <);
 };
 
 public method .add_to_system() {
@@ -148,7 +148,7 @@
     system = [$sys, $root];
     backup = #[['interval, 3600], ['last, 0], ['next, 0]];
     validate_email_addresses = 0;
-    starting = #[['quota, 75000], ['new_user_class, $admin], ['anonymous_user_class, $guest]];
+    starting = #[['quota, 76800], ['new_user_class, $admin], ['anonymous_user_class, $guest]];
     startup = #[['objects, [$login_daemon, $http_daemon, $smtp_daemon, $world, $dns, $lag_watcher]], ['heartbeat_interval, 2]];
     agents = [$root, $daemon];
     admins = [];
@@ -862,7 +862,7 @@
     // done?
     if ("-quit" in args) {
         dblog("** Shutting down.");
-        shutdown();
+        .shutdown();
         return;
     }
     
diff -rwu ColdCore-3.0a8/src/thing.cdc ColdCore-3.0a9.02/src/thing.cdc
--- ColdCore-3.0a8/src/thing.cdc	Wed Aug 13 17:46:10 1997
+++ ColdCore-3.0a9.02/src/thing.cdc	Tue Aug 19 12:15:18 1997
@@ -166,7 +166,7 @@
 protected method .set_gender() {
     arg name, definer, value;
     
-    (> .perms(sender(), 'manager) <);
+    (> .perms(sender()) <);
     gender = value;
 };
 
diff -rwu ColdCore-3.0a8/src/user_db.cdc ColdCore-3.0a9.02/src/user_db.cdc
--- ColdCore-3.0a8/src/user_db.cdc	Wed Aug 13 17:46:14 1997
+++ ColdCore-3.0a9.02/src/user_db.cdc	Tue Aug 19 12:15:21 1997
@@ -5,7 +5,7 @@
*var $registry invalid_names = ' '  DEFAULT "(^| )(ass|cunt|fuck|shit|damn)( |$)"
*var $registry max_char_len = ' '  DEFAULT 20
*var $registry min_char_len = ' '  DEFAULT 3
*var $registry reserved_names = '-'  DEFAULT ["user", "builder", "programmer", "housekeeper", "Reaper", "noone", "guest", "a", "i", "an", "your", "you'r", "me", "god"]
+var $registry reserved_names = ["user", "builder", "programmer", "admin", "housekeeper", "Reaper", "noone", "guest", "a", "i", "an", "your", "you'r", "me", "god"];
*var $registry stripped = ' '  DEFAULT 1
*var $registry stripped_characters = ' '  DEFAULT "!@#$%^&*()_+-=~`'{}[]|/?\",.<>;: "
 var $root created_on = 796268969;
--- /dev/null	Tue Aug 19 05:32:20 1997
+++ ColdCore-3.0a9.02/src/cml_color.cdc	Tue Aug 19 12:15:17 1997
@@ -0,0 +1,26 @@
+
+new object $cml_color: $utilities;
+
+var $cml_color colors = #[["black", ["000000", "30", "40"]], ["red", ["ff0000", "31", "41"]], ["green", ["00ff00", "32", "42"]], ["yellow", ["ffff00", "33", "43"]], ["blue", ["0000ff", "34", "44"]], ["magenta", ["ff00ff", "35", "45"]], ["cyan", ["00ffff", "36", "46"]], ["white", ["ffffff", "37", "47"]]];
+var $dmi_data descriptions = #[];
+var $root created_on = 863559837;
+var $root flags = ['variables, 'methods, 'code, 'core];
+var $root inited = 1;
+var $root managed = [$cml_color];
+var $root manager = $cml_color;
+
+public method .fmt_colors() {
+    var c, out;
+    
+    out = ["COLOR        RGB     ANSI"];
+    for c in (colors)
+        out += [strfmt("%12 #%6l %3l", c[1], @c[2])];
+};
+
+public method .get_color() {
+    arg color;
+    
+    return colors[color];
+};
+
+