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]; +}; + +