X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fmhstoresbr.c;h=6a0cf0497f7ac1aaa7e18d5347fd9b89a6a29c54;hp=44fd19aaeb3208ab314d044eea26a4fe09f5934a;hb=064527f7b57ab050e5af13e15ad99aeeab125857;hpb=d39e2c447b0d163a5a63f480b23d06edb7a73aa0 diff --git a/uip/mhstoresbr.c b/uip/mhstoresbr.c index 44fd19a..6a0cf04 100644 --- a/uip/mhstoresbr.c +++ b/uip/mhstoresbr.c @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -138,40 +137,40 @@ static int store_switch(CT ct) { switch (ct->c_type) { - case CT_MULTIPART: - return store_multi(ct); + case CT_MULTIPART: + return store_multi(ct); + break; + + case CT_MESSAGE: + switch (ct->c_subtype) { + case MESSAGE_PARTIAL: + return store_partial(ct); break; - case CT_MESSAGE: - switch (ct->c_subtype) { - case MESSAGE_PARTIAL: - return store_partial(ct); - break; - - case MESSAGE_EXTERNAL: - return store_external(ct); - - case MESSAGE_RFC822: - default: - return store_generic(ct); - break; - } - break; - - case CT_APPLICATION: - return store_application(ct); - break; - - case CT_TEXT: - case CT_AUDIO: - case CT_IMAGE: - case CT_VIDEO: - return store_generic(ct); - break; + case MESSAGE_EXTERNAL: + return store_external(ct); + case MESSAGE_RFC822: default: - adios(NULL, "unknown content type %d", ct->c_type); + return store_generic(ct); break; + } + break; + + case CT_APPLICATION: + return store_application(ct); + break; + + case CT_TEXT: + case CT_AUDIO: + case CT_IMAGE: + case CT_VIDEO: + return store_generic(ct); + break; + + default: + adios(NULL, "unknown content type %d", ct->c_type); + break; } return OK; /* NOT REACHED */ @@ -632,14 +631,15 @@ got_filename: if (ct->c_folder) { fprintf(stderr, " to folder %s as message %d\n", ct->c_folder, msgnum); - } else if (!strcmp(ct->c_storage, "-")) { + } else if (strcmp(ct->c_storage, "-")==0) { fprintf(stderr, " to stdout\n"); } else { int cwdlen; cwdlen = strlen(cwd); fprintf(stderr, " as file %s\n", - strncmp(ct->c_storage, cwd, cwdlen) || + strncmp(ct->c_storage, cwd, + cwdlen)!=0 || ct->c_storage[cwdlen] != '/' ? ct->c_storage : ct->c_storage + cwdlen + 1); @@ -678,11 +678,11 @@ output_content_file(CT ct, int appending) return NOTOK; } - file = appending || !strcmp(ct->c_storage, "-") ? + file = appending || strcmp(ct->c_storage, "-")==0 ? NULL : ct->c_storage; if ((fd = (*ct->c_ceopenfnx) (ct, &file)) == NOTOK) return NOTOK; - if (!strcmp(file, ct->c_storage)) { + if (strcmp(file, ct->c_storage)==0) { (*ct->c_ceclosefnx) (ct); return OK; } @@ -690,7 +690,7 @@ output_content_file(CT ct, int appending) /* ** Send to standard output */ - if (!strcmp(ct->c_storage, "-")) { + if (strcmp(ct->c_storage, "-")==0) { int gd; if ((gd = dup(fileno(stdout))) == NOTOK) { @@ -730,17 +730,16 @@ losing: for (;;) { switch (cc = read(fd, buffer, sizeof(buffer))) { - case NOTOK: - advise(file, "error reading content from"); - break; + case NOTOK: + advise(file, "error reading content from"); + break; - case OK: - break; + case OK: + break; - default: - fwrite(buffer, sizeof(*buffer), - cc, fp); - continue; + default: + fwrite(buffer, sizeof(*buffer), cc, fp); + continue; } break; } @@ -764,7 +763,7 @@ losing: last = ct->c_end; fseek(ct->c_fp, pos, SEEK_SET); - if (!strcmp(ct->c_storage, "-")) { + if (strcmp(ct->c_storage, "-")==0) { int gd; if ((gd = dup(fileno(stdout))) == NOTOK) { @@ -815,24 +814,24 @@ losing: */ if (filterstate) { switch (buffer[0]) { - case ' ': - case '\t': - if (filterstate < 0) - buffer[0] = 0; - break; + case ' ': + case '\t': + if (filterstate < 0) + buffer[0] = 0; + break; - case '\n': - filterstate = 0; - break; + case '\n': + filterstate = 0; + break; - default: - if (!uprf(buffer, XXX_FIELD_PRF) && !uprf(buffer, VRSN_FIELD) && !uprf(buffer, "Subject:") && !uprf(buffer, "Encrypted:") && !uprf(buffer, "Message-ID:")) { - filterstate = -1; - buffer[0] = 0; - break; - } - filterstate = 1; + default: + if (!uprf(buffer, XXX_FIELD_PRF) && !uprf(buffer, VRSN_FIELD) && !uprf(buffer, "Subject:") && !uprf(buffer, "Message-ID:")) { + filterstate = -1; + buffer[0] = 0; break; + } + filterstate = 1; + break; } } fputs(buffer, fp); @@ -867,7 +866,7 @@ output_content_folder(char *folder, char *filename) /* Read the folder. */ if ((mp = folder_read(folder))) { /* Link file into folder */ - msgnum = folder_addmsg(&mp, filename, 0, 0, 0, 0, (char *)0); + msgnum = folder_addmsg(&mp, filename, 0, 0, 0, 0, NULL); } else { advise(NULL, "unable to read folder %s", folder); return NOTOK; @@ -925,67 +924,71 @@ parse_format_string(CT ct, char *cp, char *buffer, int buflen, char *dir) /* We are processing a storage escape */ if (*cp == '%') { switch (*++cp) { - case 'a': - /* - ** Insert parameters from Content-Type. - ** This is only valid for '|' commands. - */ - if (buffer[0] != '|' && buffer[0] != '!') { - *bp++ = *--cp; - *bp = '\0'; - buflen--; - continue; - } else { - char **ap, **ep; - char *s = ""; - - for (ap = ci->ci_attrs, ep = ci->ci_values; - *ap; ap++, ep++) { - snprintf(bp, buflen, "%s%s=\"%s\"", s, *ap, *ep); - len = strlen(bp); - bp += len; - buflen -= len; - s = " "; - } + case 'a': + /* + ** Insert parameters from Content-Type. + ** This is only valid for '|' commands. + */ + if (buffer[0] != '|' && buffer[0] != '!') { + *bp++ = *--cp; + *bp = '\0'; + buflen--; + continue; + } else { + char **ap, **ep; + char *s = ""; + + for (ap=ci->ci_attrs, ep=ci->ci_values; + *ap; ap++, ep++) { + snprintf(bp, buflen, + "%s%s=\"%s\"", + s, *ap, *ep); + len = strlen(bp); + bp += len; + buflen -= len; + s = " "; } - break; + } + break; - case 'm': - /* insert message number */ - snprintf(bp, buflen, "%s", mhbasename(ct->c_file)); - break; + case 'm': + /* insert message number */ + snprintf(bp, buflen, "%s", + mhbasename(ct->c_file)); + break; - case 'P': - /* insert part number with leading dot */ - if (ct->c_partno) - snprintf(bp, buflen, ".%s", ct->c_partno); - break; + case 'P': + /* insert part number with leading dot */ + if (ct->c_partno) + snprintf(bp, buflen, ".%s", + ct->c_partno); + break; - case 'p': - /* insert part number withouth leading dot */ - if (ct->c_partno) - strncpy(bp, ct->c_partno, buflen); - break; + case 'p': + /* insert part number withouth leading dot */ + if (ct->c_partno) + strncpy(bp, ct->c_partno, buflen); + break; - case 't': - /* insert content type */ - strncpy(bp, ci->ci_type, buflen); - break; + case 't': + /* insert content type */ + strncpy(bp, ci->ci_type, buflen); + break; - case 's': - /* insert content subtype */ - strncpy(bp, ci->ci_subtype, buflen); - break; + case 's': + /* insert content subtype */ + strncpy(bp, ci->ci_subtype, buflen); + break; - case '%': - /* insert the character % */ - goto raw; + case '%': + /* insert the character % */ + goto raw; - default: - *bp++ = *--cp; - *bp = '\0'; - buflen--; - continue; + default: + *bp++ = *--cp; + *bp = '\0'; + buflen--; + continue; } /* Advance bp and decrement buflen */ @@ -1060,7 +1063,6 @@ copy_some_headers(FILE *out, CT ct) if (!uprf(hp->name, XXX_FIELD_PRF) && mh_strcasecmp(hp->name, VRSN_FIELD) && mh_strcasecmp(hp->name, "Subject") && - mh_strcasecmp(hp->name, "Encrypted") && mh_strcasecmp(hp->name, "Message-ID")) fprintf(out, "%s:%s", hp->name, hp->value); hp = hp->next; /* next header field */