Rocco Rutte:
[apps/madmutt.git] / protos.h
index f796c17..2f375c2 100644 (file)
--- a/protos.h
+++ b/protos.h
@@ -1,19 +1,10 @@
 /*
+ * Copyright notice from original mutt:
  * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>
- * 
- *     This program is free software; you can redistribute it and/or modify
- *     it under the terms of the GNU General Public License as published by
- *     the Free Software Foundation; either version 2 of the License, or
- *     (at your option) any later version.
- * 
- *     This program is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- * 
- *     You should have received a copy of the GNU General Public License
- *     along with this program; if not, write to the Free Software
- *     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ *
+ * This file is part of mutt-ng, see http://www.muttng.org/.
+ * It's licensed under the GNU General Public License,
+ * please see the file GPL in the top level source directory.
  */
 
 #ifdef HAVE_CONFIG_H
 #elif HAVE_INTTYPES_H
 #include <inttypes.h>
 #endif
-#include "mbyte.h"
 
-#ifdef DEBUG
-#define dprint(N,X) do { if(debuglevel>=N) fprintf X; } while (0)
-#else
-#define dprint(N,X)
-#endif
+#include "mbyte.h"
 
 #define MoreArgs(p) (*p->dptr && *p->dptr != ';' && *p->dptr != '#')
 
 void _mutt_make_string (char *, size_t, const char *, CONTEXT *,
                         HEADER *, format_flag);
 
-int mutt_extract_token (BUFFER *, BUFFER *, int);
-BUFFER *mutt_buffer_init (BUFFER *);
-BUFFER *mutt_buffer_from (BUFFER *, char *);
-void mutt_buffer_free (BUFFER **);
-void mutt_buffer_add (BUFFER *, const char *, size_t);
-void mutt_buffer_addstr (BUFFER *, const char *);
-void mutt_buffer_addch (BUFFER *, char);
-
 #define mutt_system(x) _mutt_system(x,0)
 int _mutt_system (const char *, int);
 
@@ -64,10 +42,10 @@ int _mutt_aside_thread (HEADER *, short, short);
 int _mutt_traverse_thread (CONTEXT * ctx, HEADER * hdr, int flag);
 
 
