.RE
.PP
specifies a list of components which are never output.
+This option supports some simple globbing,
+so a '*' at the end of a component will match
+for all components which start wich the string.
+When you want to match a component which ends with
+a '*', you can escape the '*' with a '\\'.
.PP
The component `MessageName' (case\-insensitive) will output the
message file name as a one-line header, similar to
c1->c_flags &= ~HDROUTPUT;
}
+static boolean
+simplematch(char *pattern, char *b)
+{
+ char *match = strrchr(pattern, '*');
+ char repl;
+ boolean ret;
+
+ /* check if pattern ends with a * and is not escaped witch a \ */
+ if (!match || match[1] || (match > pattern && match[-1] == '\\')) {
+ if (!match || match[1]) {
+ return mh_strcasecmp(pattern, b) == 0;
+ }
+ match[0] = '\0';
+ match[-1] = '*';
+ ret = mh_strcasecmp(pattern, b)==0;
+ match[-1] = '\\';
+ match[0] = '*';
+ return ret;
+ }
+
+ repl = b[match-pattern];
+ b[match-pattern] = '\0';
+ *match = '\0';
+ ret = (mh_strcasecmp(pattern, b) == 0);
+ b[match-pattern] = repl;
+ *match = '*';
+ return ret;
+}
static void
mhlfile(FILE *fp, char *mname, int ofilen, int ofilec)
switch (state = m_getfld2(state, &f, fp)) {
case FLD2:
for (ip = ignores; *ip; ip++)
- if (mh_strcasecmp(f.name, *ip)==0) {
+ if (simplematch(*ip, f.name)) {
break;
}
if (*ip) {