hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=d3cfd41e14b61b95ddaf993d3be3aefcb2fc18de

commit d3cfd41e14b61b95ddaf993d3be3aefcb2fc18de
Author: ChunEon Park <her...@hermet.pe.kr>
Date:   Thu Jul 9 20:18:43 2015 +0900

    syntax_color: support configurable syntax color count.
    
    Previous the color table count is fixed to 6
    we can make it changeable by color configurable file.
    
    Please increase MAX_COL_NUM if it really needs.
---
 data/color/color.src   |  1 +
 src/lib/syntax_color.c | 18 ++++++++++++------
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/data/color/color.src b/data/color/color.src
index 55e7b37..093386e 100644
--- a/data/color/color.src
+++ b/data/color/color.src
@@ -2,6 +2,7 @@ group "syntax_color_group" struct {
    value "string" string: "AAAAAA";
    value "comment" string: "00B000";
    value "macro" string: "D42A2A";
+   value "count" string: "6";
    group "colors" array {
       count 6;
       group "color" struct {
diff --git a/src/lib/syntax_color.c b/src/lib/syntax_color.c
index 9c348c8..f407ccf 100644
--- a/src/lib/syntax_color.c
+++ b/src/lib/syntax_color.c
@@ -5,7 +5,7 @@
 #include <Enventor.h>
 #include "enventor_private.h"
 
-#define COL_NUM 6
+#define MAX_COL_NUM 6
 
 typedef struct color_tuple
 {
@@ -24,7 +24,8 @@ typedef struct syntax_color_group
    char *string;
    char *comment;
    char *macro;
-   color colors[COL_NUM];
+   char *count;
+   color colors[MAX_COL_NUM];
 } syntax_color_group;
 
 struct syntax_color_s
@@ -35,7 +36,8 @@ struct syntax_color_s
    Eina_Stringshare *col_string;
    Eina_Stringshare *col_comment;
    Eina_Stringshare *col_macro;
-   Eina_Stringshare *cols[COL_NUM];
+   Eina_Stringshare *cols[MAX_COL_NUM];
+   int color_cnt;
    Eina_List *macros;
    Ecore_Thread *thread;
 
@@ -85,6 +87,8 @@ eddc_init(void)
                                  comment, EET_T_STRING);
    EET_DATA_DESCRIPTOR_ADD_BASIC(edd_scg, syntax_color_group, "macro",
                                  macro, EET_T_STRING);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(edd_scg, syntax_color_group, "count",
+                                 count, EET_T_STRING);
 
    EET_DATA_DESCRIPTOR_ADD_BASIC(edd_color, color, "val", val, EET_T_STRING);
    EET_DATA_DESCRIPTOR_ADD_LIST_STRING(edd_color, color, "keys", keys);
@@ -134,10 +138,12 @@ color_table_init(color_data *cd)
    //free(scg->comment);
    cd->col_macro = eina_stringshare_add(scg->macro);
    //free(scg->macro);
+   cd->color_cnt = atoi(scg->count);
+   //free(scg->count);
 
    cd->color_hash = eina_hash_string_small_new(hash_free_cb);
 
-   for (i = 0; i < COL_NUM; i++)
+   for (i = 0; i < cd->color_cnt; i++)
      {
         cd->cols[i] = eina_stringshare_add(scg->colors[i].val);
         //free(scg->colors[i].val);
@@ -669,7 +675,7 @@ color_markup_insert(Eina_Strbuf *strbuf, const char **src, 
int length, char **cu
 color_data *
 color_init(Eina_Strbuf *strbuf)
 {
-   color_data *cd = malloc(sizeof(color_data));
+   color_data *cd = calloc(1, sizeof(color_data));
    if (!cd)
      {
         EINA_LOG_ERR("Failed to allocate Memory!");
@@ -699,7 +705,7 @@ color_term(color_data *cd)
    EINA_LIST_FREE(cd->macros, macro) eina_stringshare_del(macro);
 
    int i;
-   for(i = 0; i < COL_NUM; i++)
+   for(i = 0; i < cd->color_cnt; i++)
      eina_stringshare_del(cd->cols[i]);
 
    free(cd);

-- 


Reply via email to