summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
3e3e0f9)
Removes more uses of the ad... functions with unneeded parameters.
Puts the "continuing" at the call site rather than the reader having to
remember it's being magically appended. (Some calls were passing
"foo\n" that would result in "foo\n, continuing...\n" appearing.)
23 files changed:
localmailbox++;
if ((cp = getname(am)) == NULL) {
localmailbox++;
if ((cp = getname(am)) == NULL) {
- admonish (NULL, "Unable to find address in local-mailbox");
+ inform("Unable to find address in local-mailbox, continuing...");
return 0;
}
if ((mq.m_next = getm (cp, NULL, 0, NULL, 0)) == NULL) {
return 0;
}
if ((mq.m_next = getm (cp, NULL, 0, NULL, 0)) == NULL) {
- admonish (NULL, "invalid entry in local-mailbox: %s", cp);
+ inform("invalid entry in local-mailbox: %s, continuing...", cp);
oops = 0;
while ((cp = getname (am))) {
if ((mp->m_next = getm (cp, NULL, 0, NULL, 0)) == NULL) {
oops = 0;
while ((cp = getname (am))) {
if ((mp->m_next = getm (cp, NULL, 0, NULL, 0)) == NULL) {
- admonish (NULL, "illegal address: %s", cp);
+ inform("illegal address: %s, continuing...", cp);
oops++;
} else {
mp = mp->m_next;
oops++;
} else {
mp = mp->m_next;
for (np = m_defs, pp = NULL; np; pp = np, np = np->n_next) {
if (!strcasecmp (np->n_name ? np->n_name : "", key ? key : "")) {
if (!np->n_context)
for (np = m_defs, pp = NULL; np; pp = np, np = np->n_next) {
if (!strcasecmp (np->n_name ? np->n_name : "", key ? key : "")) {
if (!np->n_context)
- admonish (NULL, "bug: context_del(key=\"%s\")", np->n_name);
+ inform("bug: context_del(key=\"%s\"), continuing...", np->n_name);
if (pp)
pp->n_next = np->n_next;
else
if (pp)
pp->n_next = np->n_next;
else
if (!strcasecmp (np->n_name ? np->n_name : "", key ? key : "")) {
if (strcmp (value, np->n_field)) {
if (!np->n_context)
if (!strcasecmp (np->n_name ? np->n_name : "", key ? key : "")) {
if (strcmp (value, np->n_field)) {
if (!np->n_context)
- admonish (NULL, "bug: context_replace(key=\"%s\",value=\"%s\")", key, value);
+ inform("bug: context_replace(key=\"%s\",value=\"%s\"), continuing...", key, value);
mh_xfree(np->n_field);
np->n_field = mh_xstrdup(value);
ctxflags |= CTXMOD;
mh_xfree(np->n_field);
np->n_field = mh_xstrdup(value);
ctxflags |= CTXMOD;
credentials_file =
concat (mypath ? mypath : ".", "/", filename, NULL);
if (stat (credentials_file, &st) != OK) {
credentials_file =
concat (mypath ? mypath : ".", "/", filename, NULL);
if (stat (credentials_file, &st) != OK) {
- admonish (NULL, "unable to find credentials file %s",
+ inform("unable to find credentials file %s, continuing...",
*/
creds->user = user == NULL ? NULL : mh_xstrdup(user);
} else {
*/
creds->user = user == NULL ? NULL : mh_xstrdup(user);
} else {
- admonish (NULL, "unknown credentials style %s", cred_style);
+ inform("unknown credentials style %s, continuing...", cred_style);
- admonish (NULL,
- "Unsupported RRULE format: %s, assume local timezone",
- rrule);
+ inform("Unsupported RRULE format: %s, assume local timezone, continuing...",
+ rrule);
if (q == NULL) {
/* This should never happen, but just in case. Found by
clang static analyzer. */
if (q == NULL) {
/* This should never happen, but just in case. Found by
clang static analyzer. */
- admonish (NULL, "null output encoding for %s", *value);
+ inform("null output encoding for %s, continuing...", *value);
m_getfld_state_t gstate = 0;
if (npp == NULL && (npp = opp) == NULL) {
m_getfld_state_t gstate = 0;
if (npp == NULL && (npp = opp) == NULL) {
- admonish (NULL, "bug: readconfig called but pump not primed");
+ inform("bug: readconfig called but pump not primed, continuing...");
struct node *np2;
for (np2 = np->n_next; np2; np2 = np2->n_next) {
if (! strcasecmp (np->n_name, np2->n_name)) {
struct node *np2;
for (np2 = np->n_next; np2; np2 = np2->n_next) {
if (! strcasecmp (np->n_name, np2->n_name)) {
- admonish (NULL, "multiple \"%s\" profile components "
- "in %s, ignoring \"%s\"",
- np->n_name, defpath, np2->n_field);
+ inform("multiple \"%s\" profile components in %s, "
+ "ignoring \"%s\", continuing...",
+ np->n_name, defpath, np2->n_field);
static char curwd[PATH_MAX];
if (!getcwd (curwd, PATH_MAX)) {
static char curwd[PATH_MAX];
if (!getcwd (curwd, PATH_MAX)) {
- admonish (NULL, "unable to determine working directory");
+ inform("unable to determine working directory, continuing...");
if (!mypath || !*mypath
|| (strcpy (curwd, mypath), chdir (curwd)) == -1) {
strcpy (curwd, "/");
if (!mypath || !*mypath
|| (strcpy (curwd, mypath), chdir (curwd)) == -1) {
strcpy (curwd, "/");
}
if (! setlocale (LC_ALL, locale)) {
}
if (! setlocale (LC_ALL, locale)) {
- admonish (NULL, "setlocale failed, check your LC_ALL, LC_CTYPE, and "
- "LANG environment variables");
+ inform("setlocale failed, check your LC_ALL, LC_CTYPE, and LANG "
+ "environment variables, continuing...");
} else {
if (numburst == 0) {
if (!quietsw)
} else {
if (numburst == 0) {
if (!quietsw)
- admonish (NULL, "message %d not in digest format",
+ inform("message %d not in digest format, continuing...",
msgnum);
} /* this pair of braces was missing before 1999-07-15 */
else
msgnum);
} /* this pair of braces was missing before 1999-07-15 */
else
if (read (fd, (char *) &tmpd, sizeof(*dp)) != sizeof(*dp)) {
#ifdef notdef
if (read (fd, (char *) &tmpd, sizeof(*dp)) != sizeof(*dp)) {
#ifdef notdef
- admonish (NULL, "%s: missing or partial index", file);
+ inform("%s: missing or partial index, continuing...", file);
#endif /* notdef */
return NOTOK;
}
#endif /* notdef */
return NOTOK;
}
if (dp->d_size != DRVRSN) {
if (noisy)
if (dp->d_size != DRVRSN) {
if (noisy)
- admonish (NULL, "%s: version mismatch (%d != %d)", file,
+ inform("%s: version mismatch (%d != %d), continuing...", file,
dp->d_size, DRVRSN);
return NOTOK;
}
if (dp->d_stop != pos) {
if (noisy && pos != (long) 0)
dp->d_size, DRVRSN);
return NOTOK;
}
if (dp->d_stop != pos) {
if (noisy && pos != (long) 0)
- admonish (NULL,
- "%s: pointer mismatch or incomplete index (%ld!=%ld)",
- file, dp->d_stop, (long) pos);
+ inform("%s: pointer mismatch or incomplete index (%ld!=%ld), "
+ "continuing...", file, dp->d_stop, (long) pos);
return NOTOK;
}
if ((long) ((dp->d_id + 1) * sizeof(*dp)) != (long) lseek (fd, (off_t) 0, SEEK_END)) {
if (noisy)
return NOTOK;
}
if ((long) ((dp->d_id + 1) * sizeof(*dp)) != (long) lseek (fd, (off_t) 0, SEEK_END)) {
if (noisy)
- admonish (NULL, "%s: corrupt index(1)", file);
+ inform("%s: corrupt index(1), continuing...", file);
|| (ntohl(dl->d_stop) != dp->d_stop
&& ntohl(dl->d_stop) + count != dp->d_stop)) {
if (noisy)
|| (ntohl(dl->d_stop) != dp->d_stop
&& ntohl(dl->d_stop) + count != dp->d_stop)) {
if (noisy)
- admonish (NULL, "%s: corrupt index(2)", file);
+ inform("%s: corrupt index(2), continuing...", file);
*/
if (!argfolder) {
if (msg)
*/
if (!argfolder) {
if (msg)
- admonish (NULL, "no folder given for message %s", msg);
+ inform("no folder given for message %s, continuing...", msg);
readonly_folders (); /* do any readonly folders */
strncpy (folder, (cp = context_find (pfolder)) ? cp : "", sizeof(folder));
crawl_folders (".", get_folder_info_callback, NULL);
readonly_folders (); /* do any readonly folders */
strncpy (folder, (cp = context_find (pfolder)) ? cp : "", sizeof(folder));
crawl_folders (".", get_folder_info_callback, NULL);
* create message structure and get folder info
*/
if (!(mp = folder_read (fold, fpack))) {
* create message structure and get folder info
*/
if (!(mp = folder_read (fold, fpack))) {
- admonish (NULL, "unable to read folder %s", fold);
+ inform("unable to read folder %s, continuing...", fold);
*crawl_children = FALSE;
return 0;
}
*crawl_children = FALSE;
return 0;
}
return 0;
if (mp->numsel > 1) {
return 0;
if (mp->numsel > 1) {
- admonish (NULL, "only one message at a time!");
+ inform("only one message at a time!, continuing...");
return 0;
}
seq_setprev (mp); /* set the previous-sequence */
return 0;
}
seq_setprev (mp); /* set the previous-sequence */
}
if (msgnum == hghnum) {
}
if (msgnum == hghnum) {
- admonish (NULL, "no messages incorporated");
+ inform("no messages incorporated, continuing...");
} else {
/*
* Lock the sequence file now, and loop to set the right flags
} else {
/*
* Lock the sequence file now, and loop to set the right flags
context_replace (pfolder, folder); /* update current folder */
if ((mp2 = folder_read(folder, 1)) == NULL) {
context_replace (pfolder, folder); /* update current folder */
if ((mp2 = folder_read(folder, 1)) == NULL) {
- admonish(NULL, "Unable to reread folder %s", folder);
+ inform("Unable to reread folder %s, continuing...", folder);
CT p;
if (user_content (in, buf, &p, infile) == DONE) {
CT p;
if (user_content (in, buf, &p, infile) == DONE) {
- admonish (NULL, "ignoring spurious #end");
+ inform("ignoring spurious #end, continuing...");
pp = &part->mp_next;
part->mp_part = p;
}
pp = &part->mp_next;
part->mp_part = p;
}
- admonish (NULL, "premature end-of-file, missing #end");
+ inform("premature end-of-file, missing #end, continuing...");
if (cp && strcasecmp (cp, "attachment") &&
strcasecmp (cp, "inline")) {
if (cp && strcasecmp (cp, "attachment") &&
strcasecmp (cp, "inline")) {
- admonish (NULL, "configuration problem: %s-disposition-%s%s%s "
- "specifies '%s' but only 'attachment' and 'inline' are "
- "allowed", invo_name,
- ct->c_ctinfo.ci_type,
- ct->c_ctinfo.ci_subtype ? "/" : "",
- ct->c_ctinfo.ci_subtype ? ct->c_ctinfo.ci_subtype : "",
- cp);
+ inform("configuration problem: %s-disposition-%s%s%s specifies "
+ "'%s' but only 'attachment' and 'inline' are allowed, "
+ "continuing...", invo_name,
+ ct->c_ctinfo.ci_type,
+ ct->c_ctinfo.ci_subtype ? "/" : "",
+ ct->c_ctinfo.ci_subtype ? ct->c_ctinfo.ci_subtype : "",
+ cp);
if ((status = show_content_aux (ct, 0, convert_command, NULL, NULL)) !=
OK) {
if ((status = show_content_aux (ct, 0, convert_command, NULL, NULL)) !=
OK) {
- admonish (NULL, "store of %s content failed", type);
+ inform("store of %s content failed, continuing...", type);
}
free (convert_command);
}
free (convert_command);
if (extract_headers (reply_ct, reply_file, &reply_fp) == NOTOK) {
free (reply_file);
if (extract_headers (reply_ct, reply_file, &reply_fp) == NOTOK) {
free (reply_file);
- admonish (NULL,
- "failed to extract headers from convert output in %s",
- reply_file);
+ inform("failed to extract headers from convert output in %s, "
+ "continuing...", reply_file);
if ((fd = open (reply_file, O_RDONLY)) == NOTOK ||
scan_input (fd, &eightbit) == NOTOK) {
free (reply_file);
if ((fd = open (reply_file, O_RDONLY)) == NOTOK ||
scan_input (fd, &eightbit) == NOTOK) {
free (reply_file);
- admonish (NULL, "failed to read %s", reply_file);
+ inform("failed to read %s, continuing...", reply_file);
return;
}
(void) close (fd);
return;
}
(void) close (fd);
n = strlen (buffer);
if (get_ctinfo (buffer + 14, ct, 0) != OK) {
n = strlen (buffer);
if (get_ctinfo (buffer + 14, ct, 0) != OK) {
- admonish (NULL, "unable to get content info for reply");
+ inform("unable to get content info for reply, continuing...");
goto failed_to_extract_ct;
}
goto failed_to_extract_ct;
}
(void) m_unlink (tmp_decoded);
free (tmp_decoded);
if (fclose (file)) {
(void) m_unlink (tmp_decoded);
free (tmp_decoded);
if (fclose (file)) {
- admonish (NULL, "unable to close temporary file %s", tempfile);
+ inform("unable to close temporary file %s, continuing...", tempfile);
- admonish (NULL, "unable to write temporary file %s",
+ inform("unable to write temporary file %s, continuing...",
stripped_content_file);
(void) m_unlink (stripped_content_file);
status = NOTOK;
stripped_content_file);
(void) m_unlink (stripped_content_file);
status = NOTOK;
expand filename to absolute path. */
int file = ct->c_file && ct->c_file[0] == '/';
expand filename to absolute path. */
int file = ct->c_file && ct->c_file[0] == '/';
- admonish (NULL, "unable to rename %s %s to %s",
+ inform("unable to rename %s %s to %s, continuing...",
file ? "file" : "message", outfile,
infile);
status = NOTOK;
}
}
} else {
file ? "file" : "message", outfile,
infile);
status = NOTOK;
}
}
} else {
- admonish (NULL, "unable to remove input file %s, "
- "not modifying it", infile);
+ inform("unable to remove input file %s, "
+ "not modifying it, continuing...", infile);
(void) m_unlink (outfile);
status = NOTOK;
}
(void) m_unlink (outfile);
status = NOTOK;
}
if ((node = find_contentline (clines, "VERSION", 0))) {
if (! node->value) {
if ((node = find_contentline (clines, "VERSION", 0))) {
if (! node->value) {
- admonish (NULL, "Version property is missing value, assume 2.0");
+ inform("Version property is missing value, assume 2.0, continuing...");
node->value = mh_xstrdup ("2.0");
}
if (strcmp (node->value, "2.0")) {
node->value = mh_xstrdup ("2.0");
}
if (strcmp (node->value, "2.0")) {
- admonish (NULL, "supports the Version 2.0 specified by RFC 5545 "
- "but iCalendar object has Version %s", node->value);
+ inform("supports the Version 2.0 specified by RFC 5545 "
+ "but iCalendar object has Version %s, continuing...",
+ node->value);
node->value = mh_xstrdup ("2.0");
}
}
node->value = mh_xstrdup ("2.0");
}
}
free (node->value);
node->value = mh_xstrdup (buf);
} else {
free (node->value);
node->value = mh_xstrdup (buf);
} else {
- admonish (NULL, "strftime unable to format current time");
+ inform("strftime unable to format current time, continuing...");
- admonish (NULL, "gmtime_r failed on current time");
+ inform("gmtime_r failed on current time, continuing...");
ucmp = !strcasecmp (cp, VRSN_VALUE);
*dp = c;
if (!ucmp) {
ucmp = !strcasecmp (cp, VRSN_VALUE);
*dp = c;
if (!ucmp) {
- admonish (NULL, "message %s has unknown value for %s: field (%s)",
+ inform("message %s has unknown value for %s: field (%s), continuing...",
ct->c_file, VRSN_FIELD, cp);
}
if (!ct->c_vrsn) {
ct->c_file, VRSN_FIELD, cp);
}
if (!ct->c_vrsn) {
while (bp >= cte && isspace ((unsigned char) *bp)) *bp-- = '\0';
for (bp = cte; *bp && isblank ((unsigned char) *bp); ++bp) continue;
while (bp >= cte && isspace ((unsigned char) *bp)) *bp-- = '\0';
for (bp = cte; *bp && isblank ((unsigned char) *bp); ++bp) continue;
- admonish (NULL,
- "\"%s/%s\" type in message %s must be encoded in\n"
- "7bit, 8bit, or binary, per RFC 2045 (6.4). "
- "mhfixmsg -fixcte can fix it, or\n"
- "manually edit the file and change the \"%s\"\n"
- "Content-Transfer-Encoding to one of those. For now",
- ci->ci_type, ci->ci_subtype, ct->c_file, bp);
+ inform("\"%s/%s\" type in message %s must be encoded in\n"
+ "7bit, 8bit, or binary, per RFC 2045 (6.4). "
+ "mhfixmsg -fixcte can fix it, or\n"
+ "manually edit the file and change the \"%s\"\n"
+ "Content-Transfer-Encoding to one of those. For now, continuing...",
+ ci->ci_type, ci->ci_subtype, ct->c_file, bp);
free (cte);
return NOTOK;
free (cte);
return NOTOK;
CI ci = &ct->c_ctinfo;
if ((ct->c_encoding != CE_7BIT) && (ct->c_encoding != CE_8BIT)) {
CI ci = &ct->c_ctinfo;
if ((ct->c_encoding != CE_7BIT) && (ct->c_encoding != CE_8BIT)) {
- admonish (NULL,
- "\"%s/%s\" type in message %s should be encoded in 7bit or 8bit",
- ci->ci_type, ci->ci_subtype, ct->c_file);
+ inform("\"%s/%s\" type in message %s should be encoded in "
+ "7bit or 8bit, continuing...", ci->ci_type, ci->ci_subtype,
+ ct->c_file);
return NOTOK;
} else {
char *charset = content_charset (ct);
return NOTOK;
} else {
char *charset = content_charset (ct);
- admonish (NULL, "unable to convert character set%s%s from %s",
+ inform("unable to convert character set%s%s from %s, continuing...",
ct->c_partno ? " of part " : "",
ct->c_partno ? ct->c_partno : "",
charset);
ct->c_partno ? " of part " : "",
ct->c_partno ? ct->c_partno : "",
charset);
if (parse_display_string (ct, cp, &xstdin, &xlist, file, buffer,
sizeof(buffer) - 1, 0)) {
if (parse_display_string (ct, cp, &xstdin, &xlist, file, buffer,
sizeof(buffer) - 1, 0)) {
- admonish (NULL, "Buffer overflow constructing show command!\n");
+ inform("Buffer overflow constructing show command, continuing...");
if (parse_display_string (ct, cp, &xstdin, &xlist, file,
buffer, sizeof(buffer) - 1, 1)) {
if (parse_display_string (ct, cp, &xstdin, &xlist, file,
buffer, sizeof(buffer) - 1, 1)) {
- admonish (NULL, "Buffer overflow constructing show command!\n");
+ inform("Buffer overflow constructing show command, continuing...");
/* This will get confused if there are multiple %{}'s,
but its real purpose is to avoid doing bad things
above if a closing brace wasn't found. */
/* This will get confused if there are multiple %{}'s,
but its real purpose is to avoid doing bad things
above if a closing brace wasn't found. */
- admonish(NULL,
- "no closing brace for display string escape %s",
+ inform("no closing brace for display string escape %s, continuing...",
pm = (struct partial *) p->c_ctparams;
if (pm->pm_marked != cur) {
if (pm->pm_marked == cur - 1) {
pm = (struct partial *) p->c_ctparams;
if (pm->pm_marked != cur) {
if (pm->pm_marked == cur - 1) {
- admonish (NULL,
- "duplicate part %d of %d part multipart message",
+ inform("duplicate part %d of %d part multipart message, continuing...",
pm->pm_marked, hi);
continue;
}
pm->pm_marked, hi);
continue;
}
- admonish (NULL, "advance() botch -- you lose big");
+ inform("advance() botch -- you lose big, continuing...");
sleep (5);
switch (child_id) {
case NOTOK:
sleep (5);
switch (child_id) {
case NOTOK:
- admonish (NULL, "unable to fork");
+ inform("unable to fork, continuing...");
/* FALLTHRU */
case OK:
execvp (program, vec);
/* FALLTHRU */
case OK:
execvp (program, vec);
|| has_prefix(dp->d_name, BACKUP_PREFIX))
break;
|| has_prefix(dp->d_name, BACKUP_PREFIX))
break;
- admonish (NULL, "file \"%s/%s\" not deleted",
+ inform("file \"%s/%s\" not deleted, continuing...",
folder, dp->d_name);
others++;
continue;
folder, dp->d_name);
others++;
continue;
&& *(np->n_name + j) == '-'
&& strcmp (cp, np->n_name + j + 1) == 0) {
if (!np->n_context)
&& *(np->n_name + j) == '-'
&& strcmp (cp, np->n_name + j + 1) == 0) {
if (!np->n_context)
- admonish (NULL, "bug: context_del(key=\"%s\")", np->n_name);
+ inform("bug: context_del(key=\"%s\"), continuing...",
+ np->n_name);
if (pp) {
pp->n_next = np->n_next;
np = pp;
if (pp) {
pp->n_next = np->n_next;
np = pp;
snprintf (buf, sizeof(buf), "%d", fd2);
vec[vecp++] = buf;
} else {
snprintf (buf, sizeof(buf), "%d", fd2);
vec[vecp++] = buf;
} else {
- admonish (NULL, "unable to create temporary file in %s "
- "for annotation list", get_temp_dir());
+ inform("unable to create temporary file in %s for "
+ "annotation list, continuing...", get_temp_dir());
|| st->st_dev != st2.st_dev
|| st->st_ino != st2.st_ino)) {
if (debugsw)
|| st->st_dev != st2.st_dev
|| st->st_ino != st2.st_ino)) {
if (debugsw)
- admonish (NULL, "$mhaltmsg mismatch");
+ inform("$mhaltmsg mismatch, continuing...");
if ((folder = getenv ("mhfolder")) == NULL || *folder == 0) {
if (debugsw)
if ((folder = getenv ("mhfolder")) == NULL || *folder == 0) {
if (debugsw)
- admonish (NULL, "$mhfolder not set");
+ inform("$mhfolder not set, continuing...");
return;
}
maildir = m_maildir (folder);
return;
}
maildir = m_maildir (folder);
}
if (!(mp = folder_read (folder, 0))) {
if (debugsw)
}
if (!(mp = folder_read (folder, 0))) {
if (debugsw)
- admonish (NULL, "unable to read folder %s", folder);
+ inform("unable to read folder %s, continuing...", folder);
return;
}
/* check for empty folder */
if (mp->nummsg == 0) {
if (debugsw)
return;
}
/* check for empty folder */
if (mp->nummsg == 0) {
if (debugsw)
- admonish (NULL, "no messages in %s", folder);
+ inform("no messages in %s, continuing...", folder);
goto oops;
}
if ((cp = getenv ("mhmessages")) == NULL || *cp == 0) {
if (debugsw)
goto oops;
}
if ((cp = getenv ("mhmessages")) == NULL || *cp == 0) {
if (debugsw)
- admonish (NULL, "$mhmessages not set");
+ inform("$mhmessages not set, continuing...");
goto oops;
}
if (!debugsw /* MOBY HACK... */
goto oops;
}
if (!debugsw /* MOBY HACK... */
dup2 (fd2, fileno (stderr));
if (mp->numsel == 0) {
if (debugsw)
dup2 (fd2, fileno (stderr));
if (mp->numsel == 0) {
if (debugsw)
- admonish (NULL, "no messages to annotate");
+ inform("no messages to annotate, continuing...");
goto oops;
}
lseek (fd, (off_t) 0, SEEK_SET);
if ((fp = fdopen (fd, "r")) == NULL) {
if (debugsw)
goto oops;
}
lseek (fd, (off_t) 0, SEEK_SET);
if ((fp = fdopen (fd, "r")) == NULL) {
if (debugsw)
- admonish (NULL, "unable to fdopen annotation list");
+ inform("unable to fdopen annotation list, continuing...");
case LENERR:
case FMTERR:
if (state == LENERR || state == FMTERR) {
case LENERR:
case FMTERR:
if (state == LENERR || state == FMTERR) {
- admonish (NULL, "format error in message %d (header #%d)",
+ inform("format error in message %d (header #%d), continuing...",
msg, compnum);
check_failed = 1;
}
msg, compnum);
check_failed = 1;
}