X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/476f7e5e6e32469a347a055922be6b3d0e45d8ba..a5aa6164d9e9c178c800187fa606f83c1bac916f:/h/prototypes.h diff --git a/h/prototypes.h b/h/prototypes.h index 97f0544e..1ff92f64 100644 --- a/h/prototypes.h +++ b/h/prototypes.h @@ -191,10 +191,32 @@ 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(); void m_unknown(m_getfld_state_t *, FILE *); int makedir (char *); char *message_id (time_t, int); +/* + * Return a MIME content-type string for the specified file. + * + * If the system supports it, will use the "file" command to determine + * the appropriate content-type. Otherwise it will try to determine the + * content-type from the suffix. If that fails, the file will be scanned + * and either assigned a MIME type of text/plain or application/octet-stream + * depending if binary content is present. + * + * Arguments: + * + * filename - The name of the file to determine the MIME type of. + * + * Returns a pointer to a content-type string (which may include MIME + * parameters, such as charset). Returns a NULL if it cannot determine + * the MIME type of the file. Returns allocated storage that must be + * free'd. + */ +char *mime_type(const char *filename); + /* * Clear the screen, using the appropriate entry from the terminfo database */ @@ -336,25 +358,37 @@ int sc_length(void); int sc_width(void); int build_form (char *, char *, int *, char *, char *, char *, char *, char *, char *); -int sendsbr (char **, int, char *, char *, struct stat *, int, char *, int); +int sendsbr (char **, int, char *, char *, struct stat *, int); 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 *); -int writeBase64 (unsigned char *, size_t, unsigned char *); -int writeBase64raw (unsigned char *, size_t, unsigned char *); /* - * prototypes to support whatnow attach + * 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 attach(char *, char *, char *, size_t, char *, size_t, int); -void clean_up_temporary_files(const char *, const char *); -char *mime_type(const char *); -char *construct_build_directive(char *, const char *, int); +int writeBase64aux(FILE *in, FILE *out, int crlf); + +int writeBase64 (unsigned char *, size_t, unsigned char *); +int writeBase64raw (unsigned char *, size_t, unsigned char *); /* * credentials management */ 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);