char *rfc822_coresubj_nouc(const char *s, int *hasrefwd) { char *q=strdup(s); int dummy; if (!hasrefwd) hasrefwd= &dummy; *hasrefwd=0; if (!q) return (0); stripsubj(q, hasrefwd); return (q); }
char *rfc822_coresubj(const char *s, int *hasrefwd) { char *q=strdup(s), *r; int dummy; if (!hasrefwd) hasrefwd= &dummy; *hasrefwd=0; if (!q) return (0); for (r=q; *r; r++) if ((*r & 0x80) == 0) /* Just US-ASCII casing, thanks */ *r=toupper((int)(unsigned char)*r); stripsubj(q, hasrefwd); return (q); }
char *rfc822_coresubj_keepblobs(const char *s) { char *q=strdup(s), *r; int dummy; if (!q) return (0); r=strdup(s); if (!r) { free(q); return (0); } stripsubj(q, &dummy, r); strcat(r, q); free(q); return (r); }