Method code for $root.chparents()

[Turn off line numbering]
  1: arg @parents;
  2: var parent, cur;
  3: 
  4: if (!(| .perms(sender(), 'manager) |))
  5:     (> .perms(caller(), $root, $sys) <);
  6: (> $sys.touch() <);
  7: if (!parents)
  8:     throw(~noparents, "There must be at least 1 parent for each object.");
  9: 
 10: // Notify new parents of impending change.
 11: cur = parents();
 12: for parent in (parents) {
 13:     if (!(parent in cur))
 14:         (> parent.will_inherit(sender()) <);
 15: }
 16: 
 17: // Everything's okay, go ahead and try it.
 18: .change_parents(parents);

// Created as a part of ColdCore, see: @help Credit

Tlon