Method code for $foundation._parse_msg_part()

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

the Cold Dark