]> diplodocus.org Git - nmh/blobdiff - uip/mhlistsbr.c
Added -convertargs switch to repl(1), to pass arguments to programs
[nmh] / uip / mhlistsbr.c
index d2d394fad6651e7a08e9700147244836a28b154b..309357b14afc9d434161645136ae807bac287bc9 100644 (file)
@@ -40,12 +40,14 @@ static int list_encoding (CT);
 #define        LSTFMT1         "%4s %-5s %-24s %5s %s\n"
 #define        LSTFMT2a        "%4d "
 #define        LSTFMT2b        "%-5s %-24.24s "
+#define        LSTFMT2bv       "%-5s %-24s "
 #define        LSTFMT2c1       "%5lu"
 #define        LSTFMT2c2       "%4lu%c"
 #define        LSTFMT2c3       "huge "
 #define        LSTFMT2c4       "     "
 #define        LSTFMT2d1       " %.36s"
-#define        LSTFMT2d2       "\t     %-65.65s\n"
+#define        LSTFMT2d1v      " %s"
+#define        LSTFMT2d2       "\t     %-65s\n"
 
 
 /*
@@ -125,12 +127,9 @@ list_switch (CT ct, int toplevel, int realsize, int verbose, int debug,
            return list_content (ct, toplevel, realsize, verbose, debug, dispo);
 
        case CT_APPLICATION:
+       default:
            return list_application (ct, toplevel, realsize, verbose, debug,
                                     dispo);
-
-       default:
-           /* list_debug (ct); */
-           adios (NULL, "unknown content type %d", ct->c_type);
     }
 
     return 0;  /* NOT REACHED */
@@ -159,7 +158,10 @@ list_content (CT ct, int toplevel, int realsize, int verbose, int debug,
 
     snprintf (buffer, sizeof(buffer), "%s/%s", empty (ci->ci_type),
                empty (ci->ci_subtype));
-    printf (LSTFMT2b, empty (ct->c_partno), buffer);
+    if (verbose)
+       printf (LSTFMT2bv, empty (ct->c_partno), buffer);
+    else
+       printf (LSTFMT2b, empty (ct->c_partno), buffer);
 
     if (ct->c_cesizefnx && realsize)
        size = (*ct->c_cesizefnx) (ct);
@@ -167,7 +169,7 @@ list_content (CT ct, int toplevel, int realsize, int verbose, int debug,
        size = ct->c_end - ct->c_begin;
 
     /* find correct scale for size (Kilo/Mega/Giga/Tera) */
-    for (cp = " KMGT"; size > 9999; size >>= 10)
+    for (cp = " KMGT"; size > 9999; size /= 1000)
        if (!*++cp)
            break;
 
@@ -193,7 +195,10 @@ list_content (CT ct, int toplevel, int realsize, int verbose, int debug,
        char *dp;
 
        dp = cpytrim (ct->c_descr);
-       printf (LSTFMT2d1, dp);
+       if (verbose)
+           printf (LSTFMT2d1v, dp);
+       else
+           printf (LSTFMT2d1, dp);
        free (dp);
     }