[gmime: 2/5] Cleaned up gmime-filter-enriched code a bit



commit 02baf96a30f3892580eaefe327eacc464bdd8014
Author: Jeffrey Stedfast <fejj gnome org>
Date:   Fri Apr 14 06:36:22 2017 -0400

    Cleaned up gmime-filter-enriched code a bit

 gmime/gmime-filter-enriched.c |   27 +++++++++++----------------
 1 files changed, 11 insertions(+), 16 deletions(-)
---
diff --git a/gmime/gmime-filter-enriched.c b/gmime/gmime-filter-enriched.c
index 88f643f..5a17a02 100644
--- a/gmime/gmime-filter-enriched.c
+++ b/gmime/gmime-filter-enriched.c
@@ -99,10 +99,6 @@ static struct {
        { "/param",      " -->",                FALSE, NULL               },
 };
 
-#define NUM_ENRICHED_TAGS (sizeof (enriched_tags) / sizeof (enriched_tags[0]))
-
-static GHashTable *enriched_hash = NULL;
-
 
 static void g_mime_filter_enriched_class_init (GMimeFilterEnrichedClass *klass);
 static void g_mime_filter_enriched_init       (GMimeFilterEnriched *filter, GMimeFilterEnrichedClass *klass);
@@ -158,13 +154,6 @@ g_mime_filter_enriched_class_init (GMimeFilterEnrichedClass *klass)
        filter_class->reset = filter_reset;
        filter_class->filter = filter_filter;
        filter_class->complete = filter_complete;
-       
-       if (!enriched_hash) {
-               enriched_hash = g_hash_table_new (g_mime_strcase_hash, g_mime_strcase_equal);
-               for (i = 0; i < NUM_ENRICHED_TAGS; i++)
-                       g_hash_table_insert (enriched_hash, enriched_tags[i].enriched,
-                                            enriched_tags[i].html);
-       }
 }
 
 static void
@@ -195,7 +184,7 @@ enriched_tag_needs_param (const char *tag)
 {
        int i;
        
-       for (i = 0; i < NUM_ENRICHED_TAGS; i++)
+       for (i = 0; i < G_N_ELEMENTS (enriched_tags); i++)
                if (!g_ascii_strcasecmp (tag, enriched_tags[i].enriched))
                        return enriched_tags[i].needs_param;
        
@@ -290,7 +279,7 @@ param_parse (const char *enriched, const char *inptr, size_t inlen)
 {
        guint i;
        
-       for (i = 0; i < NUM_ENRICHED_TAGS; i++) {
+       for (i = 0; i < G_N_ELEMENTS (enriched_tags); i++) {
                if (!g_ascii_strcasecmp (enriched, enriched_tags[i].enriched))
                        return enriched_tags[i].parse_param (inptr, inlen);
        }
@@ -447,18 +436,24 @@ enriched_to_html (GMimeFilter *filter, char *in, size_t inlen, size_t prespace,
                                        goto backup;
                                }
                        } else {
-                               const char *html_tag;
+                               const char *html_tag = NULL;
                                char *enriched_tag;
                                size_t len;
+                               guint i;
                                
                                len = inptr - tag;
                                enriched_tag = g_alloca (len + 1);
                                memcpy (enriched_tag, tag, len);
                                enriched_tag[len] = '\0';
                                
-                               html_tag = g_hash_table_lookup (enriched_hash, enriched_tag);
+                               for (i = 0; i < G_N_ELEMENTS (enriched_tags); i++) {
+                                       if (!g_ascii_strcasecmp (enriched_tag, enriched_tags[i].enriched)) {
+                                               html_tag = enriched_tags[i].html;
+                                               break;
+                                       }
+                               }
                                
-                               if (html_tag) {
+                               if (i < G_N_ELEMENTS (enriched_tags)) {
                                        if (html_tag_needs_param (html_tag)) {
                                                const char *start;
                                                char *param;


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