[Turn on line numbering]arg value, method, @args; var action, list, item, out; if (value && value[1] in ["+", "-"]) { if (value[1] == "-") action = 'del; else action = 'add; list = [substr(value, 2)]; } else { action = 'set; list = value.explode_english_list(); } out = #[]; for item in (list) { if (method) { catch ~methodnf item = (> sender().(method)(item, action, @args) <); with item = (> .(method)(item, action, @args) <); } out = dict_add(out, item, 1); } if (action == 'set) return [action, out]; else return [action, out[1]];
// Created 01-Sep-1998 as a part of ColdCore, see: @help Credit