[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"]