[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 17-Dec-1996 as a part of ColdCore, see: @help Credit