From: Ken Hornstein Date: Fri, 16 May 2014 04:04:24 +0000 (-0400) Subject: Move the prototype for show_content_aux() to a common header file; it X-Git-Url: https://diplodocus.org/git/nmh/commitdiff_plain/6779979cf3a57b458d28e4d1aaac026a61d73572?ds=inline;hp=-c Move the prototype for show_content_aux() to a common header file; it 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! --- 6779979cf3a57b458d28e4d1aaac026a61d73572 diff --git a/h/mhparse.h b/h/mhparse.h index d165a63b..0b0afb0f 100644 --- a/h/mhparse.h +++ b/h/mhparse.h @@ -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 */ diff --git a/uip/mhfixmsg.c b/uip/mhfixmsg.c index d1d796c1..c93a71fd 100644 --- a/uip/mhfixmsg.c +++ b/uip/mhfixmsg.c @@ -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 diff --git a/uip/mhshowsbr.c b/uip/mhshowsbr.c index 34c1911d..33d1c09d 100644 --- a/uip/mhshowsbr.c +++ b/uip/mhshowsbr.c @@ -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); } diff --git a/uip/mhstoresbr.c b/uip/mhstoresbr.c index 78ceef52..6fb9d856 100644 --- a/uip/mhstoresbr.c +++ b/uip/mhstoresbr.c @@ -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)) ==