/* $Id: me.h,v 1.153.2.1 2007/08/24 20:01:55 hurtta Exp $ */
/******************************************************************************
* The Elm (ME+) Mail System - $Revision: 1.153.2.1 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtta+elm@posti.FMI.FI>
* (was hurtta+elm@ozone.FMI.FI)
* or Kari Hurtta <elm@elmme-mailer.org>
*
* Initially written by: Michael Elkins <elkins@aero.org>, 1995
*****************************************************************************/
#include "melib.h"
enum { elm_mp_menu, elm_mp_modified, elm_mp_COUNT };
struct menu_param {
enum menu_para_type { mp_integer, mp_menu_common,
mp_anon_param, mp_END } t;
union {
int i;
struct menu_common *c;
struct menu_anon_param *a;
} u;
};
enum check_mode { chk_none, chk_size, chk_unread } ;
/* args.c */
/* Returns array of files requested */
extern char ** parse_arguments P_((int argc, char *argv[], char ***to_whom,
enum check_mode *chk_mode, char **url_mode));
extern char * wanted_charset;
extern int wanted_switchmode;
extern char * wanted_title_string;
extern char * wanted_icon_string;
extern char * with_title;
extern char * wanted_mailbox_title;
extern int confirm_url;
extern struct Attachments {
mime_t *attach_files; /* prepare attachments for sending */
int attachment_count;
} attach_files;
CONST extern struct Attachments NULL_Attachments;
extern void add_Attachments P_((struct Attachments *A,mime_t *x));
extern void free_Attachments P_((struct Attachments *A));
/* init.c */
#if ANSI_C
struct MailboxView;
struct current_astorage;
struct AliasView;
struct menu_common;
struct menu_context;
#endif
extern void initialize P_((struct AliasView **main_alaises,
struct menu_context **page));
struct screen_parts {
struct menu_context *title_page;
struct menu_context *header_page;
struct menu_context *menu_page;
struct menu_context *prompt_page;
};
#if ANSI_C
struct url;
#endif
extern struct MailboxView * initialize_mailbox P_((
char **requestedmfiles,
struct menu_context *page,
struct AliasView *main_aliases,
enum check_mode check_mode
));
extern struct MailboxView * initialize_mailbox_from_url P_((
struct url * url,
struct menu_context *page,
enum check_mode check_mode,
int ask));
/* file_util.c */
#if ANSI_C
struct current_storage;
#endif
int check_mailfile_size P_((struct folder_info *mfile));
int append P_((FILE *fd, char *filename, char *prefix_str,
struct menu_context *page));
/* find_alias.c */
extern int find_alias P_((char *word, int alias_type,
struct AliasView *aview));
/* showmsg_c.c */
struct pager_page {
struct menu_context * root; /* Or parent */
struct menu_param PARAM[elm_mp_COUNT+1];
struct menu_context * border_line;
struct menu_context * prompt_area; /* on showmsg_c */
};
extern int showmsg_main_cmd P_(( struct MailboxView *mailbox,
int cmd,
struct pager_page *pager_page));
extern void put_cmd_name P_((struct pager_page *pager_page,
int will_mangle,
const char * format, const char *msg, ...));
extern void put_border P_(( struct menu_context *page));
extern void build_bottom P_((struct menu_common *menu,
struct menu_context *page));
typedef int showmsg_cmd P_(( struct MailboxView *mailbox,
int cmd,
struct pager_page *pager_page));
extern int process_showmsg_cmd P_((int command,
struct MailboxView *mailbox,
showmsg_cmd cmd,
struct AliasView *aview,
struct pager_page * pager_page));
/* showmsg_1.c */
extern int show_message_with_headers P_((struct MailboxView *mailbox,
showmsg_cmd cmdX,
struct AliasView *aview,
struct menu_context *page,
struct menu_context *header_area));
extern int show_message_normal P_((struct MailboxView *mailbox,
showmsg_cmd cmdX,
struct AliasView *aview,
struct menu_context *page,
struct menu_context *header_area));
extern int show_next_message P_((struct MailboxView *mailbox,
showmsg_cmd cmdX,
struct AliasView *aview,
struct menu_context *page,
struct menu_context *header_area));
/* movement.c */
typedef void move_message P_((void));
struct move_messages {
move_message * first_item;
move_message * last_item;
};
extern int do_movement P_(( struct menu_context *ptr, int ch, int len,
struct move_messages *m));
extern int do_movement1 P_((struct menu_context *ptr, int ch, int len,
struct move_messages *m));
/* elm.c */
extern void mailbox_screen_common P_((struct menu_context *page,
struct screen_parts *LOC,
struct menu_param *LIST));
extern void free_mailbox_screen P_((struct screen_parts *LOC));
/* Return key if unknown */
extern int motion P_((int ch, struct menu_common *mc,
struct screen_parts *LOC,
struct menu_context *page));
extern void check_range P_((struct menu_common *mc,
struct screen_parts *LOC));
extern void forget_passphrase P_((void) );
extern int mailbox_command P_((struct MailboxView *mailbox, int ch,
struct screen_parts *LOC,
showmsg_cmd cmdX,
struct AliasView *aview,
struct menu_context *page
));
extern void new_mail_check P_((struct MailboxView *mailbox,
struct menu_context *page,
struct screen_parts *LOC));
/* help.c */
extern int display_helpfile P_((int section));
extern void help P_((int pager_help, struct menu_context *page,
struct menu_context *prompt_area));
/* in_utils.c */
extern int want_to P_((char *question, int dflt, int where,
int clear_and_center,
struct menu_context *page));
extern int read_number P_((int ch, const struct string *item, int current,
struct menu_context *page,
struct menu_context *prompt_area));
#define PROMPT_center 1
#define PROMPT_yesno 2
#define PROMPT_redraw_mark 4
#define PROMPT_ctrlL 8
#define PROMPT_cancel 16
extern int prompt_letter P_((int line, char *letters, int def,
int flags,
struct menu_context *page,
const char * format, const char *msg, ...));
#define OE_APPEND_CURRENT (1<<0)
#define OE_PASSWD (1<<1)
#define OE_REDRAW_MARK (1<<2)
#define OE_ADD_COMMA (1<<3)
#define OE_ALT_SOLIDUS (1<<4)
#define OE_ALLOW_MIMEENC (1<<5)
#define OE_EDITOR_ESCAPE (1<<6)
#define OE_TABACTION (1<<7)
#define OE_SIG_CHAR (1<<8)
extern int optionally_enter2 P_((struct menu_context *page,
struct string **buffer,
int x, int y, int flags,
const char * format, const char *msg, ...));
extern int optionally_enter P_((char *string, int x, int y,
int flags, int size,
struct menu_context *page));
extern int GetPrompt P_((struct menu_context *page));
#if ANSI_C
struct enter_info;
#endif
enum enter_mode { em_redraw, em_enter, em_prev, em_next, em_wrap,
em_redraw_initial, em_editor_escape, em_tabaction,
em_bs_prev, em_left, em_right};
typedef struct string **give_buffer_r P_((struct enter_info *I,
enum enter_mode em,
struct menu_context *base_page));
struct enter_info {
int counter;
struct string **pvector;
int px;
int py;
give_buffer_r *give_buffer;
int flags;
int ch_count;
struct builtin_edit *builtin;
folder_dir dir_p;
struct mailer_info *mailer_info;
struct AliasView *aview;
struct menu_context *current_page; /* give_buffer_r may alloc new */
};
extern int enter_helper P_((struct enter_info *info,
struct menu_context *base_page));
/* out_utils.c */
extern void error_wait P_((void)); /* call before exiting */
extern void sleep_message P_((void));
extern int error P_((CONST char *s));
extern void out_util_setup P_((void));
extern void show_last_error P_((void));
extern void clear_error P_((void));
extern void set_error P_((char *s));
extern void lower_prompt P_((char *s));
extern void prompt P_((char *s));
extern void prompt_s P_((struct menu_context *page,
const struct string *S));
extern void print_center P_((int line, struct string * buffer));
extern void menu_print_center P_((struct menu_context *ptr,
int line, struct string * buffer));
extern void print_format_center P_((int lineY,const char *format,
const char *line, ...));
extern void menu_print_format_center P_((struct menu_context *ptr,
int lineY,const char *format,
const char *line, ...));
extern void Raw_OFF P_((int exiting)); /* used on init.c for exit */
/* Used by newmbox.c */
extern int need_refresh_low_line P_((void));
/* pattern.c */
extern int from_matches P_((struct header_rec *mss, struct string *pat));
extern int to_matches P_((struct header_rec *mss, struct string *pat));
extern int cc_matches P_((struct header_rec *mss, struct string *pat));
extern int subject_matches P_((struct header_rec *mss, struct string *pat));
extern int match_in_message P_((struct string *pat,
struct MailboxView *mailbox,
struct AliasView *aview));
extern int pattern_match P_((struct menu_common *mc,
struct menu_context *page,
struct screen_parts *LOC));
extern int meta_match P_((int function, struct menu_common *mc,
struct menu_context *page,
struct screen_parts *LOC));
/* addr_util.c */
extern int build_address_l P_((struct expanded_address *expanded,
struct mailer_info *mailer_info,
/* aview is NULL if aliases are ignored */
struct AliasView *aview
));
extern int argv_to_expanded P_((struct expanded_address *result,
char *argv[],
struct mailer_info *mailer_info,
struct AliasView *aview));
extern void addr_to_expanded P_((struct expanded_address *result,
struct addr_item *addrs,
struct mailer_info *mailer_info,
struct AliasView *aview));
extern void expanded_to_edit_buffer P_((struct string ** buffer,
struct expanded_address expanded
));
extern void update_expanded_from_edit_buffer P_((struct expanded_address
*expanded,
CONST struct string *buffer,
struct mailer_info
*mailer_info,
/* aview is NULL if aliases
are ignored */
struct AliasView *aview
));
extern int check_8bit_addr P_((struct addr_item * addr));
extern int aliases_to_expanded P_((struct expanded_address *x,
struct AliasView *aview));
/* alias.c */
#if ANSI_C
struct current_storage;
#endif
extern void alias P_((struct MailboxView *mailbox,
struct AliasView *aview));
extern void open_alias_files P_((struct AliasView *aview,
struct screen_parts *LOC));
extern int delete_from_alias_text P_((char **name, int num_to_delete));
extern void install_aliases P_((struct AliasView *aview,
struct screen_parts *LOC));
/* a_edit.c */
extern int edit_aliases_text P_((struct AliasView *aview,
struct menu_context *page,
struct screen_parts *LOC));
/* a_sort.c */
extern void sort_aliases P_((int entries, int visible, int are_in_aliases,
struct AliasView *aview));
extern char *alias_sort_name P_((int type));
/* a_screen.c */
#if ANSI_C
struct menu_param;
#endif
extern struct string *build_alias_line P_((struct alias_rec *entry,
int message_number, int highlight,
struct menu_context *page));
extern void alias_screen P_((struct AliasView *aview,
struct menu_context *page));
extern int sb_alias_menu P_((struct menu_context *ptr,
struct menu_param *list));
extern void show_alias_menu P_((struct menu_context *page));
extern char *show_alias_status P_((struct alias_rec *entry));
extern void set_folder_window_title P_((struct folder_info *folder,
char *title_s, char *icon_s));
extern char *alias_type P_((int type));
/* a_quit.c */
extern void exit_alias P_((struct AliasView *aview));
/* Return 1 Aliases were deleted
* newalias Aliases were not deleted
* -1 Interrupted witn Ctrl-C
*/
extern int delete_aliases P_((int newaliases, int prompt,
struct AliasView *aview,
struct menu_context * page,
struct menu_context * prompt_area));
/* exitprog.c */
/* returns:
0 .. do not do exit
1 .. do normal exit
EOF
Does NOT free mailbox
*/
extern int exit_mailbox P_((struct MailboxView *mailbox,
struct menu_context *page));
/* file.c */
extern int expand_filename P_((char *, int, int));
extern void init_helpmsg P_(( char *, char *, int, int ));
extern int save P_((int silently, int delete, int text_only,
struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *page,
struct menu_context *prompt_area,
struct menu_context *header_area));
/* fileutil.c */
extern FILE *open_end_update P_((char *name));
#ifdef USE_PGP
/* pgp.c */
extern int pgp_menu P_((char *filename,
struct mailing_headers *headers,
struct menu_context *page));
extern void pgp_extract_public_key P_((struct header_rec *hdr,
FILE *infile,
struct menu_context *page));
extern void pgp_mail_public_key P_((struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *page,
struct menu_context *prompt_area));
#endif
/* read_rc.c */
extern void directory_check P_((void));
/* builtin++.c */
extern int builtinplusplus P_((struct stringbuffer * bout,
struct pager_page * pager_page));
/* mime.c */
extern char * have_metamail P_((void));
extern void clear_mime_send_info P_((mime_send_t *mime_info));
extern void free_mime_send_info P_((mime_send_t *mime_info));
/* Returns 1 if OK */
extern int convert_text P_((FILE *source, FILE *dest,
mime_send_t *mime_info,
charset_t from_charset,
charset_t to_charset,
int do_pgp,
struct Attachments *attachments,
struct mailer_info *mailer_info,
struct menu_context *page));
extern void add_parameter_1 P_((char **ptr,
char *name,
char *value,
int quoted));
/* strings.c */
extern char **argv_from_to P_((char *to));
extern void split_word P_((
char *buffer, char *first, char *rest));
extern void Centerline P_((int line,
char *string,
struct menu_context *page));
extern char *argv_zero P_((const char *string));
/* string2.c */
/* NOTE: Must be 'int ch', no 'char ch' so that it matches to default promotion
of arguments
*/
extern int occurances_of P_((int ch, char *string));
/* fileio.c */
extern int copy_message P_((struct folder_info *, struct header_rec *,
char *, FILE *, int, charset_t));
extern int copy_message_f P_((FILE *infile, struct header_rec *current_header,
char *prefix, FILE *dest_file,
int cm_options, charset_t file_set));
extern int copy_message_d P_((struct folder_info *infolder,
struct header_rec *current_header,
char * prefix,
struct folder_browser *dir,
WRITE_STATE dest, int cm_options,
charset_t file_set));
extern int copy_message_df P_((FILE *infile,
struct header_rec *current_header,
char * prefix,
struct folder_browser *dir,
WRITE_STATE dest,
int cm_options,
charset_t file_set));
extern int copy_message_2 P_((FILE *infile,
struct header_rec *current_header,
char *prefix,
out_state_t *dest_file,
int cm_options,
int env_flags));
extern int copy_body P_((FILE *infile,
struct header_rec *current_header,
char *prefix,
out_state_t *dest_file,
int cm_options));
extern int copy_plain P_((char *,out_state_t *,int, struct header_rec *,
FILE *));
extern int copy_mime P_((char *,out_state_t *,int, struct header_rec *,
FILE *));
typedef int copy_decoder P_((char *,out_state_t *,int, struct header_rec *,
FILE *));
typedef copy_decoder *copy_decoder_t;
extern copy_decoder_t select_copy_decoder P_((struct header_rec *));
/* newmbox.c */
extern int open_folder_lock P_((int direction,struct folder_info *folder));
extern int reopen_folder_lock_sessionlock P_((struct folder_info *folder));
extern int parse_header_routine P_((struct folder_info *folder,
READ_STATE read_state_ptr,
struct header_rec *current_header,
header_list_ptr parsed_headers
));
extern int parse_body_routine P_((struct folder_info *folder,
READ_STATE read_state_ptr,
struct header_rec *current_header,
header_list_ptr parsed_headers,
struct counter_data *counter
));
#if ANSI_C
struct current_storage;
#endif
extern void newmbox_1 P_((struct folder_info *new_folder,
struct MailboxView **mailbox,
int append,
struct menu_context *page));
extern int read_new_mails P_((struct current_storage *storage,
struct menu_context *page));
extern void resort_mailbox P_((struct MailboxView *mailbox,
int add_new_only));
extern void add_new_mailbox P_((struct folder_info *new_folder,
struct MailboxView *mailbox,
struct menu_context *page));
/* If new folder is freed / moved to new owner,
then *new_folder == NULL is NULL
if *new_folder is not modified (set to NULL)
caller must free *new_folder
reads mailbox
*/
struct MailboxView * enter_mailbox P_((struct folder_info **new_folder,
struct menu_context *page));
/* openmailbox.c */
/* Opens new mailbox to current mailbox view without closing current mailbox */
extern void OpenMailbox P_((struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *page));
extern void OpenMailboxPost P_((struct MailboxView *mailbox,
struct menu_context *page,
struct screen_parts *LOC));
/* file_util.c */
extern long fsize P_((FILE *));
extern long bytes P_((char *));
extern int copy_to_folder P_((FILE * from, struct folder_info *to));
extern int copy1 P_((FILE *from, char *to, int isspool));
/* mailmsg1.c */
#if ANSI_C
struct text_block;
#endif
extern void a_sendmsg P_((int edit_message, int form_letter,
struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *page,
struct screen_parts *LOC));
extern int send_msg_argv P_((char *argv[],
char *given_subject,int options, int form,
struct AliasView *aview,
struct menu_context *page,
struct menu_context *prompt_area));
extern int send_msg_url P_((const struct url *url,
char *given_subject,int options, int form,
struct AliasView *aview,
struct menu_context *page,
struct menu_context *prompt_area));
extern int send_msg_middle2 P_((struct mailing_headers *headers,
int index,
int options, int form_letter,
struct mailer_info *mailer_info,
struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *page,
struct menu_context *prompt_area,
struct text_block *body));
extern int send_msg_l P_((int index,
struct addr_item *given_to,
struct addr_item *given_cc,
char *given_subject,
int options, int form_letter,
struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *page,
struct menu_context *prompt_area));
extern void display_to P_((struct expanded_address address,
struct menu_context *page,
/* NULL if mail only mode */
struct menu_context *prompt_area));
extern int get_to P_((struct expanded_address *to,
struct mailer_info *mailer_info,
struct AliasView *aview,
struct menu_context *page,
struct MailboxView *cancel_view,
int *cancel_selection,
struct menu_context *prompt_area));
/* mailmsg2.c */
#if ANSI_C
struct run_state; /* Needed for prototype */
struct text_block;
#endif
extern void mail P_((int idx,
int options, int form,
struct mailing_headers *headers,
struct mailer_info *mailer_info,
struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *parent_page,
struct MailboxView *selection_view,
int selection_idx,
struct text_block *body));
extern void mail_form P_((int mail_index,
struct addr_item *address,
char *subj,
struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *page));
extern int attach_rfc822 P_((struct Attachments *attachments,
struct header_rec *hdr,
FILE *mailbox_file,
struct string *title));
extern int attach_body P_((struct Attachments *attachments,
struct header_rec *hdr,
FILE *mailbox_file));
/* canceled.c */
extern char * last_canceled_mail;
extern int view_canceled_mails P_((struct MailboxView * cancel_view,
int *cancel_selection,
struct AliasView *aview));
/* id_phrase.c */
/* froms.c */
extern void mail_filled_in_form P_((int mail_index,
struct addr_item *address,
char *subject,
struct MailboxView *
mailbox /* for save_copy */,
struct AliasView *aview,
struct menu_context *parent_page));
/* aliaslib.c */
struct addr_item *get_alias_address_l P_((
char *name, /* name to expand as an alias */
int mailing, /* TRUE to fully expand group names & recursive aliases */
int *too_longp, /* error code if expansion overflows buffer */
struct mailer_info *mailer_info,
struct AliasView *aview
));
/* syscall.c */
extern int system_call P_((char *, VOLATILE int,
struct MailboxView *mailbox));
#ifdef ALLOW_SUBSHELL
extern void subshell P_((struct MailboxView *mailbox,
struct menu_context *page,
struct menu_context *prompt_area));
#endif
extern void do_pipe P_((struct MailboxView *mailbox,
struct menu_context *page,
struct menu_context *prompt_area));
extern char * have_printout P_((void));
extern void print_msg P_((int pause_on_scroll,
struct MailboxView *mailbox,
struct menu_context *page));
extern void print_text P_((int pause_on_scroll,
struct MailboxView *mailbox,
struct menu_context *page,
struct menu_context *header_area));
extern int create_folder_state_file P_((struct MailboxView *mailbox));
extern int remove_folder_state_file P_((void));
/* lib/errno.c */
extern char *error_description P_((int));
/* savecopy.c */
struct copy_file {
struct string * copy_file;
struct folder_browser * dir;
};
extern void zero_copy_file P_((struct copy_file *cf));
extern void clear_copy_file P_((struct copy_file *cf));
extern void name_copy_file P_((struct copy_file *cf,
struct AliasView *aview,
struct menu_context *page));
extern int save_copy P_((struct mailing_headers * headers,
struct copy_file *cf,
int form,
mime_send_t *mime_info,
FILE * conv_file,
struct menu_context *page));
extern int append_copy_to_file P_((struct mailing_headers * headers,
struct folder_browser *cf,
int form,
mime_send_t *mime_info,
FILE * conv_file,
WRITE_STATE dest));
extern void write_header_info P_((out_state_t *mailer,
struct mailing_headers * headers,
int form, int copy,
mime_send_t *mime_info));
extern int copy_message_across P_((mime_send_t *mime_info,
out_state_t *dest, int copy,
FILE *conv_file));
/* mime.c */
#if ANSI_C
struct scan_list;
#endif
extern int check_for_multipart P_((FILE *filedesc, mime_send_t *mime_info,
struct mailer_info *mailer_info,
charset_t from_charset));
extern int needs_encoding P_((FILE *f,struct scan_list *list));
/* mime_encode.c */
extern void add_parameter P_((char *opts, char *name, char *value,
int size, int quoted));
extern int attach_message P_((mime_t *part, out_state_t *mailer,
mime_send_t *mime_info,
struct mime_send_part * X));
extern void base64_encode P_((FILE *, out_state_t *,
int, mime_send_t *));
extern void line_quoted_printable_encode P_((char *input,
out_state_t *mailer, int len,
int istext,
mime_send_t *mime_info));
extern void quoted_printable_encode P_((FILE *srcfp, out_state_t *mailer,
int istext,
mime_send_t *mime_info));
extern char *mime_generate_boundary P_((char *, int));
extern int update_encoding P_((int *,int));
extern void write_encoded P_((FILE *srcfp, out_state_t *mailer, int encoding,
int is_text, mime_send_t *mime_info));
extern void mime_write_part_headers P_((out_state_t *fp,
mime_send_t *ptr,
struct mime_send_part * part));
extern void mime_write_top_headers P_((out_state_t *fp,
mime_send_t *ptr));
extern void rfc1522_encode_text P_((char *,int,CONST char *,int));
/* attach_menu.c */
extern void attach_menu P_((FILE *F,
mime_t *T,
struct Attachments *A,
charset_t defcharset,
struct mailer_info *mailer_info,
struct header_rec *hdr,
struct AliasView *aview,
struct header_errors **header_error));
extern int Attach_it P_((char *));
extern int Check_attachments P_((void));
#define MAX_COMPAT_LEN 70
extern char * compat_filename P_((char * orig, int *ok));
extern struct string * pick_name P_((const struct string *str));
/* returnadd.c */
extern void kludge P_((char *buffer, int size));
/* lock.c */
extern int unlock P_((int interrupt, struct folder_info *folder));
extern int lock P_((int direction,struct folder_info *folder));
/* utils.c */
extern void emergency_exit P_((int interrupt));
extern void leave P_((int interrupt));
extern void create_new_folders P_((void));
extern void create_new_elmdir P_((void));
extern void rm_temps_exit P_((void));
extern void silently_exit P_((void));
extern void leave_locked P_((void));
extern void get_page P_((struct menu_common *mc,
struct menu_context *header_page));
extern void malloc_failed_exit P_((char *proc,unsigned n));
/* date.c */
extern void days_ahead P_((int days, char *buffer, int size));
extern char * elm_date_str P_((char *buf, time_t seconds, int size));
extern void make_menu_date P_((struct header_rec *entry));
/* reply.c */
extern void append_addresses_to_addr_list P_((struct addr_item **target,
const struct addr_item *list));
extern struct addr_item * handle_reply_to P_((struct header_rec *
current_header,
FILE *infile));
extern struct addr_item * get_and_expand_everyone P_((struct header_rec *
current_header,
struct addr_item *
return_address));
extern void get_return_name P_((char *address, char *name,
int trans_to_lowercase,
int size));
extern void forward P_((int index,
struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *page,
struct menu_context *prompt_area,
struct menu_context *header_area));
extern void reply_to_everyone P_((int index,
struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *page,
struct menu_context *prompt_area,
struct menu_context *header_area));
extern void reply P_((int index,
struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *page,
struct menu_context *prompt_area,
struct menu_context *header_area));
/* leavembox.c */
extern int sync_mbox P_((int resyncing, int quitting, int prompt,
struct folder_info **new_folder,
struct MailboxView *mailbox,
struct menu_context *page));
/* sync_mbox() must be called before close_cleanup_mbox */
extern void close_cleanup_mbox P_((struct MailboxView *mailbox));
/* mkhdrs.c */
extern void generate_reply_to P_((struct header_rec * current_header,
struct mailing_headers *headers));
/* options.c */
extern int options P_((struct MailboxView *mailbox,
struct AliasView *aview));
extern char * level_name P_((int n));
extern void init_opts_menu P_((void));
struct optsmenu * find_cfg_opts P_((int c));
/* hdrconfig.c */
extern void show_presend_headers P_((struct mailing_headers *headers,
charset_t hdr_charset,
struct menu_context *page));
/* returns 0 if command not found
1 if found
REDRAW_MARK is redraw required
*/
extern int presend_action P_((struct mailing_headers *headers,
struct mailer_info *mailer_info, int c,
charset_t hdr_charset,
struct AliasView *aview,
struct menu_context *page,
struct menu_context *prompt_area));
extern void edit_headers P_((struct mailing_headers *headers,
struct mailer_info *mailer_info,
charset_t hdr_charset,
int hdr_encondig_supported,
struct AliasView *aview));
extern struct string *hdr_to_expval P_((struct expanded_address addrs));
extern void hdr_to_buffer P_((struct expanded_address addrs,
struct string **ptr));
extern int buffer_to_header P_((struct expanded_address *addrs,
struct string **ptr,
int free_only,
struct mailer_info *mailer_info,
struct AliasView *aview));
/* remail.c */
extern void remail P_((struct header_rec *hdr,
FILE *F, struct AliasView *aview,
struct menu_context *page,
struct menu_context *prompt_area));
#ifdef MMDF
extern void do_mmdf_addresses P_((FILE *dest_file,
struct mailing_headers * headers));
#endif
/* editmsg.c */
extern int have_editor P_((char *editor));
extern int edit_the_message P_((char *filename,
int already_has_text,
struct mailing_headers * headers,
char *editor,
charset_t file_set,
struct mailer_info *mailer_info,
struct MailboxView *mailbox /* needed for
system_call() */,
struct AliasView *aview,
struct menu_context *page
));
extern int no_editor_edit_the_message P_((char *filename,
struct mailing_headers * headers,
charset_t file_set,
struct mailer_info *mailer_info,
struct MailboxView *mailbox
/* needed for system_call() */,
struct AliasView *aview
));
/* delete.c */
extern void delete_msg P_((int real_del,
struct menu_common *mc,
struct screen_parts *LOC));
extern void undelete_msg P_((struct menu_common *mc,
struct menu_context *header_area));
extern int DeleteTagged P_((struct menu_common *menu,
struct menu_context *page,
struct menu_context *header_area));
extern int tag_message P_((struct menu_common *mc,
struct menu_context *header_area));
extern int flag_message P_((struct menu_common *mc,
struct menu_context *header_area));
extern void unread_msg P_((struct MailboxView *mailbox,
struct menu_context *header_area));
/* forms.c */
extern int format_form P_((char *filename));
extern int check_form_file P_((char *filename));
/* quit.c */
/* returns:
0 .. do not do exit
1 .. do normal exit
EOF
Do NOT free mailbox ...
*/
extern int quit P_((int prompt, struct MailboxView *mailbox,
struct menu_context *page));
extern void resync P_((struct MailboxView **mailbox,
struct menu_context *page,
struct screen_parts *LOC));
extern struct MailboxView * change_file P_((struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *page));
/* save_opts.c */
extern void save_options P_((void));
extern void save_user_options P_((FILE *elminfo_fd, FILE *newelmrc));
char *str_opt_nam P_((char *s, int f));
/* screen.c */
extern void showscreen P_((struct menu_context *page));
extern void copy_current P_((struct menu_common *menu,
struct menu_context *ptr));
extern int sb_update_title P_((struct menu_context *ptr,
struct menu_param *list));
extern int sb_show_menu P_((struct menu_context *ptr,
struct menu_param *list));
extern void hdr_show_header P_((struct menu_context *ptr,
struct menu_param *list,
int line_number,
int index,
int is_current));
extern void hdr_show_current P_((struct menu_context *ptr,
struct menu_param *list,
int line_number,
int index,
int is_current));
extern void hdr_show_status P_((struct menu_context *ptr,
struct menu_param *list,
int line_number,
int index,
int is_current));
/* showmsg.c */
extern void OverrideCharset P_((struct MailboxView *mailbox,
struct menu_context *page,
struct menu_context *prompt_area,
struct menu_context *header_area));
extern void print_errors_att P_((struct header_errors *header_error,
int start_line,
int *cancel));
extern int show_msg P_((struct header_rec *current_header,
FILE *infile, int current, int message_count,
struct pager_page *pager_page));
extern int mbx_show_msg P_((struct MailboxView *mailbox, int msg,
struct pager_page *pager_page));
extern int need_meta P_((struct header_rec *hdr, int current,
int message_count));
/* sort.c */
extern void sort_mailbox P_((int entries, int visible,
struct MailboxView *mailbox));
extern char *sort_name P_((int type));
/* edit.c */
extern void edit_mailbox P_((struct MailboxView **mailbox,
struct menu_context *page));
extern int edit_a_file P_((const char *editfile,
struct menu_context *page));
/* limit.c */
extern int compute_visible P_((int message, struct menu_common *menu));
extern int next_message P_((int iindex, int skipdel,
struct menu_common *mc));
extern int prev_message P_((int iindex, int skipdel,
struct menu_common *mc));
extern int visible_to_index P_((int message,
struct menu_common *mc));
extern void limit P_((struct menu_common *mc,
struct menu_context *page,
struct screen_parts *LOC));
extern void ClearSelection P_((struct MailboxView *mailbox));
/* calendar.c */
extern void scan_calendar P_((struct MailboxView *mailbox));
/* browser.c */
extern struct folder_info * folder_browser P_((struct menu_context *page,
struct folder_browser *p,
struct string **buffer,
struct AliasView *aview,
CONST char *format,
CONST char *msg, ...));
enum word_sel { word_change, word_save, word_copy, word_save_copy,
word_read };
extern int gen_browser P_((struct menu_context *page,
struct folder_browser *p,
struct string **buffer,
enum word_sel w,
struct string * prev_fold,
struct AliasView *aview,
CONST char *format,
CONST char *msg, ...));
extern int browser_expand P_((struct folder_browser * XXX,
struct string **name,
struct string ** prev_folder,
struct AliasView *aview));
extern int file_browser P_((struct menu_context *page,
struct folder_browser *p,
struct string **buffer,
enum word_sel w,
struct AliasView *aview,
struct string * default_extension,
const char *format, const char *msg, ...));
/* metapager.c */
extern struct pager_page * init_pager_page P_((struct menu_common *mptr));
extern void exit_pager_page P_((struct pager_page ** pager_page,
struct menu_context * other));
extern void PressAnyKeyToContinue P_((void));
extern struct string * title_text P_((struct header_rec *hdr, int current,
int message_count,
int width, charset_t cs));
extern int metapager P_((FILE *fp, struct header_rec *hdr,
int do_headers, int current, int message_count,
struct pager_page * pager_page));
extern int mime_signature_mismatch P_((mime_t *ptr, int displaying));
/* signals.c */
extern char * Stopped_Text; /* Initialized by init.c */
extern char * Back_Text; /* Initialized by init.c */
extern char * Segv_Text; /* Initialized by init.c */
extern char * Bus_Text; /* Initialized by init.c */
extern char * Fpe_Text; /* Initialized by init.c */
extern char * Ill_Text; /* Initialized by init.c */
extern void init_signals P_((void));
extern void init_signals1 P_((void));
extern SIGHAND_TYPE quit_signal P_((int));
extern SIGHAND_TYPE hup_signal P_((int));
extern SIGHAND_TYPE term_signal P_((int));
extern SIGHAND_TYPE ill_signal P_((int));
extern SIGHAND_TYPE fpe_signal P_((int));
#ifdef SIGBUS
extern SIGHAND_TYPE bus_signal P_((int));
#endif
extern SIGHAND_TYPE segv_signal P_((int));
extern SIGHAND_TYPE alarm_signal P_((int));
extern SIGHAND_TYPE pipe_signal P_((int));
#ifdef SIGTSTP
extern SIGHAND_TYPE sig_user_stop P_((int));
extern SIGHAND_TYPE sig_return_from_user_stop P_((int));
#endif
#ifdef SIGWINCH
extern SIGHAND_TYPE winch_signal P_((int));
#endif
extern SIGHAND_TYPE usr1_signal P_((int ));
extern SIGHAND_TYPE usr2_signal P_((int));
/* src/messages/ */
struct current_storage {
struct folder_info * current_folder;
int message_count; /* max message number */
int max_headers; /* number of headers currently allocated */
struct header_rec **headers; /* array of header structure pointers */
};
extern void free_storage P_((struct current_storage **storage));
extern struct current_storage *new_storage P_((struct folder_info *new_folder));
extern void realloc_headers P_((struct current_storage *storage,
int current_count));
extern void alloc_header P_((struct current_storage *storage,
int current_count));
extern void header_zero P_((struct header_rec *));
extern void header_clear P_((struct header_rec *)); /* Free's fields */
extern void header_free P_((struct header_rec **h)); /* Free's record */
extern void header_parse_helper P_((struct header_rec *current_header,
header_list_ptr parsed_headers));
/* Better handling of current mailbox:
idx == 0 first
*/
extern struct MailboxView * give_next_open_mailbox P_((int *idx,
int signal));
extern void free_all_mailboxes P_((void));
/* Joins storage to new view */
extern struct MailboxView * malloc_mailbox_view P_((struct current_storage *
storage));
extern struct MailboxView * digest_to_mailbox_view P_((mime_t *list,
time_t received_time,
char * env_from,
FILE *F,
charset_t defcharset));
extern struct MailboxView * partial_to_mailbox_view P_((struct MailboxView *
parent));
extern struct MailboxView * duplicate_to_mailbox_view
P_((struct MailboxView * parent));
extern void free_mailbox P_((struct MailboxView **mailbox));
/* Return 1 if redraw required */
extern int update_view P_((struct MailboxView *mailbox));
extern struct folder_info * get_main_folder P_((struct MailboxView *
mailbox));
/* Can be called from signal handler */
extern struct current_storage * get_storage P_((struct MailboxView *mailbox,
int i));
/* Can be called from signal handler */
extern int get_storage_count P_((struct MailboxView *mailbox));
extern void add_storage P_((struct MailboxView *mailbox,
struct current_storage *storage));
extern void add_digest P_((struct MailboxView *mailbox,
mime_t *list,
time_t received_time,
char * env_from,
FILE *F,
charset_t defcharset
));
extern struct header_rec * give_header P_((struct MailboxView *mailbox,
int index));
extern void give_index_number P_((struct MailboxView *mailbox,
int index, struct folder_view *res));
/* current == index+1 value is used only by caller */
extern int get_current P_((struct MailboxView *mailbox));
extern void set_current P_((struct MailboxView *mailbox, int cur));
extern int get_selected P_((struct MailboxView *mailbox));
extern void set_selected P_((struct MailboxView *mailbox, int sel));
/* Returns -1 if threads not initialized, create=1 initializes threads */
extern int get_message_count P_((struct MailboxView *mailbox));
#if ANSI_C
struct sort_data;
#endif
extern struct header_rec * give_header_s P_((struct sort_data *s));
extern void give_index_number_s P_((struct sort_data *s,
struct folder_view *res));
typedef int hdr_compare_func P_((struct sort_data *s1,
struct sort_data *s2));
extern void sort_mailbox_view P_((struct MailboxView *mailbox,
hdr_compare_func *func));
/* Return 1 if succeed, 0 is fails --
seeks to {header}->offset
*/
extern int give_message_data P_((struct MailboxView *mailbox,
int index,
struct header_rec **ret_header,
FILE **ret_F,
struct counter_data *counter,
parse_mime_callback *parse_mime));
extern int give_message_folder P_((struct MailboxView *mailbox,
int index,
struct header_rec **ret_header,
struct folder_info **ret_folder,
struct counter_data *counter,
parse_mime_callback *parse_mime));
extern void write_mailbox_info P_((FILE *fp, struct MailboxView *mailbox));
/* caller must string_free() result -- calculated if not set */
extern struct string * mailbox_title P_((struct MailboxView *mailbox));
/* v must not fred -- shared/stored to structure
-- set_mailbox_title will free_string()
it later */
extern void set_mailbox_title P_((struct MailboxView *mailbox,
struct string *v));
/* src/messages/thread.c */
extern void update_mailbox_threads P_((struct MailboxView *mailbox));
/* Used for sorting */
struct thread_info {
struct string * thread_subject;
/* first and last on sent time */
time_t time_sent_first;
time_t time_sent_last;
int num_messages; /* Number of messages on this thread */
};
extern CONST struct thread_info * give_thread_info_s P_((struct sort_data *s));
extern int get_thread_count P_((struct MailboxView *mailbox, int create));
extern CONST struct thread_info * give_thread_info P_((struct MailboxView *
mailbox, int idx));
/* caller must free result */
extern int * give_thread_message_list P_((struct MailboxView * mailbox,
int idx,
int *reslen));
/* src/messages/status.c */
enum status_x { status_basic, status_1 };
/* bit field:
status_basic:
ACTION, CONFIDENTIAL, DELETED, EXPIRED, FORM_LETTER, NEW,
PRIVATE_MAIL, TAGGED, URGENT, VISIBLE, UNREAD, REPLIED,
MIME_MESSAGE, PRE_MIME_CONTENT, MIME_UNSUPPORTED, NOHDRENCODING
status_1:
S1_FLAGGED
*/
extern char * show_status_message P_((struct MailboxView *mailbox,
int index));
extern int ison_status_message P_((struct MailboxView *mailbox,
int index,
enum status_x t, int mask));
extern int setf_status_message P_((struct MailboxView *mailbox,
int index,
enum status_x t, int mask));
extern int clearf_status_message P_((struct MailboxView *mailbox,
int index,
enum status_x t, int mask));
/* src/messages/canceled_mail.c */
extern struct MailboxView *give_canceled_mail P_((void));
extern void close_canceled_mail P_((void));
extern FILE * add_canceled_mail P_((char **outfile,
struct mailing_headers * headers,
struct MailboxView *view,
time_t X,
int lines,
header_list_ptr h,
long body_offset));
extern void delete_marked_canceled_mails P_((struct MailboxView *view));
extern void sync_canceled_mails P_((struct MailboxView *view));
extern int cancel_set_current P_((struct MailboxView * cancel_view,
char *last_canceled_mail));
extern void delete_current_cancel P_((struct MailboxView * cancel_view,
FILE *ref_file));
/* src/messages/thread_messages.c */
extern struct MailboxView * thread_to_mailbox_view P_((struct MailboxView *
parent,
int thread_idx));
/* src/partial.c */
extern void ViewPartial P_((struct MailboxView *parent_mailbox,
struct AliasView *aview,
struct menu_context *parent_page
));
extern int have_partial P_((struct MailboxView *parent_mailbox));
/* src/digest.c */
/* Return 'i' is should go to index */
extern int ViewDigest P_((struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *parent_page
));
/* src/view_one_thread.c */
extern void ViewThread1 P_((struct MailboxView *parent_mailbox,
struct AliasView *aview,
int thread_index,
struct menu_context *parent_page,
int *needresort
));
/* src/screen/context.c */
/* -1 == no changes */
extern void set_root_menu(int lines, int columns);
extern struct menu_context * default_context;
extern struct menu_context * new_menu_context P_((void));
extern void erase_menu_context P_((struct menu_context **ptr));
extern int menu_resized P_((struct menu_context *ptr));
extern int menu_need_redraw P_((struct menu_context *ptr));
extern void menu_get_sizes P_((struct menu_context *ptr,
int *lines, int *columns));
extern void menu_trigger_redraw P_((struct menu_context *ptr));
/* Call refresh routines of children */
extern void menu_redraw_children P_((struct menu_context *ptr));
/* called from signal handler */
extern void menu_context_resize P_((void));
extern void menu_context_redraw P_((void));
extern void cancel_set_ttysig_X P_((void));
extern void cancel_reset_ttysig_X P_((void));
/* src/screen/menu_param.c */
extern int mp_lookup_integer P_((struct menu_param *list, int idx));
extern struct menu_common * mp_lookup_mcommon P_((struct menu_param *list,
int idx));
extern struct menu_anon_param * mp_lookup_anon P_((struct menu_param *list,
int idx));
extern void mp_list_set_integer P_((struct menu_param *list, int idx, int v));
extern void mp_list_set_mcommon P_((struct menu_param *list,
int idx,
struct menu_common *v));
extern void mp_list_set_anon P_((struct menu_param *list,
int idx,
struct menu_anon_param *v));
/* src/screen/subpage.c */
/* Returns 1 if redraw not need to be signaled */
typedef int subpage_simple_redraw P_((struct menu_context *ptr,
struct menu_param *list));
extern int subpage_simple_noredraw P_((struct menu_context *ptr,
struct menu_param *list));
extern struct menu_context * new_menu_subpage P_((struct menu_context *parent,
int rel_start_line,
int lines,
subpage_simple_redraw redraw,
/* only rerefrence is saved */
struct menu_param *list));
/* Creates copy of subpage which is attached to new page */
extern struct menu_context * dup_menu_subpage P_((struct menu_context *
new_parent,
struct menu_context *orig));
extern void menu_subpage_relocate P_((struct menu_context *subpage,
struct menu_context *parent,
int rel_start_line,
int lines));
/* src/screen/header.c */
typedef void header_line_redraw P_((struct menu_context *ptr,
struct menu_param *list,
int line_number,
int index,
int is_current));
extern void header_line_noredraw P_((struct menu_context *ptr,
struct menu_param *list,
int line_number,
int index,
int is_current));
typedef void header_param_changed P_((struct menu_context *ptr,
struct menu_param *list,
int param_index));
extern void null_header_param_changed P_((struct menu_context *ptr,
struct menu_param *list,
int param_index));
extern struct menu_context * new_menu_header P_((struct menu_context *parent,
int rel_start_line,
int lines,
header_line_redraw line_redraw,
header_line_redraw current_redraw,
header_param_changed param_change,
header_line_redraw status_redraw,
/* only rereference is saved */
struct menu_param *list));
enum header_params { header_top_line, header_current,
HEADER_PARAMS_COUNT };
extern void menu_header_change P_((struct menu_context *subpage,
enum header_params param,
int value));
extern int menu_header_get P_((struct menu_context *subpage,
enum header_params param));
extern int menu_header_change_item P_((struct menu_context *subpage,
int index));
extern void menu_header_relocate P_((struct menu_context *subpage,
struct menu_context *parent,
int rel_start_line,
int lines));
extern void menu_header_status_update P_((struct menu_context *subpage,
int item));
/* ------------------------------------------------------- */
/* src/screen/screen.c */
#define ClearLine(n) MoveCursor(n,0); CleartoEOLN()
#define menu_ClearLine(page,n) menu_MoveCursor(page,n,0); menu_CleartoEOLN(page)
extern int InitScreen P_((struct menu_context **page));
extern void ScreenSize P_((int *lines, int *columns));
/* NOTE: menu_ScreenSize DO NOT return lines-1 (as ScreenSize() do */
extern void menu_ScreenSize P_((struct menu_context * ctx,
int *lines, int *columns));
extern void menu_set_default P_((struct menu_context *ctx));
extern void Writechar P_((int ch));
extern void menu_Writechar P_((struct menu_context * ctx, int ch));
extern void Write_to_screen P_((CONST char *format, CONST char *msg, ...));
extern void menu_Write_to_screen P_((struct menu_context * ctx,
CONST char *format, CONST char *msg, ...));
extern void PutLine0 P_((int x, int y, CONST char *line));
extern void menu_PutLine0 P_((struct menu_context * ctx,
int x, int y, CONST char *line));
extern void PutLineX P_((int line , int col, CONST char *, CONST char *, ...));
extern void menu_PutLineX P_((struct menu_context * ctx,
int line , int col, CONST char *, CONST char *, ...));
extern void CleartoEOLN P_((void));
extern void menu_CleartoEOLN P_((struct menu_context * ctx));
extern void CleartoEOS P_((void));
extern void menu_CleartoEOS P_((struct menu_context * ctx));
extern int RawState P_((void));
extern struct menu_context * Raw P_((int state));
#define READCH_MASK 0x0FFF /* Mask flags off */
#define READCH_CURSOR 0x1000 /* Return cursor keys */
#define READCH_NOCURSOR 0x2000 /* Disable cursor keys */
#define READCH_term_char 0x4000 /* Return term chars */
#define READCH_resize 0x8000 /* Check resize .... */
#define READCH_sig_char 0x10000 /* Return sig chars */
#define READCH_quote 0x20000 /* Try quote next control character */
#define READCH_poll 0x40000 /* Wait a second for character,
returns TIMEOUT_MARK if not supported */
#define REDRAW_MARK 257 /* Artificial "char" for redrawing */
#define UP_MARK 258 /* Artificial UP key */
#define LEFT_MARK 259 /* Artificial LEFT key */
#define RIGHT_MARK 260 /* Artificial RIGHT key */
#define DOWN_MARK 261 /* Artificial DOWN key */
#define PAGEUP_MARK 262 /* Artificial PAGE UP key */
#define PAGEDOWN_MARK 263 /* Artificial PAGE DOWN key */
#define HELP_MARK 264 /* Artificial HELP key */
#define HOME_MARK 265 /* Artificial HOME key */
#define FIND_MARK 266 /* Artificial FIND key */
#define SPACE_MARK 267 /* used by builtinplus */
#define RESIZE_MARK 268 /* Used ny menu_context */
#define TIMEOUT_MARK 269 /* READCH_poll gives no character */
#define DELETE_MARK 270 /* Artificial DELETE key */
#define END_MARK 271 /* Artificial END key */
#define TERMCH_min_char 300
#define TERMCH_backspace 300 /* term_char: backspace */
#define TERMCH_kill_line 301
#define TERMCH_word_erase 302
#define TERMCH_interrupt_char 303
#define TERMCH_reprint_char 304
#define TERMCH_eof_char 305
extern struct charset_state * ReadCh2 P_((int flags));
extern struct charset_state * menu_ReadCh2 P_((struct menu_context *ptr,
int flags));
extern int menu_ReadCh P_((struct menu_context *ptr, int flags));
extern void GetXYLocation P_((int *x,int *y));
extern void menu_GetXYLocation P_((struct menu_context *ctx,
int *x,int *y));
extern void ClearScreen P_((int interrupt));
extern void menu_ClearScreen P_((struct menu_context *ptr));
extern void MoveCursor P_((int row, int col));
extern void menu_MoveCursor P_((struct menu_context *ptr,
int row, int col));
extern int menu_GetAbsLine P_((struct menu_context *ctx,int row));
extern void CarriageReturn P_((void));
extern void NewLine P_((void));
extern void StartBold P_((void));
extern void EndBold P_((void));
extern void StartInverse P_((void));
extern void EndInverse P_((void));
extern void StartUnderline P_((void));
extern void EndUnderline P_((void));
extern void StartHalfbright P_((void));
extern void EndHalfbright P_((void));
#define pg_BOLD 0x01
#define pg_UNDERLINE 0x02
#define pg_HALFBRIGHT 0x04
#define pg_INVERSE 0x08
extern void menu_StartXX P_((struct menu_context *ctx, int f));
extern void menu_EndXX P_((struct menu_context *ctx, int f));
extern int get_tabspacing P_((void));
/* screen/curses.c */
extern void WriteRaw P_((const char *str));
extern struct string *curses_printable_clip P_((const struct string *S,
int *pos,
int len,
int *visible_len,
int max_visible));
extern int raw_off_called P_((void));
extern void transmit_functions P_((int newstate));
extern void InvalidateLocation P_((void));
/* screen/curs_input.c */
extern int error_sleep P_((int seconds));
/* screen/termcharcharset.c */
extern charset_t * give_display_charsets P_((charset_t *storage,
int max));
extern int set_display_charset P_((charset_t set, int silent));
extern void switch_display_charset P_((int to_display));
extern void init_system_charset P_((void));
/* screen/termtitle.c */
extern int set_terminal_titles P_((char *title, char *icon));
extern void switch_title P_((int to_display));
/* screen/termbuffer.c */
extern void FlushBuffer P_((void));
/* src/alias_alloc.c */
#if ANSI_C
struct current_astorage;
#endif
extern void alias_free P_((struct alias_rec **h)); /* Free's record */
/* src/aliases/aliases.c */
extern struct AliasView * new_aliasview P_((void));
extern void free_aliasview P_((struct AliasView **x));
extern struct alias_rec * give_alias P_((struct AliasView *aview,
int index));
extern void free_all_aliasviews P_((void));
extern int get_alias_count P_((struct AliasView *aview));
extern int get_total_alias_count P_((struct AliasView *aview));
/* current == index+1 value is used only by caller */
extern int get_alias_current P_((struct AliasView *aview));
extern void set_alias_current P_((struct AliasView *aview, int cur));
extern int get_alias_selected P_((struct AliasView *aview));
extern void set_alias_selected P_((struct AliasView *aview, int sel));
#if ANSI_C
struct sort_data2;
#endif
extern struct alias_rec * give_alias_s P_((struct sort_data2 *s));
typedef int alias_compare_func P_((struct sort_data2 *s1,
struct sort_data2 *s2));
extern void sort_aview P_((struct AliasView *aview,
alias_compare_func *func));
/* Return 1 if changes */
extern int update_aview P_((struct AliasView *aview));
/* aliases/astorage_hash.c */
void add_files_to_aview P_((struct AliasView *x));
/* menu_common/ */
struct menu_common {
unsigned short magic;
struct mcommon_type * mtype;
void * ptr;
};
/* menu_common/alias.c */
extern void set_mcommon_from_aliasview P_((struct menu_common *m, struct AliasView *aw));
/* menu_common/mailbox.c */
void set_mcommon_from_mbxview P_((struct menu_common *m, struct MailboxView *aw));
/* menu_common/mcommon.c */
/* bit field (for aliases):
SYSTEM, USER, PERSON, GROUP, DUPLICATE
*/
extern int mcommon_get_type P_((struct menu_common *m, int idx));
extern int mcommon_setf_status P_((struct menu_common *m, int idx,
enum status_x t, int stat));
extern int mcommon_ison_status P_((struct menu_common *m, int idx,
enum status_x t, int stat));
#define mcommon_isoff_status(m,idx,t,stat) (!mcommon_ison_status(m,idx,t,stat))
extern int mcommon_clearf_status P_((struct menu_common *m, int idx,
enum status_x t, int stat));
extern char * mcommon_show_status P_((struct menu_common *m, int idx));
/* note that current is index+1 */
extern int mcommon_get_current P_((struct menu_common *m));
extern int mcommon_get_count P_((struct menu_common *m));
extern int mcommon_get_selected P_((struct menu_common *m));
extern void mcommon_set_current P_((struct menu_common *m, int cur));
extern void mcommon_set_selected P_((struct menu_common *m, int sel));
extern int mcommon_matches P_((struct menu_common *m, int idx, struct string * meta_pattern));
extern int mcommon_limit_helper P_((struct menu_common *m,
struct string *str,
int **retarr,
struct menu_context *page));
extern void mcommon_limit_print_help P_((struct menu_common *m,
int last_selected));
extern void mcommon_limit_print_result P_((struct menu_common *m));
extern int mcommon_match_in_text P_((struct menu_common *m,
struct string * meta_pattern,
struct menu_context *page,
struct screen_parts *LOC));
extern void mcommon_screen_print_menu_line P_((struct menu_common *m,
int idx,
struct menu_context *page));
enum mcommon_item { m_item, m_items, m_Item, m_Items, m_Prompt,
m_no_item,
MCOMMON_ITEM_COUNT
};
extern CONST struct string * mcommon_give_item P_((struct menu_common *m,
enum mcommon_item I));
extern struct string * mcommon_title P_((struct menu_common *m));
/* view_folder.c */
extern void send_view_folder P_((struct MailboxView *current_mailbox,
struct Attachments *attachments,
struct menu_context *parent_page,
struct AliasView *aview,
struct mailer_info *mailer_info));
/* url/url.c */
/* raw implies some charset used on URL
must be absolute url if parent is no given
*/
extern struct url * url_from_raw P_((struct string *raw, struct url *parent,
struct header_errors **header_error));
extern struct url * new_url P_((const char *scheme));
extern void free_url P_((struct url **url));
extern enum url_type { url_unknown,
url_mailing,
url_mailbox_list,
url_mailbox
} get_url_type P_((const struct url
*url));
extern int set_mailing_headers_from_url P_((struct mailing_headers *headers,
const struct url *url,
struct mailer_info *mailer_info));
extern struct text_block * give_text_body_from_url P_((const struct url *url,
int quote_l,
int *errors));
/* This gives absolute URL even when original URL was relative */
extern struct string * raw_from_url P_((const struct url *url));
/* May not be
uin16 port
because this is promoted to int
*/
/* May not be
uin16 port
because this is promoted to int
*/
/* Return 1 for open */
typedef int verify_remote_url_f P_((const struct url *url,
const struct string * user,
const struct string * host,
struct string ** anon_passwd, /* prompt for 'anon password' */
int port,
int default_port));
extern struct folder_info * get_folder_from_url P_((const struct url *url,
verify_remote_url_f * verify_remote));
/* block.c */
extern struct text_block * block_from_filename P_((char * filename,
charset_t cs,
int quote));
extern struct text_block * block_from_stdin P_((void));
extern struct text_block * block_from_string P_((const struct string *S,
int quote));
extern int add_block_to_mail P_((struct text_block *block,
int * already_has_text,
FILE * edit_buffer,
charset_t * edit_charset));
extern void free_block P_((struct text_block **block));
/* src/list/list.c */
extern void free_list_info P_((struct list_info **list));
extern struct list_info * parse_list_headers P_((header_list_ptr
parsed_headers,
int mime,
charset_t cs,
struct header_errors
** header_error));
extern struct list_info * dup_list_info P_((struct list_info *src));
extern void metapager_list_note P_((out_state_t *buffer,
struct list_info *list));
/* src/list/reply.c */
/* Returns 'i' if should go index */
extern int generic_reply P_((int index,
struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *page,
struct menu_context *old_prompt));
/* src/list/info.c */
/* Returns 'i' if should go index */
extern int list_info P_((int index,
struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *page,
struct menu_context *old_prompt));
/* May not be
uin16 port
because this is promoted to int
*/
/* Return 1 for open */
extern int verify_remote_url P_((const struct url *url,
const struct string * user,
const struct string * host,
struct string ** anon_passwd, /* prompt for 'anon password' */
int port,
int default_port));
/* src/extended.c */
extern void extended_command P_((struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *parent_page,
struct screen_parts *parent_LOC));
/* src/duplicate_removal.c */
extern void ViewRemoveDuplicate P_((struct MailboxView *parent_mailbox,
struct AliasView *aview,
struct menu_context *parent_page));
/* src/thread.c */
extern void ViewThreads P_((struct MailboxView *mailbox,
struct AliasView *aview,
struct menu_context *parent_page));
/* src/mailbox.c */
extern int main_messages_menu P_((struct menu_context *page,
char **req_mfile_vector,
struct AliasView * cur_aliaslist,
enum check_mode check_mode));
extern int url_messages_menu P_((struct menu_context * page,
struct url * url,
struct AliasView * cur_aliaslist,
enum check_mode check_mode));
/*
* Local Variables:
* mode:c
* c-basic-offset:4
* buffer-file-coding-system: iso-8859-1
* End:
*/
syntax highlighted by Code2HTML, v. 0.9.1