X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/ea855e72d026c72658d43f993fc62cfcf2de2ca3..252f672ba218d1ed1f5018844dd007b5d2e6a860:/uip/mhshowsbr.c diff --git a/uip/mhshowsbr.c b/uip/mhshowsbr.c index 187f9156..34c1911d 100644 --- a/uip/mhshowsbr.c +++ b/uip/mhshowsbr.c @@ -274,10 +274,8 @@ show_switch (CT ct, int alternate, int concatsw, int textonly, int inlineonly, case CT_IMAGE: case CT_VIDEO: case CT_APPLICATION: - return show_content (ct, alternate, textonly, inlineonly, fmt); - default: - adios (NULL, "unknown content type %d", ct->c_type); + return show_content (ct, alternate, textonly, inlineonly, fmt); } return 0; /* NOT REACHED */ @@ -1027,19 +1025,7 @@ convert_charset (CT ct, char *dest_charset, int *message_mods) { char *src_charset = content_charset (ct); int status = OK; - /* norm_charmap() is case sensitive. */ - char *src_charset_u = upcase (src_charset); - char *dest_charset_u = upcase (dest_charset); - char *src_charset_n = getcpy (norm_charmap (src_charset)); - char *dest_charset_n = getcpy (norm_charmap (dest_charset)); - int different_charsets = strcmp (src_charset_n, dest_charset_n); - - free (dest_charset_n); - free (src_charset_n); - free (dest_charset_u); - free (src_charset_u); - - if (different_charsets) { + if (strcasecmp (src_charset, dest_charset)) { #ifdef HAVE_ICONV iconv_t conv_desc = NULL; char *dest; @@ -1234,9 +1220,11 @@ convert_content_charset (CT ct, char **file) { * Compile our format string and save any parameters we care about. */ -#define DEFAULT_MARKER "[ part %{part} - %{content-type} - %<{description}" \ - "%{description}%?{cdispo-filename}%{cdispo-filename}" \ - "%|%{ctype-name}%> %<(unseen)\\(suppressed\\)%> ]" +#define DEFAULT_MARKER "[ part %{part} - %{content-type} - " \ + "%<{description}%{description}" \ + "%?{cdispo-filename}%{cdispo-filename}" \ + "%|%{ctype-name}%> " \ + "%(kilo(size))B %<(unseen)\\(suppressed\\)%> ]" static struct format * compile_marker(char *markerform) @@ -1301,6 +1289,7 @@ output_marker(CT ct, struct format *fmt, int hidden) { char outbuf[BUFSIZ]; struct param_comp_list *pcentry; + int partsize; int dat[5]; /* @@ -1334,11 +1323,18 @@ output_marker(CT ct, struct format *fmt, int hidden) pcentry->param, '?', 0); } + if (ct->c_cesizefnx) + partsize = (*ct->c_cesizefnx) (ct); + else + partsize = ct->c_end - ct->c_begin; + /* make the part's hidden aspect available by overloading the - * %(unseen) function. see comments in h/fmt_scan.h. + * %(unseen) function. make the part's size available via %(size). + * see comments in h/fmt_scan.h. */ - dat[0] = dat[1] = dat[2] = dat[3] = 0; + dat[2] = partsize; dat[4] = hidden; + dat[0] = dat[1] = dat[3] = 0; fmt_scan(fmt, outbuf, sizeof(outbuf), sizeof(outbuf), dat, NULL);