Minor GUI fixes.
[gpgol.git] / src / common.h
index 1f921e4..fbcc53b 100644 (file)
@@ -1,6 +1,6 @@
 /* common.h - Common declarations for GpgOL
  *     Copyright (C) 2004 Timo Schulz
- *     Copyright (C) 2005, 2006, 2007 g10 Code GmbH
+ *     Copyright (C) 2005, 2006, 2007, 2008 g10 Code GmbH
  *
  * This file is part of GpgOL.
  *
@@ -105,7 +105,9 @@ extern
 #endif
 struct 
 {
-  int enable_debug;         /* Enable extra debug options. */
+  int enable_debug;         /* Enable extra debug options.  Values
+                                larger than 1 increases the debug log
+                                verbosity.  */
   int enable_smime;         /* Enable S/MIME support. */
   int passwd_ttl;            /* Time in seconds the passphrase is stored. */
   protocol_t default_protocol;/* The default protocol. */
@@ -116,6 +118,7 @@ struct
   int enable_default_key;    /* Enable the use of DEFAULT_KEY. */
   int preview_decrypt;       /* Decrypt in preview window. */
   int prefer_html;           /* Prefer html in html/text alternatives. */
+  int body_as_attachment;    /* Present encrypted message as attachment.  */
 
   /* The compatibility flags. */
   struct 
@@ -128,6 +131,17 @@ struct
     unsigned int auto_decrypt: 1;   /* Try to decrypt when clicked. */
     unsigned int no_attestation: 1; /* Don't create an attestation. */
   } compat; 
+
+  /* The SVN revision as stored in the registry.  */
+  int svn_revision; 
+
+  /* The SVN revision of the the binary used to install the forms.  */
+  int forms_revision;
+
+  /* Disable message processing until restart.  This is required to
+     implement message reverting as a perparation to remove GpgOL.  */
+  int disable_gpgol;
+
 } opt;
 
 
@@ -141,6 +155,39 @@ struct b64_state_s
 };
 typedef struct b64_state_s b64_state_t;
 
+/* Bit values used for extra log file verbosity.  Value 1 is reserved
+   to enable debug menu options.  */
+#define DBG_IOWORKER       (1<<1)
+#define DBG_IOWORKER_EXTRA (1<<2) 
+#define DBG_FILTER         (1<<3)
+#define DBG_FILTER_EXTRA   (1<<4) 
+#define DBG_MEMORY         (1<<5)
+#define DBG_COMMANDS       (1<<6)
+#define DBG_MIME_PARSER    (1<<7)
+#define DBG_MIME_DATA      (1<<8)
+
+/* Macros to used in conditionals to enable debug output.  */
+#define debug_commands    (opt.enable_debug & DBG_COMMANDS)
+
+
+/* Type and constants used with parse_tlv.  */
+struct tlvinfo_s
+{
+  int cls;            /* The class of the tag.  */             
+  int tag;            /* The tag.  */           
+  int is_cons;        /* True if it is a constructed object.  */
+  int is_ndef;        /* True if the object has an indefinite length.  */
+  size_t length;      /* The length of the value.  */
+  size_t nhdr;        /* The number of octets in the header (tag,length). */
+};
+typedef struct tlvinfo_s tlvinfo_t;
+#define MY_ASN_CLASS_UNIVERSAL   0
+#define MY_ASN_CLASS_APPLICATION 1
+#define MY_ASN_CLASS_CONTEXT     2
+#define MY_ASN_CLASS_PRIVATE     3
+#define MY_ASN_TAG_OBJECT_ID     6
+#define MY_ASN_TAG_SEQUENCE     16
+
 
 
 /*-- common.c --*/
@@ -151,8 +198,9 @@ char *get_save_filename (HWND root, const char *srcname);
 char *utf8_to_wincp (const char *string);
 
 const char *default_homedir (void);
+char *get_data_dir (void);
 
-size_t qp_decode (char *buffer, size_t length);
+size_t qp_decode (char *buffer, size_t length, int *r_slbrk);
 void b64_init (b64_state_t *state);
 size_t b64_decode (b64_state_t *state, char *buffer, size_t length);
 
@@ -163,6 +211,8 @@ char *generate_boundary (char *buffer);
 
 int gpgol_spawn_detached (const char *cmdline);
 
+int parse_tlv (char const **buffer, size_t *size, tlvinfo_t *ti);
+
 
 /*-- recipient-dialog.c --*/
 unsigned int recipient_dialog_box (gpgme_key_t **ret_rset);
@@ -179,7 +229,6 @@ const char *get_pubkey_algo_str (gpgme_pubkey_algo_t id);
 
 /*-- config-dialog.c --*/
 void config_dialog_box (HWND parent);
-int start_key_manager (void);
 int store_extension_value (const char *key, const char *val);
 int load_extension_value (const char *key, char **val);