[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 26-Mar-1995 as a part of ColdCore, see: @help Credit"]