[Turn off line numbering]
1: arg event, update_on;
2: var value, event, src, status;
3:
4: (> .perms(sender()) <);
5: if (events.contains(update_on) && events[update_on].contains(event)) {
6: // clean it up first.. (ignore status)
7: [status, src] = events[update_on][event];
8: switch (src) {
9: case 'location:
10: (| loc.unhook_from_event(event) |);
11: case 'this:
12: (| .unhook_from_event(event) |);
13: default:
14: (| src.hook_into_event(event) |);
15: }
16:
17: // now cleanup 'events'
18: value = events[update_on].del(event);
19: if (value)
20: events = events.add(update_on, value);
21: else
22: events = events.del(update_on);
23: if (!events)
24: clear_var('events);
25: }
["// Created 16-Dec-1996 as a part of ColdCore, see: @help Credit"]