Method code for $foundation._parse_msg_part()

[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"]

the Cold Dark