[geary/mjog/misc-criticals: 8/9] Geary.RFC822: Use a singlton GMime.ParserOptions object



commit cdf92b06b2b6c1ca8685a5724666b11be55809b7
Author: Michael Gratton <mike vee net>
Date:   Fri Jun 26 17:24:29 2020 +1000

    Geary.RFC822: Use a singlton GMime.ParserOptions object
    
    Maintain a ref to a singleton options object, be explicit in what
    options are being used.

 src/engine/rfc822/rfc822.vala | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)
---
diff --git a/src/engine/rfc822/rfc822.vala b/src/engine/rfc822/rfc822.vala
index 3d800508e..d25df3da0 100644
--- a/src/engine/rfc822/rfc822.vala
+++ b/src/engine/rfc822/rfc822.vala
@@ -24,7 +24,9 @@ namespace Geary.RFC822 {
      */
     public const string ASCII_CHARSET = "US-ASCII";
 
-    internal Regex? invalid_filename_character_re = null;
+    internal GMime.ParserOptions gmime_parser_options;
+
+    internal Regex? invalid_filename_character_re;
 
     private int init_count = 0;
 
@@ -34,7 +36,12 @@ namespace Geary.RFC822 {
             return;
 
         GMime.init();
-        GMime.ParserOptions.get_default().set_allow_addresses_without_domain(true);
+
+        gmime_parser_options = GMime.ParserOptions.get_default();
+        gmime_parser_options.set_allow_addresses_without_domain(true);
+        gmime_parser_options.set_address_compliance_mode(LOOSE);
+        gmime_parser_options.set_parameter_compliance_mode(LOOSE);
+        gmime_parser_options.set_rfc2047_compliance_mode(LOOSE);
 
         try {
             invalid_filename_character_re = new Regex("[/\\0]");
@@ -44,11 +51,11 @@ namespace Geary.RFC822 {
     }
 
     public GMime.FormatOptions get_format_options() {
-        return GMime.FormatOptions.get_default().clone();
+        return GMime.FormatOptions.get_default();
     }
 
     public GMime.ParserOptions get_parser_options() {
-        return GMime.ParserOptions.get_default().clone();
+        return Geary.RFC822.gmime_parser_options;
     }
 
     public string? get_charset() {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]