#ifndef __MAILSYNC_OPTIONS__

using namespace std;

// hierarchy delimiter for IMAP
#define DEFAULT_DELIMITER '/'

typedef enum { HEADER_MSGID, MD5_MSGID } msgid_t;

//////////////////////////////////////////////////////////////////////////
// Options, commandline parsing and default settings
//////////////////////////////////////////////////////////////////////////

typedef struct options_struct {
  bool log_chatter;
  bool log_warn;               // Show c-client warnings and warnings about
  bool log_parse;              // Log RFC822 parse errors
  bool show_summary;           // 1 line of output per mailbox
  bool show_from;              // 1 line of output per message
  bool show_message_id;        // Implies show_from
  bool delete_messages;
  bool delete_empty_mailboxes;
  bool debug;
  bool debug_imap;
  bool debug_config;
  bool report_braindammaged_msgids;
  bool copy_deleted_messages;
  bool simulate;
  msgid_t msgid_type;

  // the following options are mandatory
  bool expunge_duplicates;     // Should duplicates be deleted?
  bool log_error;              // Log serious errors

  options_struct(): log_chatter(0),
                    log_warn(0),
                    log_parse(0),
                    show_summary(1),
                    show_from(0),
                    show_message_id(0),
                    delete_messages(1),
                    delete_empty_mailboxes(0),
                    debug(0),
                    debug_imap(0),
                    debug_config(0),
                    report_braindammaged_msgids(0),
                    copy_deleted_messages(0),
                    simulate(0),
                    msgid_type(HEADER_MSGID),
                    expunge_duplicates(1),
                    log_error(1) {};
} options_t;

#define __MAILSYNC_OPTIONS__
#endif
