* New version 2.21.999
[alpine.git] / pith / reply.h
blobf9f15d5c4538a5906c9b5aa059c0221a9de28b6f
1 /*
2 * $Id: reply.h 1074 2008-06-04 00:08:43Z hubert@u.washington.edu $
4 * ========================================================================
5 * Copyright 2013-2018 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 */
35 #define RCA_NONE 0x00
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 protoypes */
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(void);
96 char *generate_user_agent(void);
97 char *rot13(char *);
98 char *rot5n(char *);
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 */