/
CDC-1.1/
parent $utilities
object $object

var $root child_index 0
var $root fertile 0
var $root manager $object
var $root owners [$object]
var $root writable [$]
var $root readable ['parameters, 'methods, 'code]
var $root trusted []
var $root owned [$object]
var $root inited 1
var $root dbref 'object

method to_dbref
    arg obj;
    var type, dbref;
    
    type = type(obj);
    switch (type) {
        case 'string:
            dbref = (| get_name(tosym(substr(obj, 2))) |);
            if (!dbref)
                dbref = (> get_name(tosym(lowercase(strsub(obj, " ", "_")))) <);
            return dbref;
        case 'dbref:
            return obj;
        default:
            return (> get_name(obj) <);
    }
.

method get_name
    arg obj, [args];
    var meth;
    
    // get_name(obj, 'method, [args]) (3rd arg must be a list)
    if (!valid(obj))
        return ("** invalid object (" + tostr(obj)) + ") **";
    meth = [@args, 'name][1];
    args = [@args, [], []][2];
    return obj.(meth)(@args);
.

method see_perms
    arg obj;
    var str, x;
    
    str = "[";
    if (obj.fertile())
        str = str + "F";
    for x in (obj.readable())
        str = str + (tostr(x)[1]);
    return str + "]";
.