]> diplodocus.org Git - nmh/blobdiff - h/mhparse.h
picksbr.c: Remove some else after break in plist().
[nmh] / h / mhparse.h
index d184e530b3b14b6c9fc2cd3ab09dcfe19e99ea96..00802d1341390e2412d49a006a61c0ac1c3b9ab8 100644 (file)
@@ -1,6 +1,4 @@
-
-/*
- * mhparse.h -- definitions for parsing/building of MIME content
+/* mhparse.h -- definitions for parsing/building of MIME content
  *           -- (mhparse.c/mhbuildsbr.c)
  */
 
  *           -- (mhparse.c/mhbuildsbr.c)
  */
 
@@ -90,6 +88,26 @@ struct cefile {
  * A struct multipart contains (among other things) a linked list
  * of struct part elements, and THOSE contain a pointer to the sub-part's
  * Content structure.
  * A struct multipart contains (among other things) a linked list
  * of struct part elements, and THOSE contain a pointer to the sub-part's
  * Content structure.
+ *
+ * An extra note for message/external-body parts.  The enclosing
+ * content structure is marked as a message/external-body; the c_ctparams
+ * contains a pointer to a struct exbody, which contains a pointer to
+ * (among other things) the "real" content (e.g., application/octet-stream).
+ * The "real" content structure has the c_ctexbody pointer back to the
+ * same struct exbody sees in the enclosing content structure (the struct
+ * exbody contains parent pointers if you need to traverse up the content
+ * structure).  Hopefully this makes it clearer:
+ *
+ * Enclosing content:
+ *   Type: message/external-body
+ *   c_ctparams: pointer to "struct exbody"
+ *   c_ctexbody: NULL
+ *
+ * "Real" content:
+ *   Type: application/octet-stream (or whatever)
+ *   c_ctparams: NULL
+ *   c_ctexbody: pointer to "struct exbody"
+ *
  */
 struct Content {
     /* source (read) file */
  */
 struct Content {
     /* source (read) file */
@@ -141,7 +159,7 @@ struct Content {
     SizeCEFunc  c_cesizefnx;   /* size of decoded contents          */
 
     int        c_umask;                /* associated umask                  */
     SizeCEFunc  c_cesizefnx;   /* size of decoded contents          */
 
     int        c_umask;                /* associated umask                  */
-    int        c_rfc934;               /* rfc934 compatibility flag         */
+    int        c_rfc934;               /* RFC 934 compatibility flag        */
 
     char *c_showproc;          /* default, if not in profile        */
     char *c_termproc;          /* for charset madness...            */
 
     char *c_showproc;          /* default, if not in profile        */
     char *c_termproc;          /* for charset madness...            */
@@ -397,7 +415,7 @@ int list_content(CT ct, int toplevel, int realsize, int verbose, int debug,
                 int dispo);
 
 /*
                 int dispo);
 
 /*
- * Display content-appropriate information on MIME parts, decending recursively
+ * Display content-appropriate information on MIME parts, descending recursively
  * into multipart content if appropriate.  Uses list_content() for displaying
  * generic information.
  *
  * into multipart content if appropriate.  Uses list_content() for displaying
  * generic information.
  *