TYPE_FIELD, ct->c_file);
return NOTOK;
}
-
- /* down case the content type string */
- for (dp = ci->ci_type; *dp; dp++)
- *dp = tolower ((unsigned char) *dp);
+ ToLower(ci->ci_type);
while (isspace ((unsigned char) *cp))
cp++;
TYPE_FIELD, ct->c_file, ci->ci_type);
return NOTOK;
}
-
- /* down case the content subtype string */
- for (dp = ci->ci_subtype; *dp; dp++)
- *dp = tolower ((unsigned char) *dp);
+ ToLower(ci->ci_subtype);
magic_skip:
while (isspace ((unsigned char) *cp))
* Get any <Content-Id> given in buffer
*/
if (magic && *cp == '<') {
- if (ct->c_id) {
- free (ct->c_id);
- ct->c_id = NULL;
- }
+ mh_xfree(ct->c_id);
+ ct->c_id = NULL;
if (!(dp = strchr(ct->c_id = ++cp, '>'))) {
advise (NULL, "invalid ID in message %s", ct->c_file);
return NOTOK;
continue;
*next = NULL;
free_content (p);
- free ((char *) part);
+ free(part);
}
}
for (i = 0; i < decoded_len; ++i) {
putc (*decoded_p++, ce->ce_fp);
}
- free ((char *) decoded);
+ free(decoded);
if (ferror (ce->ce_fp)) {
content_error (ce->ce_file, ct, "error writing to");
goto clean_up;
/* showproc is for mhshow and mhstore, though mhlist -debug
* prints it, too. */
- if (ct->c_showproc)
- free (ct->c_showproc);
+ mh_xfree(ct->c_showproc);
ct->c_showproc = add ("true", NULL);
fseek (ce->ce_fp, 0L, SEEK_SET);
"field\n%*s(parameter %s)", filename, fieldname,
strlen(invo_name) + 2, "", nameptr);
free(nameptr);
- if (charset)
- free(charset);
+ mh_xfree(charset);
return NOTOK;
}
filename, fieldname, strlen(invo_name) + 2,
"", nameptr);
free(nameptr);
- if (charset)
- free(charset);
- if (lang)
- free(lang);
+ mh_xfree(charset);
+ mh_xfree(lang);
return NOTOK;
}
vp += 2;
filename, fieldname, strlen(invo_name) + 2, "",
nameptr);
free(nameptr);
- if (charset)
- free(charset);
- if (lang)
- free(lang);
+ mh_xfree(charset);
+ mh_xfree(lang);
return NOTOK;
case '"':
break;
*/
if (index == 0 && encoded) {
- if (pp->charset)
- free(pp->charset);
+ mh_xfree(pp->charset);
pp->charset = charset;
- if (pp->lang)
- free(pp->lang);
+ mh_xfree(pp->lang);
pp->lang = lang;
}
} else {
if (strlen(params->pm_name) > CPERLIN) {
advise(NULL, "Parameter name \"%s\" is too long", params->pm_name);
- if (paramout)
- free(paramout);
+ mh_xfree(paramout);
return NULL;
}
numchars, valoff);
if (i == 0) {
- if (paramout)
- free(paramout);
+ mh_xfree(paramout);
return NULL;
}
strlen(params->pm_value + valoff), valoff);
if (i == 0) {
- if (paramout)
- free(paramout);
+ mh_xfree(paramout);
return NULL;
}
q = buffer;
bufsize = sizeof(buffer);
for (p = pm->pm_value; *p != '\0' && bufsize > 1; p++, q++, bufsize--) {
+ /* FIXME: !iscntrl should perhaps be isprint as that allows all
+ * classes bar cntrl, whereas the cntrl class can include those
+ * in space and blank.
+ * http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap07.html */
if (isascii((unsigned char) *p) && !iscntrl((unsigned char) *p))
*q = *p;
else