show: Print type of MIME part instead of error message if not displayable.
authormarkus schnalke <meillo@marmaro.de>
Sat, 7 Jul 2012 13:30:29 +0000 (15:30 +0200)
committermarkus schnalke <meillo@marmaro.de>
Sat, 7 Jul 2012 13:30:29 +0000 (15:30 +0200)
A further step in the general rework of show/mhshow. Print less error
messages. Not being able to directly display some attachment is no
exceptional event, but quite normal. Therefore, no error message should
be printed but an information message that there is a MIME part.
Printing to stdout makes the message to be integrated into the normal
output.
There's more rework of show needed.

uip/mhshowsbr.c

index b5ecd09..71c1699 100644 (file)
@@ -248,7 +248,7 @@ show_content(CT ct, int alternate)
 
        /* complain if we are not a part of a multipart/alternative */
        if (!alternate)
-               content_error(NULL, ct, "don't know how to display content");
+               return show_content_aux(ct, alternate, "%l", NULL);
 
        return NOTOK;
 }
@@ -870,7 +870,7 @@ show_message_rfc822(CT ct, int alternate)
 
        /* complain if we are not a part of a multipart/alternative */
        if (!alternate)
-               content_error(NULL, ct, "don't know how to display content");
+               return show_content_aux(ct, alternate, "%l", NULL);
 
        return NOTOK;
 }
@@ -883,8 +883,8 @@ show_message_rfc822(CT ct, int alternate)
 static int
 show_partial(CT ct, int alternate)
 {
-       content_error(NULL, ct,
-               "in order to display this message, you must reassemble it");
+       show_content_aux(ct, alternate, "%l", NULL);
+       puts("in order to display this message, you must reassemble it");
        return NOTOK;
 }
 
@@ -900,11 +900,11 @@ show_external(CT ct, int alternate)
        FILE *fp;
        char buf[BUFSIZ];
 
-       msg = add("You need to fetch the contents yourself:", NULL);
+       msg = add("You need to fetch the contents yourself:\n", NULL);
        ap = ct->c_ctinfo.ci_attrs;
        ep = ct->c_ctinfo.ci_values;
        for (; *ap; ap++, ep++) {
-               msg = add(concat("\n\t", *ap, ": ", *ep, NULL), msg);
+               msg = add(concat("\t", *ap, ": ", *ep, NULL), msg);
        }
        if (!(fp = fopen(ct->c_file, "r"))) {
                adios(ct->c_file, "unable to open");
@@ -915,9 +915,13 @@ show_external(CT ct, int alternate)
                        adios(ct->c_file, "unable to read");
                }
                *strchr(buf, '\n') = '\0';
-               msg = add(concat("\n\t", buf, NULL), msg);
+               if (!*buf) {
+                       continue;  /* skip empty lines */
+               }
+               msg = add(concat("\t", buf, "\n", NULL), msg);
        }
        fclose(fp);
-       content_error(NULL, ct, msg);
+       show_content_aux(ct, alternate, "%l", NULL);
+       fputs(msg, stdout);
        return OK;
 }