2 * $Id: reply.h 1074 2008-06-04 00:08:43Z hubert@u.washington.edu $
4 * ========================================================================
5 * Copyright 2013-2022 Eduardo Chappa
6 * Copyright 2006-2008 University of Washington
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * ========================================================================
17 #ifndef PITH_REPLY_INCLUDED
18 #define PITH_REPLY_INCLUDED
21 #define ALLOWED_SUBTYPE(st) (!strucmp((st), "plain") \
22 || !strucmp((st), "html") \
23 || !strucmp((st), "enriched") \
24 || !strucmp((st), "richtext"))
26 /* flags for get_body_part_text */
27 #define GBPT_NONE 0x00
28 #define GBPT_PEEK 0x01
29 #define GBPT_NOINTR 0x02
30 #define GBPT_DELQUOTES 0x04
31 #define GBPT_HTML_OK 0x08
34 /* flags for reply_cp_addr */
36 #define RCA_NOT_US 0x01 /* copy addrs that aren't us */
37 #define RCA_ONLY_US 0x02 /* copy only addrs that are us */
38 #define RCA_ALL 0x04 /* copy all addrs, including us */
41 #include "../pith/repltype.h"
42 #include "../pith/filttype.h"
43 #include "../pith/indxtype.h"
44 #include "../pith/pattern.h"
45 #include "../pith/state.h"
46 #include "../pith/addrstring.h"
49 /* exported prototypes */
50 int reply_harvest(struct pine
*, long, char *, ENVELOPE
*, ADDRESS
**,
51 ADDRESS
**, ADDRESS
**, ADDRESS
**,int *);
52 ADDRESS
*reply_cp_addr(struct pine
*, long, char *, char *,
53 ADDRESS
*, ADDRESS
*, ADDRESS
*, int);
54 void reply_append_addr(ADDRESS
**, ADDRESS
*);
55 ACTION_S
*set_role_from_msg(struct pine
*, long, long, char *);
56 void reply_seed(struct pine
*, ENVELOPE
*, ENVELOPE
*, ADDRESS
*, ADDRESS
*,
57 ADDRESS
*, ADDRESS
*, char **, int, char **);
58 int addr_lists_same(ADDRESS
*, ADDRESS
*);
59 int addr_in_env(ADDRESS
*, ENVELOPE
*);
60 void reply_fish_personal(ENVELOPE
*, ENVELOPE
*);
61 char *reply_build_refs(ENVELOPE
*);
62 ADDRESS
*reply_resent(struct pine
*, long, char *);
63 char *reply_subject(char *, char *, size_t);
64 char *reply_quote_initials(char *);
65 char *reply_quote_str(ENVELOPE
*);
66 int reply_quote_str_contains_tokens(void);
67 BODY
*reply_body(MAILSTREAM
*, ENVELOPE
*, BODY
*, long, char *, void *,
68 char *, int, ACTION_S
*, int, REDRAFT_POS_S
**);
69 int reply_body_text(BODY
*, BODY
**);
70 char *reply_signature(ACTION_S
*, ENVELOPE
*, REDRAFT_POS_S
**, int *);
71 void get_addr_data(ENVELOPE
*, IndexColType
, char *, size_t);
72 void get_news_data(ENVELOPE
*, IndexColType
, char *, size_t);
73 char *get_reply_data(ENVELOPE
*, ACTION_S
*, IndexColType
, char *, size_t);
74 void reply_delimiter(ENVELOPE
*, ACTION_S
*, gf_io_t
);
75 void free_redraft_pos(REDRAFT_POS_S
**);
76 int forward_mime_msg(MAILSTREAM
*, long, char *, ENVELOPE
*, PART
**, void *);
77 void forward_delimiter(gf_io_t
);
78 void reply_forward_header(MAILSTREAM
*, long, char *, ENVELOPE
*, gf_io_t
, char *);
79 char *forward_subject(ENVELOPE
*, int);
80 BODY
*forward_body(MAILSTREAM
*, ENVELOPE
*, BODY
*, long, char *, void *, int);
81 char *bounce_msg_body(MAILSTREAM
*, long int, char *, char **, char *, ENVELOPE
**, BODY
**, int *);
82 int get_body_part_text(MAILSTREAM
*, BODY
*, long, char *, long,
83 gf_io_t
, char *, char **, unsigned);
84 int quote_fold(long, char *, LT_INS_S
**, void *);
85 int twsp_strip(long, char *, LT_INS_S
**, void *);
86 int post_quote_space(long, char *, LT_INS_S
**, void *);
87 int sigdash_strip(long, char *, LT_INS_S
**, void *);
88 char *body_partno(MAILSTREAM
*, long, BODY
*);
89 char *partno(BODY
*, BODY
*);
90 int fetch_contents(MAILSTREAM
*, long, char *, BODY
*);
91 BODY
*copy_body(BODY
*, BODY
*);
92 PARAMETER
*copy_parameters(PARAMETER
*);
93 ENVELOPE
*copy_envelope(ENVELOPE
*);
94 char *reply_in_reply_to(ENVELOPE
*);
95 char *generate_message_id(ACTION_S
*);
96 char *generate_user_agent(void);
99 ADDRESS
*first_addr(ADDRESS
*);
100 char *get_signature_lit(char *, int, int, int, int);
101 int sigdashes_are_present(char *);
102 char *signature_path(char *, char *, size_t);
103 char *simple_read_remote_file(char *, char *);
104 BODY
*forward_multi_alt(MAILSTREAM
*, ENVELOPE
*, BODY
*, long, char *, void *, gf_io_t
, int);
105 BODY
*forward_multi_alt_mixed(MAILSTREAM
*, ENVELOPE
*, BODY
*, long, char *, void *, gf_io_t
, int);
106 int same_subject(char *, char *s
);
107 void shorten_subject(char *);
109 #endif /* PITH_REPLY_INCLUDED */