1 /* 2 * $Id: reply.h 1074 2008-06-04 00:08:43Z hubert@u.washington.edu $ 3 * 4 * ======================================================================== 5 * Copyright 2013-2021 Eduardo Chappa 6 * Copyright 2006-2008 University of Washington 7 * 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 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * ======================================================================== 15 */ 16 17 #ifndef PITH_REPLY_INCLUDED 18 #define PITH_REPLY_INCLUDED 19 20 21 #define ALLOWED_SUBTYPE(st) (!strucmp((st), "plain") \ 22 || !strucmp((st), "html") \ 23 || !strucmp((st), "enriched") \ 24 || !strucmp((st), "richtext")) 25 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 32 33 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 */ 39 40 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" 47 48 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); 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 *); 108 109 #endif /* PITH_REPLY_INCLUDED */ 110