summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--legacy/evas/ChangeLog4
-rw-r--r--legacy/evas/NEWS6
-rw-r--r--legacy/evas/src/lib/canvas/evas_object_textblock.c32
3 files changed, 40 insertions, 2 deletions
diff --git a/legacy/evas/ChangeLog b/legacy/evas/ChangeLog
index 2ea9935c1d..3bc62e3d22 100644
--- a/legacy/evas/ChangeLog
+++ b/legacy/evas/ChangeLog
@@ -1141,3 +1141,7 @@
1141 * Fix clip bug while computing coordinates for Evas GL 1141 * Fix clip bug while computing coordinates for Evas GL
1142 direct rendering optimization. 1142 direct rendering optimization.
1143 1143
11442012-11-02 Carsten Haitzler (The Rasterman)
1145
1146 * Fix evas textblock tag parser to respect escaped spaces and
1147 escaped single quotes. This fixes an edje text class restyling bug.
diff --git a/legacy/evas/NEWS b/legacy/evas/NEWS
index f5428a6ae3..3271bbe905 100644
--- a/legacy/evas/NEWS
+++ b/legacy/evas/NEWS
@@ -1,5 +1,11 @@
1Evas 1.8.0 1Evas 1.8.0
2 2
3Changes since Evas 1.7.1
4-------------------------
5
6Fixes:
7 * Fix evas textblock tag parser to respect escaped spaces and escaped single quotes
8
3Changes since Evas 1.7.0: 9Changes since Evas 1.7.0:
4------------------------- 10-------------------------
5 11
diff --git a/legacy/evas/src/lib/canvas/evas_object_textblock.c b/legacy/evas/src/lib/canvas/evas_object_textblock.c
index 2775e75cf3..a9c0acc221 100644
--- a/legacy/evas/src/lib/canvas/evas_object_textblock.c
+++ b/legacy/evas/src/lib/canvas/evas_object_textblock.c
@@ -1684,20 +1684,48 @@ _format_param_parse(const char *item, const char **key, const char **val)
1684 { 1684 {
1685 start = quote + 1; 1685 start = quote + 1;
1686 end = strchr(start, '\''); 1686 end = strchr(start, '\'');
1687 while ((end) && (end > start) && (end[-1] == '\\'))
1688 end = strchr(end + 1, '\'');
1687 } 1689 }
1688 else 1690 else
1689 { 1691 {
1690 end = strchr(start, ' '); 1692 end = strchr(start, ' ');
1693 while ((end) && (end > start) && (end[-1] == '\\'))
1694 end = strchr(end + 1, ' ');
1691 } 1695 }
1692 1696
1693 /* Null terminate before the spaces */ 1697 /* Null terminate before the spaces */
1694 if (end) 1698 if (end)
1695 { 1699 {
1696 *val = eina_stringshare_add_length(start, end - start); 1700 char *tmp = alloca(end - start + 1);
1701 char *s, *d;
1702
1703 for (d = tmp, s = (char *)start; s < end; s++)
1704 {
1705 if (*s != '\\')
1706 {
1707 *d = *s;
1708 d++;
1709 }
1710 }
1711 *d = 0;
1712 *val = eina_stringshare_add(tmp);
1697 } 1713 }
1698 else 1714 else
1699 { 1715 {
1700 *val = eina_stringshare_add(start); 1716 char *tmp = alloca(strlen(start) + 1);
1717 char *s, *d;
1718
1719 for (d = tmp, s = (char *)start; *s; s++)
1720 {
1721 if (*s != '\\')
1722 {
1723 *d = *s;
1724 d++;
1725 }
1726 }
1727 *d = 0;
1728 *val = eina_stringshare_add(tmp);
1701 } 1729 }
1702} 1730}
1703 1731