@verb #4:"give_quota" this none this rxdo #55 @program #4:"give_quota" this none this "Transfer args[2] bytes and args[3] objects to args[1]" "returns actual amount transferred." if (!$perm_utils:controls(caller_perms(), this)) raise(E_PERM) endif {to, bytes, objects, dbytes} = args if (!to:isa($accountable)) raise(E_INVARG, "Don't just give your quota to anyone!") endif bytes = min(bytes, this:free_bytes()) objects = min(objects, this:free_objects()) dbytes = min(dbytes, this:free_dbytes()) bytes = max(bytes, 0) objects = max(objects, 0) dbytes = max(dbytes, 0) if (!(to_i = $list_utils:iassoc(to, this.quota_contribs))) this.quota_contribs = {@this.quota_contribs, {to, 0, 0, 0}} to_i = length(this.quota_contribs) endif if (!(this_i = $list_utils:iassoc(this, to.quota_contribs))) to.quota_contribs = {@to.quota_contribs, {this, 0, 0, 0}} this_i = length(to.quota_contribs) endif this.quota_contribs[to_i][2] = this.quota_contribs[to_i][2] + bytes to.quota_contribs[this_i][2] = to.quota_contribs[this_i][2] - bytes this.quota_contribs[to_i][3] = this.quota_contribs[to_i][3] + objects to.quota_contribs[this_i][3] = to.quota_contribs[this_i][3] - objects to.quota_contribs[this_i][4] = to.quota_contribs[this_i][4] - dbytes this.quota_contribs[to_i][4] = this.quota_contribs[to_i][4] + dbytes this.quota_contribs[to_i][2..4] == {0, 0, 0} && (this.quota_contribs = listdelete(this.quota_contribs, to_i)) to.quota_contribs[this_i][2..4] == {0, 0, 0} && (to.quota_contribs = listdelete(this.quota_contribs, this_i)) return {bytes, objects, dbytes} "This verb previously owned by manta (#7165), and chowned to $slacker upon dewizarding (Sat Aug 17 14:50:04 2002 MDT)." "Last modified by Dax (#789) on Sat Aug 17 14:50:04 2002 MDT." .