]> diplodocus.org Git - nmh/blobdiff - h/prototypes.h
Added NMH_ADDL_CPPFLAGS macro in new m4/cppflags.m4, to remove
[nmh] / h / prototypes.h
index 4c5c3bb12cd61b7b4f9dbf66da511e476b4f23dd..5c1b5cf157e6f59161b0c10e249fd097bfbcab5f 100644 (file)
@@ -18,15 +18,15 @@ char *etcpath(char *);
 struct msgs_array;
 
 void add_profile_entry (const char *, const char *);
 struct msgs_array;
 
 void add_profile_entry (const char *, const char *);
-void adios (char *, char *, ...) NORETURN;
+void adios (const char *, const char *, ...) NORETURN;
 void admonish (char *, char *, ...);
 void admonish (char *, char *, ...);
-void advertise (char *, char *, char *, va_list);
-void advise (char *, char *, ...);
+void advertise (const char *, char *, const char *, va_list);
+void advise (const char *, const char *, ...);
 char **argsplit (char *, char **, int *);
 void argsplit_msgarg (struct msgs_array *, char *, char **);
 void argsplit_insert (struct msgs_array *, char *, char **);
 void arglist_free (char *, char **);
 char **argsplit (char *, char **, int *);
 void argsplit_msgarg (struct msgs_array *, char *, char **);
 void argsplit_insert (struct msgs_array *, char *, char **);
 void arglist_free (char *, char **);
-void ambigsw (char *, struct swit *);
+void ambigsw (const char *, const struct swit *);
 int atooi(char *);
 char **brkstring (char *, char *, char *);
 
 int atooi(char *);
 char **brkstring (char *, char *, char *);
 
@@ -48,15 +48,17 @@ char *concat (const char *, ...);
 int context_del (char *);
 char *context_find (const char *);
 char *context_find_by_type (const char *, const char *, const char *);
 int context_del (char *);
 char *context_find (const char *);
 char *context_find_by_type (const char *, const char *, const char *);
+int context_find_prefix(const char *);
 int context_foil (char *);
 void context_read (void);
 void context_replace (char *, char *);
 void context_save (void);
 char *copy (const char *, char *);
 char **copyip (char **, char **, int);
 int context_foil (char *);
 void context_read (void);
 void context_replace (char *, char *);
 void context_save (void);
 char *copy (const char *, char *);
 char **copyip (char **, char **, int);
-void cpydata (int, int, char *, char *);
+void cpydata (int, int, const char *, const char *);
 void cpydgst (int, int, char *, char *);
 char *cpytrim (const char *);
 void cpydgst (int, int, char *, char *);
 char *cpytrim (const char *);
+char *rtrim (char *);
 int decode_rfc2047 (char *, char *, size_t);
 void discard (FILE *);
 char *upcase (const char *);
 int decode_rfc2047 (char *, char *, size_t);
 void discard (FILE *);
 char *upcase (const char *);
@@ -117,12 +119,44 @@ int folder_pack (struct msgs **, int);
 struct msgs *folder_read (char *name, int lockflag);
 
 struct msgs *folder_realloc (struct msgs *, int, int);
 struct msgs *folder_read (char *name, int lockflag);
 
 struct msgs *folder_realloc (struct msgs *, int, int);
-int gans (char *, struct swit *);
-char **getans (char *, struct swit *);
+
+/*
+ * Flush standard output, read a line from standard input into a static buffer,
+ * zero out the newline, and return a pointer to the buffer.
+ * On error, return NULL.
+ */
+const char *read_line(void);
+
+/*
+ * Print null-terminated PROMPT to and flush standard output.  Read answers from
+ * standard input until one matches an entry in SWITCHES.  When one matches,
+ * return its swret field.  Return 0 on EOF.
+ */
+int read_switch(const char *PROMPT, const struct swit *SWITCHES);
+
+/*
+ * If standard input is not a tty, return 1 without printing anything.  Else,
+ * print null-terminated PROMPT to and flush standard output.  Read answers from
+ * standard input until one is "yes" or "no", returning 1 for "yes" and 0 for
+ * "no".  Also return 0 on EOF.
+ */
+int read_yes_or_no_if_tty(const char *PROMPT);
+
+/*
+ * Print null-terminated PROMPT to and flush standard output.  Read multi-word
+ * answers from standard input until a first word matches an entry in SWITCHES.
+ * When one matches, return a pointer to an array of pointers to the words.
+ * Return NULL on EOF, interrupt, or other error.
+ */
+char **read_switch_multiword(const char *PROMPT, const struct swit *SWITCHES);
+
+/*
+ * Same as read_switch_multiword but using readline(3) for input.
+ */
 #ifdef READLINE_SUPPORT
 #ifdef READLINE_SUPPORT
-char **getans_via_readline (char *, struct swit *);
+char **read_switch_multiword_via_readline (char *, struct swit *);
 #endif /* READLINE_SUPPORT */
 #endif /* READLINE_SUPPORT */
