@verb #9359:"_kick" this none this rxdo #8084 @program #9359:"_kick" this none this "My, cleaning this database is going to be a chore." return if ($code_utils:task_valid(this.kick_task)) return endif this.kick_task = task_id() deletable_ids = {} for y in [1..length(this.message_ids)] found = 0 ticks_left() < 10000 && suspend(0) if (!valid(`this.message_ids[y][2] ! E_RANGE => #-1')) this:get_newsgroup_for_id(this.message_ids[y][1]) endif found = 0 found = valid(this.message_ids[y][2]) && this.message_ids[y][2]:get_msgnum_from_id(this.message_ids[y][1]) if (!found) for x in (properties(this)) if (x[1] == " ") this.(x) = setremove(this.(x), y) endif $cmd_utils:suspend_if_needed(0) endfor deletable_ids = {@deletable_ids, y} endif $cmd_utils:suspend_if_needed(0) endfor for x in (deletable_ids) "If we actually deleted this ID, since all 'message ids' are indexes into this.message_ids, we would be destroying the entire database." "We could do it very carefully..." "But instead, we'll just set this index in this.message_ids to be -1, which is a nice easy change from {\"...\", #xxxx}. Later, we can carefully clean -1 instances out of message_ids." this.message_ids[y] = -1 $cmd_utils:suspend_if_needed(0) endfor this.kick_task = 0 "Last modified by Lao-Tzu (#8084) on Sun Apr 7 20:09:08 2002 MDT." .