/*
** 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 *, ...);
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 *, ...);
char *expandfol(char *);
char *expanddir(char *);
int ext_hook(char *, char *, 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 *);
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);
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);