Fix a zillion implicit declaration of function errors. Taken from https://sources.debian.org/patches/mpack/1.6-8.2/01-legacy.patch/ but changes not related to fixing build errors have been removed. --- part.c.orig +++ part.c @@ -27,6 +27,7 @@ */ #include +#include #include #include "part.h" @@ -58,7 +59,7 @@ /* * Close and free 'part'. */ -int part_close(struct part *part) +void part_close(struct part *part) { fclose(part->infile); if (part->buf) free(part->buf); @@ -77,8 +78,7 @@ /* * Add to 'part' the multipart boundary 'boundary'. */ -int -part_addboundary(struct part *part, char *boundary) +void part_addboundary(struct part *part, char *boundary) { /* Grow boundary array if necessary */ if (part->boundary_num == part->boundary_alloc) { @@ -165,8 +165,7 @@ * Leaves room in the input buffer to push back an additional single * character using the prot_ungetc() macro. */ -int -part_ungets(char *s, struct part *part) +void part_ungets(char *s, struct part *part) { int len = strlen(s); int i; --- decode.c.orig +++ decode.c @@ -26,8 +26,10 @@ * SOFTWARE. */ #include +#include #include #include +#include #include "xmalloc.h" #include "common.h" #include "part.h" @@ -37,6 +39,19 @@ extern FILE *os_newtypedfile(char *fname, char *contentType, int flags, params contentParams); extern FILE *os_createnewfile(char *fname); extern char *md5contextTo64(MD5_CTX *context); +extern void warn(char *s); +extern void os_perror(char *str); +extern void chat(char *s); +extern void os_donewithdir(char *dir); +extern void os_warnMD5mismatch(void); +extern void os_closetypedfile(FILE *outfile); + +extern int part_depth(struct part *part); +extern void part_ungets(char *s, struct part *part); +extern void part_close(struct part *part); +extern int part_fill(struct part *part); +extern void part_addboundary(struct part *part, char *boundary); +extern int part_readboundary(struct part *part); /* The possible content transfer encodings */ enum encoding { enc_none, enc_qp, enc_base64 }; @@ -49,6 +64,17 @@ void from64(struct part *inpart, FILE *outfile, char **digestp, int suppressCR); void fromqp(struct part *inpart, FILE *outfile, char **digestp); void fromnone(struct part *inpart, FILE *outfile, char **digestp); +int handlePartial(struct part *inpart, char *headers, params contentParams, + int extractText); +int ignoreMessage(struct part *inpart); +int handleMultipart(struct part *inpart, char *contentType, + params contentParams, int extractText); +int handleUuencode(struct part *inpart, char *subject, int extractText); +int handleText(struct part *inpart, enum encoding contentEncoding); +int saveToFile(struct part *inpart, int inAppleDouble, char *contentType, + params contentParams, enum encoding contentEncoding, + char *contentDisposition, char *contentMD5); + /* * Read and handle an RFC 822 message from the body-part 'inpart'. */ --- xmalloc.c.orig +++ xmalloc.c @@ -23,8 +23,8 @@ * SOFTWARE. */ #include +#include #include -extern char *malloc(), *realloc(); char *xmalloc (int size) { --- unixos.c.orig +++ unixos.c @@ -23,24 +23,30 @@ * SOFTWARE. */ #include +#include #include #include #include #include +#include #include +#include #include #include +#include #include "xmalloc.h" #include "common.h" #include "part.h" +extern void warn(char *s); + #ifndef MAXHOSTNAMELEN #define MAXHOSTNAMELEN 64 #endif +#ifndef errno extern int errno; -extern char *malloc(); -extern char *getenv(); +#endif int overwrite_files = 0; int didchat; --- unixunpk.c.orig +++ unixunpk.c @@ -23,17 +23,19 @@ * SOFTWARE. */ #include +#include +#include +#include #include "version.h" #include "part.h" -extern int optind; -extern char *optarg; - extern int overwrite_files; extern int didchat; int quiet; void usage(void); +int handleMessage(struct part *inpart, char *defaultContentType, + int inAppleDouble, int extractText); int main(int argc, char **argv) { --- magic.c.orig +++ magic.c @@ -23,6 +23,7 @@ * SOFTWARE. */ #include +#include /* Description of the various file formats and their magic numbers */ struct magic { --- uudecode.c.orig +++ uudecode.c @@ -23,8 +23,10 @@ * SOFTWARE. */ #include +#include #include #include +#include #include "xmalloc.h" #include "common.h" #include "part.h" @@ -32,9 +34,25 @@ extern char *os_idtodir(char *id); extern FILE *os_newtypedfile(char *fname, char *contentType, int flags, params contentParams); extern FILE *os_createnewfile(char *fname); +extern int os_binhex(struct part *inpart, int part, int nparts); +extern void os_closetypedfile(FILE *outfile); +extern void os_donewithdir(char *dir); +extern void os_perror(char *str); +extern void chat(char *s); + +extern void part_ungets(char *s, struct part *part); +extern void part_close(struct part *part); +extern int handleMessage(struct part *inpart, char *defaultContentType, + int inAppleDouble, int extractText); static FILE *startDescFile(char *fname); +static void uudecodeline(char *line, FILE *outfile); +int parseSubject(char *subject, char **fnamep, int *partp, int *npartsp); +int saveUuFile(struct part *inpart, char *fname, int part, int nparts, + char *firstline); +int descEnd(char *line); +int uudecodefiles(char *dir, int nparts); /* Length of a normal uuencoded line, including newline */ #define UULENGTH 62 @@ -826,7 +844,7 @@ /* * Decode a uuencoded line to 'outfile' */ -int uudecodeline(char *line, FILE *outfile) +static void uudecodeline(char *line, FILE *outfile) { int c, len; --- md5.h.orig +++ md5.h @@ -34,6 +34,8 @@ #define PROTOTYPES 0 #endif +#include + /* POINTER defines a generic pointer type */ typedef unsigned char *POINTER; --- unixpk.c.orig +++ unixpk.c @@ -23,23 +23,27 @@ * SOFTWARE. */ #include +#include #include #include +#include +#include +#include +#include #include "common.h" #include "version.h" #include "xmalloc.h" #define MAXADDRESS 100 -extern char *getenv(); - -extern int errno; -extern int optind; -extern char *optarg; void usage(void); void sendmail(FILE *infile, char **addr, int start); void inews(FILE *infile); +void os_perror(char *str); +int encode(FILE *infile, FILE *applefile, char *fname, FILE *descfile, + char *subject, char *headers, long int maxsize, + char *typeoverride, char *outfname); int main(int argc, char **argv) { --- encode.c.orig +++ encode.c @@ -23,12 +23,15 @@ * SOFTWARE. */ #include +#include #include extern char *magic_look(FILE *infile); extern char *os_genid(void); extern FILE *os_createnewfile(char *fname); extern char *md5digest(FILE *infile, long int *len); +extern void os_perror(char *str); +extern int to64(FILE *infile, FILE *outfile, long int limit); #define NUMREFERENCES 4