Rocco Rutte:
[apps/madmutt.git] / state.h
diff --git a/state.h b/state.h
new file mode 100644 (file)
index 0000000..45f97e2
--- /dev/null
+++ b/state.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright notice from original mutt:
+ * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>
+ *
+ * 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.
+ */
+#ifndef _MUTT_STATE_H
+#define _MUTT_STATE_H
+
+#include "charset.h"
+
+typedef struct {
+  FILE *fpin;
+  FILE *fpout;
+  char *prefix;
+  int flags;
+} STATE;
+
+#define BUFI_SIZE 1000
+#define BUFO_SIZE 2000
+
+/* flags for the STATE struct */
+#define M_DISPLAY      (1<<0)  /* output is displayed to the user */
+#define M_VERIFY       (1<<1)  /* perform signature verification */
+#define M_PENDINGPREFIX (1<<2)  /* prefix to write, but character must follow */
+#define M_WEED          (1<<3)  /* weed headers even when not in display mode */
+#define M_CHARCONV     (1<<4)  /* Do character set conversions */
+#define M_PRINTING     (1<<5)  /* are we printing? - M_DISPLAY "light" */
+#define M_REPLYING     (1<<6)  /* are we replying? */
+#define M_FIRSTDONE    (1<<7)  /* the first attachment has been done */
+
+#define state_set_prefix(s) ((s)->flags |= M_PENDINGPREFIX)
+#define state_reset_prefix(s) ((s)->flags &= ~M_PENDINGPREFIX)
+#define state_puts(x,y) fputs(x,(y)->fpout)
+#define state_putc(x,y) fputc(x,(y)->fpout)
+
+void state_mark_attach (STATE *);
+void state_attach_puts (const char *, STATE *);
+void state_prefix_putc (char, STATE *);
+int state_printf (STATE *, const char *, ...);
+
+void mutt_convert_to_state (iconv_t, char*, size_t*, STATE*);
+
+#endif /* !_MUTT_STATE_H */