X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/b56c88e2847c582f9b18ae5bbda44f033cd49c42..75960fa3577b190e8d64a889f68f9480a372ae4b:/h/prototypes.h diff --git a/h/prototypes.h b/h/prototypes.h index eefbfec5..f8adbac5 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,11 +205,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 */ @@ -337,22 +372,27 @@ 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