-
-/*
- * mhlistsbr.c -- routines to list information about the
+/* mhlistsbr.c -- routines to list information about the
* -- contents of MIME messages
*
* This code is Copyright (c) 2002, by the authors of nmh. See the
#include <h/mh.h>
#include <fcntl.h>
-#include <h/signals.h>
#include <h/mts.h>
#include <h/tws.h>
#include <h/mime.h>
#include <h/utils.h>
/* mhmisc.c */
-int part_ok (CT, int);
+int part_ok (CT);
int type_ok (CT, int);
void flush_errors (void);
#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"
/*
}
-#define empty(s) ((s) ? (s) : "")
-
/*
* Method for listing information about a simple/generic content
*/
PM pm;
if (toplevel > 0)
- printf (LSTFMT2a, atoi (r1bindex (empty (ct->c_file), '/')));
+ printf (LSTFMT2a, atoi (r1bindex (FENDNULL(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);
+ snprintf (buffer, sizeof(buffer), "%s/%s", FENDNULL(ci->ci_type),
+ FENDNULL(ci->ci_subtype));
+ if (verbose)
+ printf (LSTFMT2bv, FENDNULL(ct->c_partno), buffer);
+ else
+ printf (LSTFMT2b, FENDNULL(ct->c_partno), buffer);
if (ct->c_cesizefnx && realsize)
size = (*ct->c_cesizefnx) (ct);
char *dp;
dp = cpytrim (ct->c_descr);
- printf (LSTFMT2d1, dp);
+ if (verbose)
+ printf (LSTFMT2d1v, dp);
+ else
+ printf (LSTFMT2d1, dp);
free (dp);
}
- printf ("\n");
+ putchar('\n');
if (verbose) {
CI ci = &ct->c_ctinfo;
PM pm;
fflush (stdout);
- fprintf (stderr, " partno \"%s\"\n", empty (ct->c_partno));
+ fprintf (stderr, " partno \"%s\"\n", FENDNULL(ct->c_partno));
/* print MIME-Version line */
if (ct->c_vrsn)
fprintf (stderr, " %s:%s\n", TYPE_FIELD, ct->c_ctline);
/* print parsed elements of content type */
- fprintf (stderr, " type \"%s\"\n", empty (ci->ci_type));
- fprintf (stderr, " subtype \"%s\"\n", empty (ci->ci_subtype));
- fprintf (stderr, " comment \"%s\"\n", empty (ci->ci_comment));
- fprintf (stderr, " magic \"%s\"\n", empty (ci->ci_magic));
+ fprintf (stderr, " type \"%s\"\n", FENDNULL(ci->ci_type));
+ fprintf (stderr, " subtype \"%s\"\n", FENDNULL(ci->ci_subtype));
+ fprintf (stderr, " comment \"%s\"\n", FENDNULL(ci->ci_comment));
+ fprintf (stderr, " magic \"%s\"\n", FENDNULL(ci->ci_magic));
/* print parsed parameters attached to content type */
fprintf (stderr, " parameters\n");
ct->c_type, ct->c_subtype,
(unsigned int)(unsigned long) ct->c_ctparams);
- 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));
+ fprintf (stderr, " showproc \"%s\"\n", FENDNULL(ct->c_showproc));
+ fprintf (stderr, " termproc \"%s\"\n", FENDNULL(ct->c_termproc));
+ fprintf (stderr, " storeproc \"%s\"\n", FENDNULL(ct->c_storeproc));
/* print transfer encoding information */
if (ct->c_celine)
if (ct->c_dispo)
fprintf (stderr, " %s:%s", DISPO_FIELD, ct->c_dispo);
- fprintf(stderr, " disposition \"%s\"\n", empty (ct->c_dispo_type));
+ fprintf(stderr, " disposition \"%s\"\n", FENDNULL(ct->c_dispo_type));
fprintf(stderr, " disposition parameters\n");
for (pm = ct->c_dispo_first; pm; pm = pm->pm_next)
fprintf (stderr, " %s=\"%s\"\n", pm->pm_name,
get_param_value(pm, '?'));
fprintf (stderr, " read fp 0x%x file \"%s\" begin %ld end %ld\n",
- (unsigned int)(unsigned long) ct->c_fp, empty (ct->c_file),
+ (unsigned int)(unsigned long) ct->c_fp, FENDNULL(ct->c_file),
ct->c_begin, ct->c_end);
/* print more information about transfer encoding */
return OK;
}
-#undef empty
-
/*
* list content information for type "multipart"
for (part = m->mp_parts; part; part = part->mp_next) {
CT p = part->mp_part;
- if (part_ok (p, 1) && type_ok (p, 1))
+ if (part_ok (p) && type_ok (p, 1))
list_switch (p, 0, realsize, verbose, debug, dispo);
}
printf ("\t [message %s, part %d", p->pm_partid, p->pm_partno);
if (p->pm_maxno)
printf (" of %d", p->pm_maxno);
- printf ("]\n");
+ puts("]");
}
return OK;
printf ("\t permission=\"%s\"\n", e->eb_permission);
if (e->eb_flags == NOTOK)
- printf ("\t [service unavailable]\n");
+ puts("\t [service unavailable]");
}
fprintf (stderr, " decoded fp 0x%x file \"%s\"\n",
(unsigned int)(unsigned long) ce->ce_fp,
- ce->ce_file ? ce->ce_file : "");
+ FENDNULL(ce->ce_file));
return OK;
}