parent $misc
object $text
var $root child_index 4
var $root owners [$text]
var $root owned [$text]
var $root fertile 0
var $root inited 1
var $text text 0
var $root info []
var $root manager $text
var $root writable [$text]
var $root readable ['parameters, 'methods, 'code]
var $root dbref 'text
method init_text
if (caller() != $root)
throw(~perm, "Caller is not $root.");
text = [];
.
method uninit_text
if (caller() != $root)
throw(~perm, "Caller is not $root.");
text = [];
.
method text
// returns text
if ((!(.is_writable_by(sender()))) && (sender() != this()))
throw(~perm, "Permission Denied.");
return text;
.
method set_text
arg txt;
// resets ,text to the list sent
if ((!(.is_writable_by(sender()))) && (sender() != this()))
throw(~perm, "Permission Denied.");
text = txt;
.
method ins_line
arg txt, [loc];
// inserts txt at loc (where loc is an integer)
if ((!(.is_writable_by(sender()))) && (sender() != this()))
throw(~perm, "Permission Denied.");
if (!loc)
text = [@text, txt];
else
text = (> insert(text, loc, txt) <);
.
method del_text
// deletes all text
if ((!(.is_writable_by(sender()))) && (sender() != this()))
throw(~perm, "Permission Denied.");
text = [];
.
method del_line
arg linestr;
// deletes "line" where line is the actual line to delete
if ((!(.is_writable_by(sender()))) && (sender() != this()))
throw(~perm, "Permission Denied.");
text = setremove(text, line);
.
method del_nline
arg nline;
// deletes nline where nline is an integer reference to a list location
if ((!(.is_writable_by(sender()))) && (sender() != this()))
throw(~perm, "Permission Denied.");
text = (> delete(text, nline) <);
.
method ins_lines
arg lines, loc;
var line;
// inserts txt at loc (where loc is an integer)
if ((!(.is_writable_by(sender()))) && (sender() != this()))
throw(~perm, "Permission Denied.");
if (type(lines) != 'list)
throw(~type, "Lines should be passed as a list of strings.");
for line in (lines) {
text = (> insert(text, loc, line) <);
loc = loc + 1;
}
.