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;
.