Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/evas

Dir     : e17/libs/evas/src/lib/canvas


Modified Files:
        evas_object_textblock.c 


Log Message:


accept escapes (\\, \", \', \ , etc.)

===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_textblock.c,v
retrieving revision 1.97
retrieving revision 1.98
diff -u -3 -r1.97 -r1.98
--- evas_object_textblock.c     14 Sep 2005 09:01:26 -0000      1.97
+++ evas_object_textblock.c     14 Sep 2005 12:37:42 -0000      1.98
@@ -833,7 +833,6 @@
             if (fmt->font.source) free(fmt->font.source);
             fmt->font.source = strdup(param);
             new_font = 1;
-            printf("font src: %s\n", fmt->font.source);
          }
      }
    else if (!strcmp(cmd, "color"))
@@ -1097,7 +1096,7 @@
 static char *
 _format_parse(char **s)
 {
-   char *p, *item;
+   char *p, *item, *ss, *ds;
    char *s1 = NULL, *s2 = NULL;
    int quote = 0;
    
@@ -1114,12 +1113,18 @@
          {
             if (!quote)
               {
-                 if (*p == '"') quote = 1;
-                 else if (*p == ' ') s2 = p;
+                 if ((p > *s) && (p[-1] != '\\'))
+                   {
+                      if (*p == '"') quote = 1;
+                      else if (*p == ' ') s2 = p;
+                   }
               }
             else
               {
-                 if (*p == '"') quote = 0;
+                 if ((p > *s) && (p[-1] != '\\'))
+                   {
+                      if (*p == '"') quote = 0;
+                   }
               }
             if (*p == 0) s2 = p;
          }
@@ -1129,10 +1134,17 @@
             item = malloc(s2 - s1 + 1);
             if (item)
               {
-                 strncpy(item, s1, s2 - s1);
-                 item[s2 - s1] = 0;
+                 ds = item;
+                 for (ds = item, ss = s1; ss < s2; ss++)
+                   {
+                      if ((*ss == '\\') && (ss < (s2 - 1))) ss++;
+                      *ds = *ss;
+                      ds++;
+                   }
+                 *ds = 0;
               }
             *s = s2;
+            printf("ITEM: %s\n", item);
             return item;
          }
      }
@@ -1566,7 +1578,6 @@
    Evas_List *remove_items = NULL, *l;
    int index, p, ch, tw, th, inset, adv;
    
-//   printf("_layout_walk_back_to_item_word_redo(...)\n");
    /* it is not appended yet */
    for (pit = (Evas_Object_Textblock_Item *)((Evas_Object_List 
*)c->ln->items)->last;
        pit;
@@ -2316,7 +2327,7 @@
               }
             else if (!val_stop)
               {
-                 if ((*p) == '\'')
+                 if (((*p) == '\'') && (p > ts->style_text) && (p[-1] != '\\'))
                    val_stop = p;
               }
             if ((key_start) && (key_stop) && (val_start) && (val_stop))




-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to