X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/71458b3b2492943349f7693a46792756d5013c69..e6ddebc23e12a646efed6ef7f1e785497beb0bc2:/h/prototypes.h diff --git a/h/prototypes.h b/h/prototypes.h index a4184312..7a4f8a38 100644 --- a/h/prototypes.h +++ b/h/prototypes.h @@ -46,6 +46,20 @@ void cpydgst (int, int, char *, char *); char *cpytrim (const char *); int decode_rfc2047 (char *, char *, size_t); void discard (FILE *); +char *upcase (const char *); + +/* + * Decode two characters into their quoted-printable representation. + * + * Arguments are: + * + * byte1 - First character of Q-P representation + * byte2 - Second character of Q-P representation + * + * Returns the decoded value, -1 if the conversion failed. + */ +int decode_qp(unsigned char byte1, unsigned char byte2); + int default_done (int); /* @@ -191,6 +205,25 @@ int m_putenv (char *, char *); int m_rand (unsigned char *, size_t); char *m_mktemp(const char *, int *, FILE **); char *m_mktemp2(const char *, const char *, int *, FILE **); +char *m_mktemps(const char *pfx, const char *suffix, int *, FILE **); +char *get_temp_dir(); + +/* + * Create a subprocess and redirect our standard output to it. + * + * Arguments are: + * + * name - Name of process to create + * savestdout - If true, will save the current stdout file descriptor and + * m_pclose() will close it at the appropriate time. + */ +void m_popen(char *name, int savestdout); + +/* + * Wait for the last process opened by m_popen(). + */ +void m_pclose(void); + void m_unknown(m_getfld_state_t *, FILE *); int makedir (char *); char *message_id (time_t, int); @@ -361,7 +394,20 @@ int SOprintf (char *, ...); int what_now (char *, int, int, char *, char *, int, struct msgs *, char *, int, char *, int); int WhatNow(int, char **); -int writeBase64aux(FILE *, FILE *); + +/* + * Copy data from one file to another, converting to base64-encoding. + * + * Arguments include: + * + * in - Input filehandle (unencoded data) + * out - Output filename (base64-encoded data) + * crlf - If set, output encoded CRLF for every LF on input. + * + * Returns OK on success, NOTOK otherwise. + */ +int writeBase64aux(FILE *in, FILE *out, int crlf); + int writeBase64 (unsigned char *, size_t, unsigned char *); int writeBase64raw (unsigned char *, size_t, unsigned char *); @@ -370,3 +416,10 @@ int writeBase64raw (unsigned char *, size_t, unsigned char *); */ void init_credentials_file (); int nmh_get_credentials (char *, char *, int, nmh_creds_t); + +/* + * temporary file management + */ +int nmh_init(const char *argv0, int read_context); +int m_unlink(const char *); +void unregister_for_removal(int remove_files);