[Turn on line numbering]
arg event, update_on;
var value, event, src, status;
(> .perms(sender()) <);
if (events.contains(update_on) && events[update_on].contains(event)) {
// clean it up first.. (ignore status)
[status, src] = events[update_on][event];
switch (src) {
case 'location:
(| loc.unhook_from_event(event) |);
case 'this:
(| .unhook_from_event(event) |);
default:
(| src.hook_into_event(event) |);
}
// now cleanup 'events'
value = events[update_on].del(event);
if (value)
events = events.add(update_on, value);
else
events = events.del(update_on);
if (!events)
clear_var('events);
}
["// Created 16-Dec-1996 as a part of ColdCore, see: @help Credit"]