summaryrefslogtreecommitdiff
path: root/pith/mailview.h
diff options
context:
space:
mode:
Diffstat (limited to 'pith/mailview.h')
-rw-r--r--pith/mailview.h155
1 files changed, 155 insertions, 0 deletions
diff --git a/pith/mailview.h b/pith/mailview.h
new file mode 100644
index 00000000..a89f3f95
--- /dev/null
+++ b/pith/mailview.h
@@ -0,0 +1,155 @@
+/*
+ * $Id: mailview.h 1074 2008-06-04 00:08:43Z hubert@u.washington.edu $
+ *
+ * ========================================================================
+ * Copyright 2006-2008 University of Washington
+ * Copyright 2013 Eduardo Chappa
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * ========================================================================
+ */
+
+#ifndef PITH_MAILVIEW_INCLUDED
+#define PITH_MAILVIEW_INCLUDED
+
+
+#include "../pith/store.h"
+#include "../pith/handle.h"
+#include "../pith/bitmap.h"
+#include "../pith/helptext.h"
+#include "../pith/msgno.h"
+#include "../pith/filttype.h"
+#include "../pith/pattern.h"
+#include "../pith/state.h"
+#include "../pith/charset.h"
+#include "../pith/color.h"
+
+
+/* format_message flags */
+#define FM_DISPLAY 0x0001 /* result is headed for display */
+#define FM_NEW_MESS 0x0002 /* a new message so zero out attachment descrip */
+#define FM_NOWRAP 0x0008 /* no wrapping done */
+#define FM_NOCOLOR 0x0010 /* no color added */
+#define FM_NOINDENT 0x0020 /* no indents, but only works has effect if wrapping */
+#define FM_NOEDITORIAL 0x0040 /* no editorial comments */
+#define FM_NOHTMLREL 0x0200 /* no relative links */
+#define FM_HTMLRELATED 0x0400 /* allow multi/related */
+#define FM_FORCEPREFPLN 0x0800 /* force prefer-plain this time */
+#define FM_FORCENOPREFPLN 0x1000 /* force not prefer-plain this time */
+#define FM_HIDESERVER 0x2000 /* HIDE servername after active HTML links */
+#define FM_HTML 0x4000 /* filter/preserve HTML markup */
+#define FM_HTMLIMAGES 0x8000 /* filter/preserve HTML IMG tags */
+
+
+#define SIGDASHES "-- "
+#define START_SIG_BLOCK 2
+#define IN_SIG_BLOCK 1
+#define OUT_SIG_BLOCK 0
+
+
+/*
+ * Which header fields should format_envelope output?
+ */
+#define FE_FROM 0x0001
+#define FE_SENDER 0x0002
+#define FE_DATE 0x0004
+#define FE_TO 0x0008
+#define FE_CC 0x0010
+#define FE_BCC 0x0020
+#define FE_NEWSGROUPS 0x0040
+#define FE_SUBJECT 0x0080
+#define FE_MESSAGEID 0x0100
+#define FE_REPLYTO 0x0200
+#define FE_FOLLOWUPTO 0x0400
+#define FE_INREPLYTO 0x0800
+#define FE_RETURNPATH 0x1000
+#define FE_REFERENCES 0x2000
+#define FE_DEFAULT (FE_FROM | FE_DATE | FE_TO | FE_CC | FE_BCC \
+ | FE_NEWSGROUPS | FE_SUBJECT | FE_REPLYTO \
+ | FE_FOLLOWUPTO)
+
+
+/*
+ * Function to format
+ */
+typedef void (*fmt_env_t)(MAILSTREAM *, long int, char *, ENVELOPE *, gf_io_t, long int, char *, int);
+
+/*
+ * Structure and macros to help control format_header_text
+ */
+typedef struct header_s {
+ unsigned type:4;
+ unsigned except:1;
+ union {
+ char **l; /* list of char *'s */
+ long b; /* bit field of header fields (FE_* above) */
+ } h;
+ char charset[CSET_MAX];
+} HEADER_S;
+
+
+/*
+ * Macro's to help sort out how we display MIME types
+ */
+#define MCD_NONE 0x00
+#define MCD_INTERNAL 0x01
+#define MCD_EXTERNAL 0x02
+#define MCD_EXT_PROMPT 0x04
+
+
+#define HD_LIST 1
+#define HD_BFIELD 2
+#define HD_INIT(H, L, E, B) { \
+ if((L) && (L)[0]){ \
+ (H)->type = HD_LIST; \
+ (H)->except = (E); \
+ (H)->h.l = (L); \
+ } \
+ else{ \
+ (H)->type = HD_BFIELD; \
+ (H)->h.b = (B); \
+ (H)->except = 0; \
+ } \
+ (H)->charset[0] = '\0'; \
+ }
+
+
+/* exported protoypes */
+int format_message(long, ENVELOPE *, BODY *, HANDLE_S **, int, gf_io_t);
+int format_attachment_list(long int, BODY *, HANDLE_S **, int, int, gf_io_t);
+char *format_body(long int, BODY *, HANDLE_S **, HEADER_S *, int, int, gf_io_t);
+int url_hilite(long, char *, LT_INS_S **, void *);
+int handle_start_color(char *, size_t, int *, int);
+int handle_end_color(char *, size_t, int *);
+
+/*
+ * BUG: BELOW IS UNIX/PC ONLY since config'd browser means nothing to webpine
+ */
+
+int url_external_specific_handler(char *, int);
+int url_imap_folder(char *, char **, imapuid_t *, imapuid_t *, char **, int);
+int url_bogus(char *, char *);
+void pine_rfc822_address(ADDRESS *, gf_io_t);
+void pine_rfc822_cat(char *, const char *, gf_io_t);
+int format_header(MAILSTREAM *, long, char *, ENVELOPE *, HEADER_S *,
+ char *, HANDLE_S **, int, fmt_env_t, gf_io_t);
+COLOR_PAIR *hdr_color(char *, char *, SPEC_COLOR_S *);
+char *display_parameters(PARAMETER *);
+char *pine_fetch_header(MAILSTREAM *, long, char *, char **, long);
+int color_signature(long, char *, LT_INS_S **, void *);
+int scroll_handle_start_color(char *, size_t, int *);
+int scroll_handle_end_color(char *, size_t, int *, int);
+int width_at_this_position(unsigned char *, unsigned long);
+
+/* currently mandatory to implement stubs */
+
+/* this is used in rfc2369_editorial() in format_message() */
+void rfc2369_display(MAILSTREAM *, MSGNO_S *, long);
+
+
+#endif /* PITH_MAILVIEW_INCLUDED */