-int getanswer (char *);
+
 char **getarguments (char *, int, char **, int);
 
 /*
 char **getarguments (char *, int, char **, int);
 
 /*
@@ -211,7 +245,7 @@ int lkopendata(const char *, int, mode_t, int *);
 FILE *lkfopenspool(const char *, const char *);
 int lkopenspool(const char *, int, mode_t, int *);
 int m_atoi (char *);
 FILE *lkfopenspool(const char *, const char *);
 int lkopenspool(const char *, int, mode_t, int *);
 int m_atoi (char *);
-char *m_backup (char *);
+char *m_backup (const char *);
 int m_convert (struct msgs *, char *);
 char *m_draft (char *, char *, int, int *);
 void m_getfld_state_reset (m_getfld_state_t *);
 int m_convert (struct msgs *, char *);
 char *m_draft (char *, char *, int, int *);
 void m_getfld_state_reset (m_getfld_state_t *);
@@ -246,7 +280,7 @@ void m_popen(char *name, int savestdout);
 void m_pclose(void);
 
 void m_unknown(m_getfld_state_t *, FILE *);
 void m_pclose(void);
 
 void m_unknown(m_getfld_state_t *, FILE *);
-int makedir (char *);
+int makedir (const char *);
 char *message_id (time_t, int);
 
 /*
 char *message_id (time_t, int);
 
 /*
@@ -281,12 +315,12 @@ int pidwait (pid_t, int);
 int pidstatus (int, FILE *, char *);
 char *pluspath(char *);
 void print_help (char *, struct swit *, int);
 int pidstatus (int, FILE *, char *);
 char *pluspath(char *);
 void print_help (char *, struct swit *, int);
-void print_sw (char *, struct swit *, char *, FILE *);
+void print_sw (const char *, const struct swit *, char *, FILE *);
 void print_version (char *);
 void push (void);
 char *pwd (void);
 char *r1bindex(char *, int);
 void print_version (char *);
 void push (void);
 char *pwd (void);
 char *r1bindex(char *, int);
-void readconfig (struct node **, FILE *, char *, int);
+void readconfig (struct node **, FILE *, const char *, int);
 int refile (char **, char *);
 void ruserpass (char *, char **, char **);
 int remdir (char *);
 int refile (char **, char *);
 void ruserpass (char *, char **, char **);
 int remdir (char *);
@@ -327,7 +361,7 @@ void seq_setcur (struct msgs *, int);
 void seq_setprev (struct msgs *);
 void seq_setunseen (struct msgs *, int);
 int showfile (char **, char *);
 void seq_setprev (struct msgs *);
 void seq_setunseen (struct msgs *, int);
 int showfile (char **, char *);
-int smatch(char *, struct swit *);
+int smatch(const char *, const struct swit *);
 
 /*
  * Convert a set of bit flags to printable format.
 
 /*
  * Convert a set of bit flags to printable format.
@@ -362,7 +396,7 @@ int smatch(char *, struct swit *);
  * from least significant bit to most significant.
  */
 char *snprintb (char *buffer, size_t size, unsigned flags, char *bitfield);
  * from least significant bit to most significant.
  */
 char *snprintb (char *buffer, size_t size, unsigned flags, char *bitfield);
-int ssequal (char *, char *);
+int ssequal (const char *, const char *);
 int stringdex (char *, char *);
 char *trimcpy (char *);
 int unputenv (char *);
 int stringdex (char *, char *);
 char *trimcpy (char *);
 int unputenv (char *);
@@ -383,7 +417,7 @@ int unputenv (char *);
  *
  */
 void unquote_string(const char *input, char *output);
  *
  */
 void unquote_string(const char *input, char *output);
-int uprf (char *, char *);
+int uprf (const char *, const char *);
 int vfgets (FILE *, char **);
 
 /*
 int vfgets (FILE *, char **);
 
 /*
@@ -417,7 +451,7 @@ int sc_length(void);
 int sc_width(void);
 int build_form (char *, char *, int *, char *, char *, char *, char *,
                char *, char *);
 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);
+int sendsbr (char **, int, char *, char *, struct stat *, int, const char *);
 int SOprintf (char *, ...);
 int what_now (char *, int, int, char *, char *,
        int, struct msgs *, char *, int, char *, int);
 int SOprintf (char *, ...);
 int what_now (char *, int, int, char *, char *,
        int, struct msgs *, char *, int, char *, int);
@@ -439,6 +473,17 @@ int writeBase64aux(FILE *in, FILE *out, int crlf);
 int writeBase64 (unsigned char *, size_t, unsigned char *);
 int writeBase64raw (unsigned char *, size_t, unsigned char *);
 
 int writeBase64 (unsigned char *, size_t, unsigned char *);
 int writeBase64raw (unsigned char *, size_t, unsigned char *);
 
+/*
+ * first argument:  the string to be decoded
+ * second argument:  the decoded bytes
+ * third argument:  number of decoded bytes
+ * fourth argument:   non-zero for text content, and for which CR's should be skipped
+ * fifth argument:  for an MD5 digest, it can be null
+ */
+int decodeBase64 (const char *, const char **, size_t *, int, unsigned char *);
+
+void hexify (const unsigned char *, size_t, char **);
+
 /*
  * credentials management
  */
 /*
  * credentials management
  */