X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fmhlistsbr.c;h=dd6264bf53e6c164902315babb51013ef7598cfe;hp=1777cf4bfad92824d49b3ea3e4ba055d581f1bc5;hb=6e9577f324bef90765a5edc02044eb111ec48072;hpb=55e1d8c654ee0f7c45b9361ce34617983b454c32 diff --git a/uip/mhlistsbr.c b/uip/mhlistsbr.c index 1777cf4..dd6264b 100644 --- a/uip/mhlistsbr.c +++ b/uip/mhlistsbr.c @@ -9,13 +9,13 @@ #include #include -#include #include -#include #include #include #include #include +#include +#include /* mhmisc.c */ int part_ok(CT, int); @@ -25,17 +25,17 @@ void flush_errors(void); /* ** prototypes */ -void list_all_messages(CT *, int, int, int, int); -int list_switch(CT, int, int, int, int); -int list_content(CT, int, int, int, int); +void list_all_messages(CT *, int, int); +int list_switch(CT, int, int, int); +int list_content(CT, int, int, int); /* ** static prototypes */ -static void list_single_message(CT, int, int, int); +static void list_single_message(CT, int, int); static int list_debug(CT); -static int list_multi(CT, int, int, int, int); -static int list_partial(CT, int, int, int, int); +static int list_multi(CT, int, int, int); +static int list_partial(CT, int, int, int); static int list_encoding(CT); @@ -57,19 +57,15 @@ static int list_encoding(CT); ** Top level entry point to list group of messages */ void -list_all_messages(CT *cts, int headers, int realsize, int verbose, int debug) +list_all_messages(CT *cts, int verbose, int debug) { CT ct, *ctp; - if (headers) - printf(LSTFMT1, "msg", "part", "type/subtype", "size", - "description"); - + printf(LSTFMT1, "msg", "part", "type/subtype", "size", "description"); for (ctp = cts; *ctp; ctp++) { ct = *ctp; - list_single_message(ct, realsize, verbose, debug); + list_single_message(ct, verbose, debug); } - flush_errors(); } @@ -78,11 +74,11 @@ list_all_messages(CT *cts, int headers, int realsize, int verbose, int debug) ** Entry point to list a single message */ static void -list_single_message(CT ct, int realsize, int verbose, int debug) +list_single_message(CT ct, int verbose, int debug) { if (type_ok(ct, 1)) { umask(ct->c_umask); - list_switch(ct, 1, realsize, verbose, debug); + list_switch(ct, 1, verbose, debug); if (ct->c_fp) { fclose(ct->c_fp); ct->c_fp = NULL; @@ -97,20 +93,18 @@ list_single_message(CT ct, int realsize, int verbose, int debug) ** Primary switching routine to list information about a content */ int -list_switch(CT ct, int toplevel, int realsize, int verbose, int debug) +list_switch(CT ct, int toplevel, int verbose, int debug) { switch (ct->c_type) { case CT_MULTIPART: - return list_multi(ct, toplevel, realsize, verbose, debug); + return list_multi(ct, toplevel, verbose, debug); break; case CT_MESSAGE: if (ct->c_subtype == MESSAGE_PARTIAL) { - return list_partial(ct, toplevel, realsize, verbose, - debug); + return list_partial(ct, toplevel, verbose, debug); } else { - return list_content(ct, toplevel, realsize, verbose, - debug); + return list_content(ct, toplevel, verbose, debug); } break; @@ -119,12 +113,12 @@ list_switch(CT ct, int toplevel, int realsize, int verbose, int debug) case CT_IMAGE: case CT_VIDEO: case CT_APPLICATION: - return list_content(ct, toplevel, realsize, verbose, debug); + return list_content(ct, toplevel, verbose, debug); break; default: /* list_debug (ct); */ - adios(NULL, "unknown content type %d", ct->c_type); + adios(EX_DATAERR, NULL, "unknown content type %d", ct->c_type); break; } @@ -138,7 +132,7 @@ list_switch(CT ct, int toplevel, int realsize, int verbose, int debug) ** Method for listing information about a simple/generic content */ int -list_content(CT ct, int toplevel, int realsize, int verbose, int debug) +list_content(CT ct, int toplevel, int verbose, int debug) { unsigned long size; char *cp, buffer[BUFSIZ]; @@ -150,7 +144,7 @@ list_content(CT ct, int toplevel, int realsize, int verbose, int debug) empty(ci->ci_subtype)); printf(LSTFMT2b, empty(ct->c_partno), buffer); - if (ct->c_cesizefnx && realsize) + if (ct->c_cesizefnx) size = (*ct->c_cesizefnx) (ct); else size = ct->c_end - ct->c_begin; @@ -180,11 +174,10 @@ list_content(CT ct, int toplevel, int realsize, int verbose, int debug) /* print Content-Description */ if (ct->c_descr) { char *dp; - - dp = trimcpy(cp = getcpy(ct->c_descr)); - free(cp); + dp = trimcpy(cp = mh_xstrdup(ct->c_descr)); + mh_free0(&cp); printf(LSTFMT2d1, dp); - free(dp); + mh_free0(&dp); } printf("\n"); @@ -207,7 +200,7 @@ list_content(CT ct, int toplevel, int realsize, int verbose, int debug) dp = trimcpy(cp = add(ci->ci_comment, NULL)); free (cp); snprintf(buffer, sizeof(buffer), "(%s)", dp); - free(dp); + mh_free0(&dp); printf(LSTFMT2d2, buffer); } } @@ -255,8 +248,8 @@ list_debug(CT ct) ct->c_type, ct->c_subtype, (unsigned int)(unsigned long) ct->c_ctparams); + fprintf(stderr, " charset \"%s\"\n", empty(ct->c_charset)); fprintf(stderr, " showproc \"%s\"\n", empty(ct->c_showproc)); - fprintf(stderr, " termproc \"%s\"\n", empty(ct->c_termproc)); fprintf(stderr, " storeproc \"%s\"\n", empty(ct->c_storeproc)); /* print transfer encoding information */ @@ -293,20 +286,20 @@ list_debug(CT ct) ** list content information for type "multipart" */ static int -list_multi(CT ct, int toplevel, int realsize, int verbose, int debug) +list_multi(CT ct, int toplevel, int verbose, int debug) { struct multipart *m = (struct multipart *) ct->c_ctparams; struct part *part; /* list the content for toplevel of this multipart */ - list_content(ct, toplevel, realsize, verbose, debug); + list_content(ct, toplevel, verbose, debug); /* now list for all the subparts */ for (part = m->mp_parts; part; part = part->mp_next) { CT p = part->mp_part; if (part_ok(p, 1) && type_ok(p, 1)) - list_switch(p, 0, realsize, verbose, debug); + list_switch(p, 0, verbose, debug); } return OK; @@ -317,11 +310,11 @@ list_multi(CT ct, int toplevel, int realsize, int verbose, int debug) ** list content information for type "message/partial" */ static int -list_partial(CT ct, int toplevel, int realsize, int verbose, int debug) +list_partial(CT ct, int toplevel, int verbose, int debug) { struct partial *p = (struct partial *) ct->c_ctparams; - list_content(ct, toplevel, realsize, verbose, debug); + list_content(ct, toplevel, verbose, debug); if (verbose) { printf("\t [message %s, part %d", p->pm_partid, p->pm_partno);