#include <h/signals.h>
#include <errno.h>
#include <signal.h>
-#include <h/mts.h>
#include <h/tws.h>
#include <h/mime.h>
#include <h/mhparse.h>
static int list_multi(CT, int, int, int, int);
static int list_partial(CT, int, int, int, int);
static int list_external(CT, int, int, int, int);
-static int list_application(CT, int, int, int, int);
static int list_encoding(CT);
/*
** Top level entry point to list group of messages
*/
-
void
list_all_messages(CT *cts, int headers, int realsize, int verbose, int debug)
{
/*
** Entry point to list a single message
*/
-
static void
list_single_message(CT ct, int realsize, int verbose, int debug)
{
/*
** Primary switching routine to list information about a content
*/
-
int
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);
+ 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 CT_APPLICATION:
- return list_application(ct, toplevel, realsize,
- verbose, debug);
+ case MESSAGE_EXTERNAL:
+ return list_external(ct, toplevel, realsize, verbose,
+ debug);
break;
+ case MESSAGE_RFC822:
default:
- /* list_debug (ct); */
- adios(NULL, "unknown content type %d", ct->c_type);
+ return list_content(ct, toplevel, realsize, verbose,
+ debug);
break;
+ }
+ break;
+
+ case CT_TEXT:
+ case CT_AUDIO:
+ case CT_IMAGE:
+ case CT_VIDEO:
+ case CT_APPLICATION:
+ return list_content(ct, toplevel, realsize, verbose, debug);
+ break;
+
+ default:
+ /* list_debug (ct); */
+ adios(NULL, "unknown content type %d", ct->c_type);
+ break;
}
return 0; /* NOT REACHED */
/*
** Method for listing information about a simple/generic content
*/
-
int
list_content(CT ct, int toplevel, int realsize, int verbose, int debug)
{
/* print size of this body part */
switch (*cp) {
- case ' ':
- if (size > 0 || ct->c_encoding != CE_EXTERNAL)
- printf(LSTFMT2c1, size);
- else
- printf(LSTFMT2c4);
- break;
-
- default:
- printf(LSTFMT2c2, size, *cp);
- break;
-
- case '\0':
- printf(LSTFMT2c3);
+ case ' ':
+ if (size > 0 || ct->c_encoding != CE_EXTERNAL)
+ printf(LSTFMT2c1, size);
+ else
+ printf(LSTFMT2c4);
+ break;
+
+ default:
+ printf(LSTFMT2c2, size, *cp);
+ break;
+
+ case '\0':
+ printf(LSTFMT2c3);
}
/* print Content-Description */
printf("\n");
- /*
- ** If verbose, print any RFC-822 comments in the
- ** Content-Type line.
- */
- if (verbose && ci->ci_comment) {
- char *dp;
+ if (verbose) {
+ char **ap, **ep;
+ CI ci = &ct->c_ctinfo;
- dp = trimcpy(cp = getcpy(ci->ci_comment));
- free(cp);
- snprintf(buffer, sizeof(buffer), "(%s)", dp);
- free(dp);
- printf(LSTFMT2d2, buffer);
+ for (ap = ci->ci_attrs, ep = ci->ci_values; *ap; ap++, ep++) {
+ printf("\t %s=\"%s\"\n", *ap, *ep);
+ }
+
+ /*
+ ** If verbose, print any RFC-822 comments in the
+ ** Content-Type line.
+ */
+ if (ci->ci_comment) {
+ char *dp;
+
+ dp = trimcpy(cp = add(ci->ci_comment, NULL));
+ free (cp);
+ snprintf(buffer, sizeof(buffer), "(%s)", dp);
+ free(dp);
+ printf(LSTFMT2d2, buffer);
+ }
}
if (debug)
/*
** Print debugging information about a content
*/
-
static int
list_debug(CT ct)
{
/*
** list content information for type "multipart"
*/
-
static int
list_multi(CT ct, int toplevel, int realsize, int verbose, int debug)
{
/*
** list content information for type "message/partial"
*/
-
static int
list_partial(CT ct, int toplevel, int realsize, int verbose, int debug)
{
/*
** list content information for type "message/external"
*/
-
static int
list_external(CT ct, int toplevel, int realsize, int verbose, int debug)
{
/*
-** list content information for type "application"
-*/
-
-static int
-list_application(CT ct, int toplevel, int realsize, int verbose, int debug)
-{
- list_content(ct, toplevel, realsize, verbose, debug);
- if (verbose) {
- char **ap, **ep;
- CI ci = &ct->c_ctinfo;
-
- for (ap = ci->ci_attrs, ep = ci->ci_values; *ap; ap++, ep++)
- printf("\t %s=\"%s\"\n", *ap, *ep);
- }
-
- return OK;
-}
-
-
-/*
** list information about the Content-Transfer-Encoding
** used by a content.
*/
-
static int
list_encoding(CT ct)
{