[Turn on line numbering]arg name, all; var m, parts, mparts, mname, yes, x; m = []; parts = explode(name, "-"); for mname in (all) { mparts = explode(mname, "-"); if (listlen(parts) == listlen(mparts)) { yes = 1; for x in [1 .. listlen(parts)] { if (!match_begin(mparts[x], parts[x])) { yes = 0; break; } } if (yes) m += [mname]; } } if (listlen(m) == 1) name = m[1]; else if (listlen(m) > 1) throw(~ambig, "Multiple messages match the name '" + name + "'", m); else throw(~nomatch, "No messages match the name '" + name + "'"); return name;
// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit