lib-network -> lib-sys.
[apps/madmutt.git] / copy.h
1 /*
2  * Copyright notice from original mutt:
3  * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>
4  *
5  * This file is part of mutt-ng, see http://www.muttng.org/.
6  * It's licensed under the GNU General Public License,
7  * please see the file GPL in the top level source directory.
8  */
9 #ifndef _MUTT_COPY_H
10 #define _MUTT_COPY_H
11
12 /* flags for mutt_copy_header() */
13 #define CH_UPDATE               (1<<0)  /* update the status and x-status fields? */
14 #define CH_WEED                 (1<<1)  /* weed the headers? */
15 #define CH_DECODE               (1<<2)  /* do RFC1522 decoding? */
16 #define CH_XMIT                 (1<<3)  /* transmitting this message? */
17 #define CH_FROM                 (1<<4)  /* retain the "From " message separator? */
18 #define CH_PREFIX               (1<<5)  /* use Prefix string? */
19 #define CH_NOSTATUS             (1<<6)  /* supress the status and x-status fields */
20 #define CH_REORDER              (1<<7)  /* Re-order output of headers */
21 #define CH_NONEWLINE            (1<<8)  /* don't output terminating newline */
22 #define CH_MIME                 (1<<9)  /* ignore MIME fields */
23 #define CH_UPDATE_LEN           (1<<10) /* update Lines: and Content-Length: */
24 #define CH_TXTPLAIN             (1<<11) /* generate text/plain MIME headers */
25 #define CH_NOLEN                (1<<12) /* don't write Content-Length: and Lines: */
26 #define CH_WEED_DELIVERED       (1<<13) /* weed eventual Delivered-To headers */
27 #define CH_FORCE_FROM           (1<<14) /* give CH_FROM precedence over CH_WEED? */
28 #define CH_NOQFROM              (1<<15) /* give CH_FROM precedence over CH_WEED? */
29 #define CH_UPDATE_IRT           (1<<16) /* update In-Reply-To: */
30 #define CH_UPDATE_REFS          (1<<17) /* update References: */
31
32 /* flags to _mutt_copy_message */
33 #define M_CM_NOHEADER           (1<<0)  /* don't copy the message header */
34 #define M_CM_PREFIX             (1<<1)  /* quote the message */
35 #define M_CM_DECODE             (1<<2)  /* decode the message body into text/plain */
36 #define M_CM_DISPLAY            (1<<3)  /* output is displayed to the user */
37 #define M_CM_UPDATE             (1<<4)  /* update structs on sync */
38 #define M_CM_WEED               (1<<5)  /* weed message/rfc822 attachment headers */
39 #define M_CM_CHARCONV           (1<<6)  /* perform character set conversions */
40 #define M_CM_PRINTING           (1<<7)  /* printing the message - display light */
41 #define M_CM_REPLYING           (1<<8)  /* replying the message */
42 #define M_CM_DECODE_PGP         (1<<9)  /* used for decoding PGP messages */
43 #define M_CM_DECODE_SMIME       (1<<10) /* used for decoding S/MIME messages */
44 #define M_CM_DECODE_CRYPT       (M_CM_DECODE_PGP | M_CM_DECODE_SMIME)
45 #define M_CM_VERIFY             (1<<11) /* do signature verification */
46
47 int mutt_copy_hdr (FILE *, FILE *, off_t, off_t, int, const char *);
48 int mutt_copy_header (FILE *, HEADER *, FILE *, int, const char *);
49 int _mutt_copy_message (FILE * fpout, FILE * fpin,
50                         HEADER * hdr, BODY * body, int flags, int chflags);
51 int mutt_copy_message (FILE * fpout,
52                        CONTEXT * src, HEADER * hdr, int flags, int chflags);
53 int _mutt_append_message (CONTEXT * dest, FILE * fpin, CONTEXT * src,
54                           HEADER * hdr, BODY * body, int flags, int chflags);
55 int mutt_append_message (CONTEXT * dest, CONTEXT * src,
56                          HEADER * hdr, int cmflags, int chflags);
57
58 #endif /* !_MUTT_COPY_H */