parent $mail_root
object $mail_utils
var $root child_index 0
var $root owners [$mail_utils]
var $root owned [$mail_utils]
var $root fertile 0
var $root inited 1
var $root manager $mail_utils
var $root writable [$mail_utils]
var $root readable ['parameters, 'methods, 'code]
var $root dbref 'mail_utils
var $mail_utils mail_system [$mail, $mail_list, $mail_ui, $mail_utils]
method mail_name
arg obj;
if (!(obj.has_ancestor($mail_list)))
throw(~type, "Object is not a child of $mail_recipient");
if (obj.has_ancestor($user))
return strsub(obj.namef(), " ", "-");
return "*" + strsub(obj.namef(), " ", "-");
.
method has_mail_perms
arg [args];
var obj;
for obj in (args) {
if ((!(obj in mail_system)) && (!($sys.is_system(obj))))
return 0;
}
.
method match_mail_recipient
arg name;
var mname, list;
catch ~namenf, ~objnf {
if ((name[1]) == "*") {
list = "list";
return $mail_db.find(substr(name, 2));
} else {
list = "user";
}
return sender().find_object(name, 'environment, 'user, 'grasp);
} with handler {
throw(~listnf, ((("No " + list) + " found by the name \"") + name) + "\".");
}
.
method range_to_actual
arg r, current;
var start, end;
if (type(r[1]) == 'symbol) {
switch (r[1]) {
case 'end:
throw(~range, "Backwards range.");
case 'start:
start = 1;
case 'current:
start = (current['location]) in ((current['list]).mail());
}
} else {
start = r[1];
}
if (type(r[2]) == 'symbol) {
switch (r[2]) {
case 'end:
end = listlen((current['list]).mail());
case 'single:
end = start;
case 'start:
throw(~range, "Backwards range.");
case 'current:
end = (current['location]) in ((current['list]).mail());
}
} else {
start = r[2];
}
if (start > end)
throw(~range, "Backwards range.");
return [start, end];
.