X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=h%2Fprototypes.h;h=e6e7dc14b1e71d57113876e2ae5b4281a00f4b75;hb=0595979e1f0514b3da28762f336b3b9ac9eec5c5;hp=1333a84b29a51c293901186a9ff3e8d39ea8a202;hpb=0127c00f735b9e38608676b9f7bd3c6e38a7ffb4;p=mmh diff --git a/h/prototypes.h b/h/prototypes.h index 1333a84..e6e7dc1 100644 --- a/h/prototypes.h +++ b/h/prototypes.h @@ -22,7 +22,7 @@ char *etcpath(char *); /* ** prototypes from the nmh subroutine library */ -void adios(char *, char *, ...) NORETURN; +void adios(int, char *, char *, ...) NORETURN; void admonish(char *, char *, ...); void advertise(char *, char *, char *, va_list); void advise(char *, char *, ...); @@ -38,7 +38,6 @@ void context_save(void); void cpydata(int, int, char *, char *); void cpydgst(int, int, char *, char *); int decode_rfc2047(char *, char *, size_t); -void discard(FILE *); int default_done(int); int execprog(char *, char **); int execprogl(char *, char *, ...); @@ -78,6 +77,7 @@ char *norm_charmap(char *); char *new_fs(char *, char *); int pidwait(pid_t, int); int pidstatus(int, FILE *, char *); +int pidXwait(int, char *); void print_help(char *, struct swit *, int); void print_sw(char *, struct swit *, char *, FILE *); void print_version(char *); @@ -112,6 +112,23 @@ int uprf(char *, char *); int vfgets(FILE *, char **); char *write_charset_8bit(void); +/* + * Remove quotes and quoted-pair sequences from RFC-5322 atoms. + * + * Currently the actual algorithm is simpler than it technically should + * be: any quotes are simply eaten, unless they're preceded by the escape + * character (\). This seems to be sufficient for our needs for now. + * + * Arguments: + * + * input - The input string + * output - The output string; is assumed to have at least as much + * room as the input string. At worst the output string will + * be the same size as the input string; it might be smaller. + * + */ +void unquote_string(const char *input, char *output); + int mh_strcasecmp(const char *s1, const char *s2); @@ -160,3 +177,20 @@ int is_readonly(struct msgs *); void set_readonly(struct msgs *); int other_files(struct msgs *); void set_other_files(struct msgs *); + +/* + * Encode a message header using RFC 2047 encoding. If the message contains + * no non-ASCII characters, then leave the header as-is. + * + * Arguments include: + * + * name - Message header name + * value - Message header content; must point to allocated memory + * (may be changed if encoding is necessary) + * charset - Charset used for encoding. If NULL, obtain from system + * locale. + * + * Returns 0 on success, any other value on failure. + */ + +int encode_rfc2047(const char *name, char **value, const char *charset);