X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/55f65ae2d3baf60396d3359db952460939de03ca..0a7838e0e8026cbfe8a8924ef256ad9e930fb03d:/uip/mhlistsbr.c diff --git a/uip/mhlistsbr.c b/uip/mhlistsbr.c index fe3d0696..f5676a49 100644 --- a/uip/mhlistsbr.c +++ b/uip/mhlistsbr.c @@ -44,14 +44,14 @@ static int list_encoding (CT); /* * various formats for -list option */ -#define LSTFMT1 "%4s %-5s %-24s %5s %-36s\n" +#define LSTFMT1 "%4s %-5s %-24s %5s %s\n" #define LSTFMT2a "%4d " #define LSTFMT2b "%-5s %-24.24s " #define LSTFMT2c1 "%5lu" #define LSTFMT2c2 "%4lu%c" #define LSTFMT2c3 "huge " #define LSTFMT2c4 " " -#define LSTFMT2d1 " %-36.36s" +#define LSTFMT2d1 " %.36s" #define LSTFMT2d2 "\t %-65.65s\n" @@ -106,40 +106,32 @@ list_switch (CT ct, int toplevel, int realsize, int verbose, int debug) switch (ct->c_type) { case CT_MULTIPART: return list_multi (ct, toplevel, realsize, verbose, debug); - break; case CT_MESSAGE: switch (ct->c_subtype) { case MESSAGE_PARTIAL: return list_partial (ct, toplevel, realsize, verbose, debug); - break; case MESSAGE_EXTERNAL: return list_external (ct, toplevel, realsize, verbose, debug); - break; case MESSAGE_RFC822: default: return list_content (ct, toplevel, realsize, verbose, debug); - break; } - break; case CT_TEXT: case CT_AUDIO: case CT_IMAGE: case CT_VIDEO: return list_content (ct, toplevel, realsize, verbose, debug); - break; case CT_APPLICATION: return list_application (ct, toplevel, realsize, verbose, debug); - break; default: /* list_debug (ct); */ adios (NULL, "unknown content type %d", ct->c_type); - break; } return 0; /* NOT REACHED */ @@ -159,8 +151,11 @@ list_content (CT ct, int toplevel, int realsize, int verbose, int debug) char *cp, buffer[BUFSIZ]; CI ci = &ct->c_ctinfo; - printf (toplevel > 0 ? LSTFMT2a : toplevel < 0 ? "part " : " ", - atoi (r1bindex (empty (ct->c_file), '/'))); + if (toplevel > 0) + printf (LSTFMT2a, atoi (r1bindex (empty (ct->c_file), '/'))); + else + printf(toplevel < 0 ? "part " : " "); + snprintf (buffer, sizeof(buffer), "%s/%s", empty (ci->ci_type), empty (ci->ci_subtype)); printf (LSTFMT2b, empty (ct->c_partno), buffer); @@ -204,11 +199,13 @@ list_content (CT ct, int toplevel, int realsize, int verbose, int debug) printf ("\n"); if (verbose) { - char **ap, **ep; CI ci = &ct->c_ctinfo; + PM pm; - for (ap = ci->ci_attrs, ep = ci->ci_values; *ap; ap++, ep++) - printf ("\t %s=\"%s\"\n", *ap, *ep); + for (pm = ci->ci_first_pm; pm; pm = pm->pm_next) { + printf ("\t %s=\"%s\"\n", pm->pm_name, + get_param_value(pm, '?')); + } /* * If verbose, print any RFC-822 comments in the @@ -238,8 +235,8 @@ list_content (CT ct, int toplevel, int realsize, int verbose, int debug) static int list_debug (CT ct) { - char **ap, **ep; CI ci = &ct->c_ctinfo; + PM pm; fflush (stdout); fprintf (stderr, " partno \"%s\"\n", empty (ct->c_partno)); @@ -260,8 +257,9 @@ list_debug (CT ct) /* print parsed parameters attached to content type */ fprintf (stderr, " parameters\n"); - for (ap = ci->ci_attrs, ep = ci->ci_values; *ap; ap++, ep++) - fprintf (stderr, " %s=\"%s\"\n", *ap, *ep); + for (pm = ci->ci_first_pm; pm; pm = pm->pm_next) + fprintf (stderr, " %s=\"%s\"\n", pm->pm_name, + get_param_value(pm, '?')); /* print internal flags for type/subtype */ fprintf (stderr, " type 0x%x subtype 0x%x params 0x%x\n",