[Turn off line numbering]1: arg name, all; 2: var m, parts, mparts, mname, yes, x; 3: 4: m = []; 5: parts = explode(name, "-"); 6: for mname in (all) { 7: mparts = explode(mname, "-"); 8: if (listlen(parts) == listlen(mparts)) { 9: yes = 1; 10: for x in [1 .. listlen(parts)] { 11: if (!match_begin(mparts[x], parts[x])) { 12: yes = 0; 13: break; 14: } 15: } 16: if (yes) 17: m += [mname]; 18: } 19: } 20: if (listlen(m) == 1) 21: name = m[1]; 22: else if (listlen(m) > 1) 23: throw(~ambig, "Multiple messages match the name '" + name + "'", m); 24: else 25: throw(~nomatch, "No messages match the name '" + name + "'"); 26: return name;
// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit