[geary] Remove a number of redundant fns in Engine.Util.Ascii.



commit 1d8c4aea80248babfb2d05153ea7191302c0bc3e
Author: Michael James Gratton <mike vee net>
Date:   Thu Jun 16 19:01:26 2016 -0400

    Remove a number of redundant fns in Engine.Util.Ascii.
    
    * src/engine/util/util-ascii.vala (Geary.Ascii): Remove functions that
      are now supported by Vala 0.26, that are simple statements, or are only
      used once elsewhere. Update call sites.

 src/engine/imap/message/imap-data-format.vala      |    6 +-
 .../message/imap-fetch-body-data-specifier.vala    |   22 ++++---
 src/engine/imap/message/imap-internal-date.vala    |    8 +-
 .../imap/message/imap-mailbox-specifier.vala       |   24 ++++----
 .../imap/parameter/imap-string-parameter.vala      |   16 +++---
 .../imap/response/imap-response-code-type.vala     |    8 +-
 src/engine/mime/mime-content-parameters.vala       |    8 +-
 src/engine/mime/mime-disposition-type.vala         |   14 ++--
 src/engine/mime/mime-multipart-subtype.vala        |   14 ++--
 src/engine/rfc822/rfc822-mailbox-address.vala      |   10 ++--
 src/engine/smtp/smtp-command.vala                  |   22 ++++----
 src/engine/smtp/smtp-greeting.vala                 |   10 ++--
 src/engine/util/util-ascii.vala                    |   59 +++----------------
 13 files changed, 92 insertions(+), 129 deletions(-)
---
diff --git a/src/engine/imap/message/imap-data-format.vala b/src/engine/imap/message/imap-data-format.vala
index 64879af..17a7ed5 100644
--- a/src/engine/imap/message/imap-data-format.vala
+++ b/src/engine/imap/message/imap-data-format.vala
@@ -23,10 +23,10 @@ public enum Quoting {
 private bool is_special_char(char ch, char[] ar, string? exceptions) {
     if (ch > 0x7F || ch.iscntrl())
         return true;
-    
+
     if (ch in ar)
-        return (exceptions != null) ? Ascii.index_of(exceptions, ch) < 0 : true;
-    
+        return (exceptions != null) ? exceptions.index_of_char(ch) < 0 : true;
+
     return false;
 }
 
diff --git a/src/engine/imap/message/imap-fetch-body-data-specifier.vala 
b/src/engine/imap/message/imap-fetch-body-data-specifier.vala
index b2dda65..b45ba89 100644
--- a/src/engine/imap/message/imap-fetch-body-data-specifier.vala
+++ b/src/engine/imap/message/imap-fetch-body-data-specifier.vala
@@ -73,15 +73,15 @@ public class Geary.Imap.FetchBodyDataSpecifier : BaseObject, Gee.Hashable<FetchB
                     assert_not_reached();
             }
         }
