parent $generic_editor object $note_editor var $root child_index 0 var $root owners [$note_editor] var $root owned [$note_editor] var $root fertile 0 var $has_commands commands [["save", 'save_cmd]] var $has_commands shortcuts [] var $root inited 1 var $command_aliases command_aliases [] var $root manager $note_editor var $root writable [$note_editor] var $root readable ['parameters, 'methods, 'code] var $root dbref 'note_editor var $old_command_environment verb_cache #[] var $old_command_environment command_cache [["save", 'save_cmd], ["@abort|abort", 'abort_cmd], ["quit|@quit", 'quit_cmd], ["list|nlist *", 'list_cmd], ["ins?ert *", 'insert_cmd], ["del?ete *", 'del_line_cmd], ["join *", 'join_cmd], ["enter", 'enter_cmd], ["help", 'help_screen]] var $old_command_environment shortcuts_cache [["\"*", 'add_line_cmd, [1]], ["s/*/*", 'sub_cmd, ["", 1, 2]], ["fill * @*", 'fill_cmd, ["", 1, 2]], ["fill *", 'fill_cmd, ["", 1, ""]]] method start_editing arg what; var obj, text; // called by $user_input.edit_cmd obj = (| sender().match_environment(what) |); if ((!obj) || (!(| obj.writeable_by(sender()) |))) { sender().tell(("I don't see a note around here called " + what) + " that you can edit."); return 0; } catch any { text = sender().run_with_users_perms(obj, 'text); } with handler { sender().tell(("You cannot edit " + what) + "."); sender().tell("Error: " + ((traceback()[1])[2])); return 0; } sender().tell(("Now editing " + what) + "."); // user doing editing, obj edited, text, current line number, changes made return #[['user, sender()], ['obj, obj], ['text, text], ['cur_line, 1], ['changed, 0]]; . method help_msg var msg; msg = []; msg = msg + ["The note editor allows you to write on notes interactively."]; msg = msg + ["It includes these commands it inherits from the generic editor:"]; msg = msg + pass(); msg = msg + [""]; msg = msg + ["And adds the following:"]; msg = msg + [" save store text to note"]; msg = msg + [""]; return msg; . method save_cmd arg editing, cmd; var error; .perms(sender(), 'parser); catch any { (editing['user]).run_with_users_perms(editing['obj], 'erase_cmd, "", "all", "", ""); (editing['user]).run_with_users_perms(editing['obj], 'add_text, editing['text], $user); (editing['user]).tell("Done."); // clear modified flag editing = editing.replace('changed, 0); } with handler { (editing['user]).tell("An error occurred attempting to save."); (editing['user]).tell("The error was " + ((traceback()[1])[2])); } return editing; .