[Turn off line numbering]1: arg opt; 2: var reg, out; 3: 4: out = []; 5: opt = strsed(opt, "^ *", ""); 6: while (opt) { 7: if ((reg = regexp(opt, "^[\+-]([^= ]*)=([^ ]+) *(.*)"))) { 8: opt = reg[3]; 9: out += delete(reg, 3); 10: } else if ((reg = regexp(opt, "^[\+-]([^ ]+) *(.*)"))) { 11: opt = reg[2]; 12: out += [reg[1]]; 13: } else { 14: throw(~invopt, "Option templates must begin with '+' or '-'"); 15: } 16: opt = strsed(opt, "^ *", ""); 17: } 18: return out;
// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit