@verb #3797:"chan_part" this none this rxdo #833 @program #3797:"chan_part" this none this $perm_utils:can_hack() || raise(E_PERM) {id, @comms} = args silent = 0 if (comms && typeof(comms[1]) != $OBJ) silent = comms[1] comms = comms[2..$] endif {members, history, atime, @options} = `this:get_chan(id) ! E_INVARG => {{}, {}, 0}' leaving = $set_utils:intersection(members, comms) members = $set_utils:diff(members, comms) if ("autoclose" in options && length(members) < 2) leaving = $set_utils:union(members, leaving) members = {} endif if (members || "persist" in options) this:set_chan(id, {members, history, time(), @options}) else "Delete channel." this:set_chan(id) endif for comm in (leaving) if (!this:ls_chan(comm)) comm:_set_active(0) endif silent || comm:action("close") endfor "Last modified by Dax (#789) on Wed May 4 06:44:34 2005 MDT." .