]> diplodocus.org Git - nmh/commitdiff
Move the prototype for show_content_aux() to a common header file; it
authorKen Hornstein <kenh@pobox.com>
Fri, 16 May 2014 04:04:24 +0000 (00:04 -0400)
committerKen Hornstein <kenh@pobox.com>
Fri, 16 May 2014 04:04:24 +0000 (00:04 -0400)
got an extra argument recently but none of the other users of it
noticed.

When fixing this I discovered that the usage of show_content_aux()
by mhstoresbr.c was wrong; the prototype had an extra argument in
the middle of it.  Apparently this has been broken for 15 years!

h/mhparse.h
uip/mhfixmsg.c
uip/mhshowsbr.c
uip/mhstoresbr.c

index d165a63bf33250665716083033efc0e0a38288b7..0b0afb0f0f25c5f98616db0de415f13ea43cf3ef 100644 (file)
@@ -501,4 +501,29 @@ char *get_param_value(PM pm, char replace);
 void show_all_messages(CT *cts, int concat, int textonly, int inlineonly,
                       char *markerform);
 
+/*
+ * Display (or store) a single MIME part using the specified command
+ *
+ * Arguments are:
+ *
+ * ct          - The Content structure of the MIME part we wish to display
+ * alternate   - Set this to true if this is one part of a MIME
+ *               multipart/alternative part.  Will suppress some errors and
+ *               will cause the function to return DONE instead of OK on
+ *               success.
+ * cp          - The command string to execute.  Will be run through the
+ *               parser for %-escapes as described in mhshow(1).
+ * cracked     - If set, chdir() to this directory before executing the
+ *               command in "cp".  Only used by mhstore(1).
+ * fmt         - A series of mh-format(5) instructions to execute if the
+ *               command string indicates a marker is desired.  Can be NULL.
+ *
+ * Returns NOTOK if we could not display the part, DONE if alternate was
+ * set and we could display the part, and OK if alternate was not set and
+ * we could display the part.
+ */
+struct format;
+int show_content_aux(CT ct, int alternate, char *cp, char *cracked,
+                    struct format *fmt);
+
 extern int checksw;    /* Add Content-MD5 field */
index d1d796c1762412856c4dc623ac7b0029e8a828d2..c93a71fd6911c22286444ef329da1f4ab9c88f37 100644 (file)
@@ -53,15 +53,11 @@ int debugsw; /* Needed by mhparse.c. */
 extern int skip_mp_cte_check;                 /* flag to InitMultiPart */
 extern int suppress_bogus_mp_content_warning; /* flag to InitMultiPart */
 extern int bogus_mp_content;                  /* flag from InitMultiPart */
-CT parse_mime (char *);
 void reverse_parts (CT);
 
 /* mhoutsbr.c */
 int output_message (CT, char *);
 
-/* mhshowsbr.c */
-int show_content_aux (CT, int, char *, char *);
-
 /* mhmisc.c */
 void flush_errors (void);
 
@@ -1128,7 +1124,7 @@ reformat_part (CT ct, char *file, char *type, char *subtype, int c_type) {
     free (cp);
 
     cp = concat (cf, " >", file, NULL);
-    status = show_content_aux (ct, 0, cp, NULL);
+    status = show_content_aux (ct, 0, cp, NULL, NULL);
     free (cp);
 
     /* Unlink decoded content tmp file and free its filename to avoid
index 34c1911d943405892ba6bd6bfd7f39355337b9c5..33d1c09d615e18712aabe1425927639c11f74262 100644 (file)
@@ -39,11 +39,6 @@ int type_ok (CT, int);
 void content_error (char *, CT, char *, ...);
 void flush_errors (void);
 
-/*
- * prototypes
- */
-int show_content_aux (CT, int, char *, char *, struct format *fmt);
-
 /*
  * static prototypes
  */
@@ -409,7 +404,7 @@ show_content_aux2 (CT ct, int alternate, char *cracked, char *buffer,
            fprintf (stderr, " using command %s\n", buffer);
     }
 
-    if (xlist) {
+    if (xlist && fmt) {
        output_marker(ct, fmt, 0);
     }
 
index 78ceef52c2844a0103c77413370258882c8dfef3..6fb9d85684b7614d05807ea8266b8dd36c9f7228 100644 (file)
@@ -82,9 +82,6 @@ int part_ok (CT, int);
 int type_ok (CT, int);
 void flush_errors (void);
 
-/* mhshowsbr.c */
-int show_content_aux (CT, int, int, char *, char *);
-
 /*
  * prototypes
  */
@@ -623,7 +620,7 @@ store_content (CT ct, CT p, mhstoreinfo_t info)
         * content to standard input of a command and return.
         */
        if (buffer[0] == '|' || buffer[0] == '!')
-           return show_content_aux (ct, 1, 0, buffer + 1, info->dir);
+           return show_content_aux (ct, 0, buffer + 1, info->dir, NULL);
 
         /* record the filename */
        if ((ct->c_storage = clobber_check (add (buffer, NULL), info)) ==