-#define mutt_new_parameter() safe_calloc (1, sizeof (PARAMETER))
-#define mutt_new_header() safe_calloc (1, sizeof (HEADER))
-#define mutt_new_envelope() safe_calloc (1, sizeof (ENVELOPE))
-#define mutt_new_enter_state() safe_calloc (1, sizeof (ENTER_STATE))
+#define mutt_new_parameter() mem_calloc (1, sizeof (PARAMETER))
+#define mutt_new_header() mem_calloc (1, sizeof (HEADER))
+#define mutt_new_envelope() mem_calloc (1, sizeof (ENVELOPE))
+#define mutt_new_enter_state() mem_calloc (1, sizeof (ENTER_STATE))
 
 typedef const char *format_t (char *, size_t, char, const char *,
                               const char *, const char *, const char *,
@@ -88,10 +66,7 @@ int query_quadoption (int, const char *);
 int quadoption (int);
 
 ADDRESS *mutt_default_from (void);
-ADDRESS *mutt_get_address (ENVELOPE *, char **);
-ADDRESS *mutt_lookup_alias (const char *s);
 ADDRESS *mutt_remove_duplicates (ADDRESS *);
-ADDRESS *mutt_expand_aliases (ADDRESS *);
 ADDRESS *mutt_parse_adrlist (ADDRESS *, const char *);
 
 BODY *mutt_make_file_attach (const char *);
@@ -114,6 +89,13 @@ LIST *mutt_parse_references (char *, int);
 ENVELOPE *mutt_read_rfc822_header (FILE *, HEADER *, short, short);
 HEADER *mutt_dup_header (HEADER *);
 
+int mutt_cmp_header (const HEADER*, const HEADER*);
+int mutt_cmp_addr (const ADDRESS * a, const ADDRESS * b);
+int mutt_cmp_list (const LIST * a, const LIST * b);
+int mutt_cmp_env (const ENVELOPE * e1, const ENVELOPE * e2);
+int mutt_cmp_param (const PARAMETER * p1, const PARAMETER * p2);
+int mutt_cmp_body (const BODY * b1, const BODY * b2);
+
 #if USE_HCACHE
 void *mutt_hcache_open (const char *path, const char *folder);
 void mutt_hcache_close (void *db);
@@ -121,7 +103,7 @@ HEADER *mutt_hcache_restore (const unsigned char *d, HEADER ** oh);
 void *mutt_hcache_fetch (void *db, const char *filename,
                          size_t (*keylen) (const char *fn));
 int mutt_hcache_store (void *db, const char *filename, HEADER * h,
-                       uint64_t uid_validity,
+                       unsigned long uid_validity,
                        size_t (*keylen) (const char *fn));
 int mutt_hcache_delete (void *db, const char *filename,
                         size_t (*keylen) (const char *fn));
@@ -163,13 +145,10 @@ const char *mutt_make_version (void);
 
 const char *mutt_fqdn (short);
 
-REGEXP *mutt_compile_regexp (const char *, int);
-
 void mutt_account_hook (const char *url);
 void mutt_add_to_reference_headers (ENVELOPE * env, ENVELOPE * curenv,
                                     LIST *** pp, LIST *** qq);
 void mutt_adv_mktemp (char *, size_t);
-void mutt_alias_menu (char *, size_t, ALIAS *);
 void mutt_allow_interrupt (int);
 void mutt_attach_init (BODY *);
 void mutt_block_signals (void);
@@ -177,12 +156,9 @@ void mutt_block_signals_system (void);
 void mutt_body_handler (BODY *, STATE *);
 int mutt_bounce_message (FILE * fp, HEADER *, ADDRESS *);
 void mutt_break_thread (HEADER *);
-void mutt_buffy (char *, size_t);
-int mutt_buffy_list (void);
 void mutt_canonical_charset (char *, size_t, const char *);
 void mutt_check_rescore (CONTEXT *);
 void mutt_clear_error (void);
-void mutt_create_alias (ENVELOPE *, ADDRESS *);
 void mutt_decode_attachment (BODY *, STATE *);
 void mutt_decode_base64 (STATE * s, long len, int istext, iconv_t cd);
 void mutt_default_save (char *, size_t, HEADER *);
@@ -194,7 +170,6 @@ void mutt_edit_headers (const char *, const char *, HEADER *, char *, size_t);
 void mutt_curses_error (const char *, ...);
 void mutt_curses_message (const char *, ...);
 void mutt_enter_command (void);
-void mutt_expand_aliases_env (ENVELOPE *);
 void mutt_expand_file_fmt (char *, size_t, const char *, const char *);
 void mutt_expand_fmt (char *, size_t, const char *, const char *);
 void mutt_expand_link (char *, const char *, const char *);
@@ -206,14 +181,12 @@ void mutt_format_s (char *, size_t, const char *, const char *);
 void mutt_format_s_tree (char *, size_t, const char *, const char *);
 void mutt_forward_intro (FILE * fp, HEADER * cur);
 void mutt_forward_trailer (FILE * fp);
-void mutt_free_alias (ALIAS **);
 void mutt_free_body (BODY **);
 void mutt_free_color (int fg, int bg);
 void mutt_free_enter_state (ENTER_STATE **);
 void mutt_free_envelope (ENVELOPE **);
 void mutt_free_header (HEADER **);
 void mutt_free_parameter (PARAMETER **);
-void mutt_free_regexp (REGEXP **);
 void mutt_generate_header (char *, size_t, HEADER *, int);
 void mutt_help (int);
 void mutt_draw_tree (CONTEXT *);
@@ -224,6 +197,7 @@ void mutt_make_help (char *, size_t, char *, int, int);
 void mutt_make_misc_reply_headers (ENVELOPE * env, CONTEXT * ctx,
                                    HEADER * cur, ENVELOPE * curenv);
 void mutt_make_post_indent (CONTEXT * ctx, HEADER * cur, FILE * out);
+void mutt_merge_envelopes (ENVELOPE* base, ENVELOPE** extra);
 void mutt_message_to_7bit (BODY *, FILE *);
 
 #define mutt_mktemp(a) _mutt_mktemp (a, __FILE__, __LINE__)
@@ -232,7 +206,8 @@ void mutt_normalize_time (struct tm *);
 void mutt_paddstr (int, const char *);
 void mutt_parse_mime_message (CONTEXT * ctx, HEADER *);
 void mutt_parse_part (FILE *, BODY *);
-void mutt_perror (const char *);
+#define mutt_perror(a) _mutt_perror (a, __FILE__, __LINE__)
+void _mutt_perror (const char*, const char*,int);
 void mutt_prepare_envelope (ENVELOPE *, int);
 void mutt_unprepare_envelope (ENVELOPE *);
 void mutt_pretty_mailbox (char *);
@@ -271,17 +246,12 @@ void mutt_write_address_list (ADDRESS * adr, FILE * fp, int linelen,
                               int display);
 void mutt_set_virtual (CONTEXT *);
 
-int mutt_addr_is_user (ADDRESS *);
 int mutt_addwch (wchar_t);
-int mutt_alias_complete (char *, size_t);
 int mutt_alloc_color (int fg, int bg);
 int mutt_any_key_to_continue (const char *);
-int mutt_buffy_check (int);
-int mutt_buffy_notify (void);
 int mutt_builtin_editor (const char *, HEADER *, HEADER *);
 int mutt_can_decode (BODY *);
 int mutt_change_flag (HEADER *, int);
-int mutt_check_alias_name (const char *, char *);
 int mutt_check_encoding (const char *);
 int mutt_check_key (const char *);
 int mutt_check_menu (const char *);
@@ -297,6 +267,7 @@ int mutt_compose_attachment (BODY * a);
 int mutt_copy_body (FILE *, BODY **, BODY *);
 int mutt_decode_save_attachment (FILE *, BODY *, char *, int, int);
 int mutt_display_message (HEADER * h);
+int mutt_dump_variables (void);
 int mutt_edit_attachment (BODY *);
 int mutt_edit_message (CONTEXT *, HEADER *);
 int mutt_fetch_recips (ENVELOPE * out, ENVELOPE * in, int flags);
@@ -316,8 +287,8 @@ int _mutt_enter_string (char *, size_t, int, int, int, int, char ***, int *,
                         ENTER_STATE *);
 #define mutt_get_field(A,B,C,D) _mutt_get_field(A,B,C,D,0,NULL,NULL)
 int _mutt_get_field (char *, char *, size_t, int, int, char ***, int *);
+int mutt_get_field_unbuffered (char *, char *, size_t, int);
 int mutt_get_hook_type (const char *);
-int mutt_get_password (char *, char *, size_t);
 int mutt_get_postponed (CONTEXT *, HEADER *, HEADER **, char *, size_t);
 int mutt_get_tmp_attachment (BODY *);
 int mutt_index_menu (void);
@@ -333,7 +304,6 @@ int mutt_is_text_part (BODY *);
 int mutt_is_valid_mailbox (const char *);
 int mutt_link_threads (HEADER *, HEADER *, CONTEXT *);
 int mutt_lookup_mime_type (BODY *, const char *);
-int mutt_match_rx_list (const char *, RX_LIST *);
 int mutt_match_spam_list (const char *, SPAM_LIST *, char *, int);
 int mutt_messages_in_thread (CONTEXT *, HEADER *, int);
 int mutt_multi_choice (char *prompt, char *letters);
@@ -345,7 +315,6 @@ int mutt_parse_color (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 int mutt_parse_uncolor (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 int mutt_parse_hook (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 int mutt_parse_macro (BUFFER *, BUFFER *, unsigned long, BUFFER *);
-int mutt_parse_mailboxes (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 int mutt_parse_mono (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 int mutt_parse_unmono (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 int mutt_parse_push (BUFFER *, BUFFER *, unsigned long, BUFFER *);
@@ -362,7 +331,7 @@ int mutt_print_attachment (FILE *, BODY *);
 int mutt_query_complete (char *, size_t);
 int mutt_query_variables (LIST * queries);
 int mutt_save_attachment (FILE *, BODY *, char *, int, HEADER *);
-void _mutt_save_message (HEADER *, CONTEXT *, int, int, int);
+int _mutt_save_message (HEADER *, CONTEXT *, int, int, int);
 int mutt_save_message (HEADER *, int, int, int, int *);
 int mutt_search_command (int, int);
 int mutt_skipchars (const char *, const char *);
@@ -391,8 +360,6 @@ pid_t mutt_create_filter (const char *, FILE **, FILE **, FILE **);
 pid_t mutt_create_filter_fd (const char *, FILE **, FILE **, FILE **, int,
                              int, int);
 
-ADDRESS *alias_reverse_lookup (ADDRESS *);
-
 /* base64.c */
 void mutt_to_base64 (unsigned char *, const unsigned char *, size_t, size_t);
 int mutt_from_base64 (char *, const char *);
@@ -412,7 +379,7 @@ int mutt_wctoutf8 (char *s, unsigned int c);
        (option (OPTLOCALES) ? 0 : (wc >= 0xa0)))
 #endif
 
-#define new_pattern() safe_calloc(1, sizeof (pattern_t))
+#define new_pattern() mem_calloc(1, sizeof (pattern_t))
 
 int mutt_pattern_exec (struct pattern_t *pat, pattern_exec_flag flags,
                        CONTEXT * ctx, HEADER * h);