-        
+
         public static SectionPart deserialize(string value) throws ImapError {
             if (String.is_empty(value))
                 return NONE;
-            
-            switch (Ascii.strdown(value)) {
+
+            switch (value.down()) {
                 case "header":
                     return HEADER;
-                
+
                 case "header.fields":
                     return HEADER_FIELDS;
                 
@@ -178,23 +178,25 @@ public class Geary.Imap.FetchBodyDataSpecifier : BaseObject, Gee.Hashable<FetchB
         this.subset_start = subset_start;
         this.subset_count = subset_count;
         this.is_peek = is_peek;
-        
+
         if (field_names != null && field_names.length > 0) {
-            this.field_names = new Gee.TreeSet<string>(Ascii.strcmp);
+            this.field_names = new Gee.TreeSet<string>((s1, s2) => {
+                    return GLib.strcmp(s1, s2);
+                });
             foreach (string field_name in field_names) {
-                string converted = Ascii.strdown(field_name.strip());
-                
+                string converted = field_name.strip().down();
+
                 if (!String.is_empty(converted))
                     this.field_names.add(converted);
             }
         } else {
             this.field_names = null;
         }
-        
+
         // see equal_to() for why the response version is used
         hashable = serialize_response();
     }
-    
+
     /**
      * Returns the { link FetchBodyDataSpecifier} in a string ready for a { link Command}.
      *
diff --git a/src/engine/imap/message/imap-internal-date.vala b/src/engine/imap/message/imap-internal-date.vala
index cc12a2d..0cfb8ee 100644
--- a/src/engine/imap/message/imap-internal-date.vala
+++ b/src/engine/imap/message/imap-internal-date.vala
@@ -67,18 +67,18 @@ public class Geary.Imap.InternalDate : Geary.MessageData.AbstractMessageData, Ge
             || year < 1970) {
             throw new ImapError.PARSE_ERROR("Invalid INTERNALDATE \"%s\": bad numerical range", 
internaldate);
         }
-        
+
         // check month (this catches localization problems)
         int month = -1;
-        string mon_down = Ascii.strdown(((string) mon));
+        string mon_down = ((string) mon).down();
         for (int ctr = 0; ctr < EN_US_MON_DOWN.length; ctr++) {
             if (mon_down == EN_US_MON_DOWN[ctr]) {
                 month = ctr;
-                
+
                 break;
             }
         }
-        
+
         if (month < 0)
             throw new ImapError.PARSE_ERROR("Invalid INTERNALDATE \"%s\": bad month", internaldate);
         
diff --git a/src/engine/imap/message/imap-mailbox-specifier.vala 
b/src/engine/imap/message/imap-mailbox-specifier.vala
index d675895..fa0c7c0 100644
--- a/src/engine/imap/message/imap-mailbox-specifier.vala
+++ b/src/engine/imap/message/imap-mailbox-specifier.vala
@@ -72,7 +72,7 @@ public class Geary.Imap.MailboxSpecifier : BaseObject, Gee.Hashable<MailboxSpeci
     public static bool is_inbox_name(string name) {
         return Ascii.stri_equal(name, CANONICAL_INBOX_NAME);
     }
-    
+
     /**
      * Returns true if the string is the ''canonical'' name of the IMAP Inbox.
      *
@@ -85,9 +85,9 @@ public class Geary.Imap.MailboxSpecifier : BaseObject, Gee.Hashable<MailboxSpeci
      * @see is_inbox_name
      */
     public static bool is_canonical_inbox_name(string name) {
-        return Ascii.str_equal(name, CANONICAL_INBOX_NAME);
+        return (name == CANONICAL_INBOX_NAME);
     }
-    
+
     /**
      * Converts a generic { link FolderPath} into an IMAP mailbox specifier.
      */
@@ -175,27 +175,27 @@ public class Geary.Imap.MailboxSpecifier : BaseObject, Gee.Hashable<MailboxSpeci
     public uint hash() {
         return is_inbox ? Ascii.stri_hash(name) : Ascii.str_hash(name);
     }
-    
+
     public bool equal_to(MailboxSpecifier other) {
         if (this == other)
             return true;
-        
+
         if (is_inbox)
             return Ascii.stri_equal(name, other.name);
-        
-        return Ascii.str_equal(name, other.name);
+
+        return (name == other.name);
     }
-    
+
     public int compare_to(MailboxSpecifier other) {
         if (this == other)
             return 0;
-        
+
         if (is_inbox && other.is_inbox)
             return 0;
-        
-        return Ascii.strcmp(name, other.name);
+
+        return GLib.strcmp(name, other.name);
     }
-    
+
     public string to_string() {
         return name;
     }
diff --git a/src/engine/imap/parameter/imap-string-parameter.vala 
b/src/engine/imap/parameter/imap-string-parameter.vala
index aee3553..5398451 100644
--- a/src/engine/imap/parameter/imap-string-parameter.vala
+++ b/src/engine/imap/parameter/imap-string-parameter.vala
@@ -134,35 +134,35 @@ public abstract class Geary.Imap.StringParameter : Geary.Imap.Parameter {
     public bool is_empty() {
         return String.is_empty(ascii);
     }
-    
+
     /**
      * Case-sensitive comparison.
      */
     public bool equals_cs(string value) {
-        return Ascii.str_equal(ascii, value);
+        return (ascii == value);
     }
-    
+
     /**
      * Case-insensitive comparison.
      */
     public bool equals_ci(string value) {
         return Ascii.stri_equal(ascii, value);
     }
-    
+
     /**
      * Returns the string lowercased.
      */
     public string as_lower() {
-        return Ascii.strdown(ascii);
+        return ascii.down();
     }
-    
+
     /**
      * Returns the string uppercased.
      */
     public string as_upper() {
-        return Ascii.strup(ascii);
+        return ascii.up();
     }
-    
+
     /**
      * Converts the { link ascii} to a signed 32-bit integer, clamped between clamp_min and
      * clamp_max.
diff --git a/src/engine/imap/response/imap-response-code-type.vala 
b/src/engine/imap/response/imap-response-code-type.vala
index 79cf75a..f0f48ee 100644
--- a/src/engine/imap/response/imap-response-code-type.vala
+++ b/src/engine/imap/response/imap-response-code-type.vala
@@ -64,17 +64,17 @@ public class Geary.Imap.ResponseCodeType : BaseObject, Gee.Hashable<ResponseCode
     public ResponseCodeType.from_parameter(StringParameter stringp) throws ImapError {
         init(stringp.ascii);
     }
-    
+
     private void init(string ascii) throws ImapError {
         // note that is_quoting_required() also catches empty strings (as they require quoting)
         if (DataFormat.is_quoting_required(ascii) != DataFormat.Quoting.OPTIONAL)
             throw new ImapError.INVALID("\"%s\" cannot be represented as a ResponseCodeType", ascii);
-        
+
         // store lowercased so it's easily compared with const strings above
         original = ascii;
-        value = Ascii.strdown(ascii);
+        value = ascii.down();
     }
-    
+
     public bool is_value(string str) {
         return Ascii.stri_equal(value, str);
     }
diff --git a/src/engine/mime/mime-content-parameters.vala b/src/engine/mime/mime-content-parameters.vala
index 71e579e..8691655 100644
--- a/src/engine/mime/mime-content-parameters.vala
+++ b/src/engine/mime/mime-content-parameters.vala
@@ -78,7 +78,7 @@ public class Geary.Mime.ContentParameters : BaseObject {
         
         return (stored != null) ? Ascii.stri_equal(stored, value) : false;
     }
-    
+
     /**
      * Returns true if the attribute has the supplied value (case-sensitive comparison).
      *
@@ -86,10 +86,10 @@ public class Geary.Mime.ContentParameters : BaseObject {
      */
     public bool has_value_cs(string attribute, string value) {
         string? stored = params.get(attribute);
-        
-        return (stored != null) ? Ascii.str_equal(stored, value) : false;
+
+        return (stored != null) ? (stored == value) : false;
     }
-    
+
     /**
      * Add or replace the parameter.
      *
diff --git a/src/engine/mime/mime-disposition-type.vala b/src/engine/mime/mime-disposition-type.vala
index 18e27b2..01d195f 100644
--- a/src/engine/mime/mime-disposition-type.vala
+++ b/src/engine/mime/mime-disposition-type.vala
@@ -31,24 +31,24 @@ public enum Geary.Mime.DispositionType {
      */
     public static DispositionType deserialize(string? str, out bool is_unknown) {
         is_unknown = false;
-        
+
         if (String.is_empty_or_whitespace(str))
             return UNSPECIFIED;
-        
-        switch (Ascii.strdown(str)) {
+
+        switch (str.down()) {
             case "inline":
                 return INLINE;
-            
+
             case "attachment":
                 return ATTACHMENT;
-            
+
             default:
                 is_unknown = true;
-                
+
                 return ATTACHMENT;
         }
     }
-    
+
     /**
      * Returns null if value is { link UNSPECIFIED}
      */
diff --git a/src/engine/mime/mime-multipart-subtype.vala b/src/engine/mime/mime-multipart-subtype.vala
index 4de09a3..050a38e 100644
--- a/src/engine/mime/mime-multipart-subtype.vala
+++ b/src/engine/mime/mime-multipart-subtype.vala
@@ -48,24 +48,24 @@ public enum Geary.Mime.MultipartSubtype {
     public static MultipartSubtype from_content_type(ContentType? content_type, out bool is_unknown) {
         if (content_type == null || !content_type.has_media_type("multipart")) {
             is_unknown = true;
-            
+
             return MIXED;
         }
-        
+
         is_unknown = false;
-        switch (Ascii.strdown(content_type.media_subtype)) {
+        switch (content_type.media_subtype.down()) {
             case "mixed":
                 return MIXED;
-            
+
             case "alternative":
                 return ALTERNATIVE;
-            
+
             case "related":
                 return RELATED;
-            
+
             default:
                 is_unknown = true;
-                
+
                 return MIXED;
         }
     }
diff --git a/src/engine/rfc822/rfc822-mailbox-address.vala b/src/engine/rfc822/rfc822-mailbox-address.vala
index c2c904f..83fd1e8 100644
--- a/src/engine/rfc822/rfc822-mailbox-address.vala
+++ b/src/engine/rfc822/rfc822-mailbox-address.vala
@@ -46,14 +46,14 @@ public class Geary.RFC822.MailboxAddress : Geary.MessageData.SearchableMessageDa
      * For "Dirk Gently <dirk example com>", this would be "dirk example com".
      */
     public string address { get; private set; }
-    
+
     public MailboxAddress(string? name, string address) {
         this.name = name;
         this.address = address;
-        
+
         source_route = null;
-        
-        int atsign = Ascii.index_of(address, '@');
+
+        int atsign = address.index_of_char('@');
         if (atsign > 0) {
             mailbox = address.slice(0, atsign);
             domain = address.slice(atsign + 1, address.length);
@@ -62,7 +62,7 @@ public class Geary.RFC822.MailboxAddress : Geary.MessageData.SearchableMessageDa
             domain = "";
         }
     }
-    
+
     public MailboxAddress.imap(string? name, string? source_route, string mailbox, string domain) {
         this.name = (name != null) ? decode_name(name) : null;
         this.source_route = source_route;
diff --git a/src/engine/smtp/smtp-command.vala b/src/engine/smtp/smtp-command.vala
index 47db764..2a091d2 100644
--- a/src/engine/smtp/smtp-command.vala
+++ b/src/engine/smtp/smtp-command.vala
@@ -56,36 +56,36 @@ public enum Geary.Smtp.Command {
                 assert_not_reached();
         }
     }
-    
+
     public static Command deserialize(string str) throws SmtpError {
-        switch (Ascii.strdown(str)) {
+        switch (str.down()) {
             case "helo":
                 return HELO;
-            
+
             case "ehlo":
                 return EHLO;
-            
+
             case "quit":
                 return QUIT;
-            
+
             case "help":
                 return HELP;
-            
+
             case "noop":
                 return NOOP;
-            
+
             case "rset":
                 return RSET;
-            
+
             case "auth":
                 return AUTH;
-            
+
             case "mail":
                 return MAIL;
-            
+
             case "rcpt":
                 return RCPT;
-            
+
             case "data":
                 return DATA;
 
diff --git a/src/engine/smtp/smtp-greeting.vala b/src/engine/smtp/smtp-greeting.vala
index 676ef25..3eb9115 100644
--- a/src/engine/smtp/smtp-greeting.vala
+++ b/src/engine/smtp/smtp-greeting.vala
@@ -25,21 +25,21 @@ public class Geary.Smtp.Greeting : Response {
                     return "";
             }
         }
-        
+
         public static ServerFlavor deserialize(string str) {
-            switch (Ascii.strup(str)) {
+            switch (str.up()) {
                 case "SMTP":
                     return SMTP;
-                
+
                 case "ESMTP":
                     return ESMTP;
-                
+
                 default:
                     return UNSPECIFIED;
             }
         }
     }
-    
+
     public string? domain { get; private set; default = null; }
     public ServerFlavor flavor { get; private set; default = ServerFlavor.UNSPECIFIED; }
     public string? message { get; private set; default = null; }
diff --git a/src/engine/util/util-ascii.vala b/src/engine/util/util-ascii.vala
index 4d915f6..20fecc4 100644
--- a/src/engine/util/util-ascii.vala
+++ b/src/engine/util/util-ascii.vala
@@ -4,71 +4,40 @@
  * (version 2.1 or later).  See the COPYING file in this distribution.
  */
 
-// These calls are bound to the string class in Vala 0.26.  When that version of Vala is the
-// minimum, these can be dropped and Ascii.strup and Ascii.strdown can use the string methods.
-extern string g_ascii_strup(string str, ssize_t len = -1);
-extern string g_ascii_strdown(string str, ssize_t len = -1);
-
 namespace Geary.Ascii {
 
-public int index_of(string str, char ch) {
-    char *strptr = str;
-    int index = 0;
-    for (;;) {
-        char strch = *strptr++;
-        
-        if (strch == String.EOS)
-            return -1;
-        
-        if (strch == ch)
-            return index;
-        
-        index++;
-    }
-}
-
 public bool get_next_char(string str, ref int index, out char ch) {
     ch = str[index++];
-    
-    return ch != String.EOS;
-}
 
-public inline int strcmp(string a, string b) {
-    return GLib.strcmp(a, b);
+    return ch != String.EOS;
 }
 
-public int stricmp(string a, string b) {
+public bool stri_equal(string a, string b) {
+    // XXX Is this marginally faster than a.down() == b.down() in the
+    // best case, slower in the worse case, so not worth it?
     char *aptr = a;
     char *bptr = b;
     for (;;) {
         int diff = (int) (*aptr).tolower() - (int) (*bptr).tolower();
         if (diff != 0)
-            return diff;
-        
+            return false;
+
         if (*aptr == String.EOS)
-            return 0;
-        
+            return true;
+
         aptr++;
         bptr++;
     }
 }
 
-public inline bool str_equal(string a, string b) {
-    return a == b;
-}
-
-public inline bool stri_equal(string a, string b) {
-    return stricmp(a, b) == 0;
-}
-
 public bool nullable_stri_equal(string? a, string? b) {
     if (a == null)
         return (b == null);
-    
+
     // a != null, so always false
     if (b == null)
         return false;
-    
+
     return stri_equal(a, b);
 }
 
@@ -86,14 +55,6 @@ public uint nullable_stri_hash(string? str) {
     return (str != null) ? stri_hash(str) : 0;
 }
 
-public string strdown(string str) {
-    return g_ascii_strdown(str);
-}
-
-public string strup(string str) {
-    return g_ascii_strup(str);
-}
-
 /**
  * Returns true if the ASCII string contains only whitespace and at least one numeric character.
  */


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