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
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 = $dict.replace(editing, 'changed, 0);
} with handler {
(editing['user]).tell("An error occurred attempting to save.");
(editing['user]).tell("The error was " + ((traceback()[1])[2]));
}
return editing;
.