Method code for $object_lib.to_dbref()

[Turn off line numbering]
  1: arg obj;
  2: var dbref;
  3: 
  4: switch (type(obj)) {
  5:     case 'string:
  6:         if (!obj)
  7:             throw(~invdbref, "Invalid object reference \"\".");
  8:         if (obj[1] == "$") {
  9:             obj = obj.subrange(2);
 10:             dbref = (| lookup(tosym(obj)) |);
 11:         } else if (obj[1] == "#") {
 12:             obj = substr(obj, 2);
 13:             if (obj.is_numeric())
 14:                 dbref = (| toobjnum(toint(obj)) |);
 15:             else
 16:                 throw(~objnf, "Cannot find object \"#" + obj + "\".");
 17:         } else {
 18:             dbref = toint(obj[1]);
 19:             if (dbref || obj == "0")
 20:                 dbref = toobjnum(dbref);
 21:             else
 22:                 dbref = (| lookup(obj) |);
 23:         }
 24:         if (!dbref) {
 25:             dbref = obj.replace(" ", "_").lowercase();
 26:             catch ~symbol
 27:                 dbref = tosym(dbref);
 28:             with
 29:                 throw(~symbol, "Object reference '" + dbref + "' is invalid.");
 30:             dbref = (> lookup(dbref) <);
 31:         }
 32:         return dbref;
 33:     case 'objnum:
 34:         return obj;
 35:     default:
 36:         return (> lookup(obj) <);
 37: }

["// Created 26-Mar-1995 as a part of ColdCore, see: @help Credit"]

the Cold Dark