Thanks for your job Tom. > Also updated tests to follow this. Using <br>, although will work, is > discouraged, please use <br/> instead.
I'm just curious why <br/> is recommended but not <br>. Thank in advance. Daniel Juyung Seo (SeoZ) On Thu, Dec 8, 2011 at 9:05 PM, Enlightenment SVN <no-re...@enlightenment.org> wrote: > Log: > Evas textblock: Support self-closing formats, i.e <br/>. > > Also updated tests to follow this. Using <br>, although will work, is > discouraged, please use <br/> instead. > > Author: tasn > Date: 2011-12-08 04:05:56 -0800 (Thu, 08 Dec 2011) > New Revision: 66023 > Trac: http://trac.enlightenment.org/e/changeset/66023 > > Modified: > trunk/evas/src/lib/canvas/evas_object_textblock.c > trunk/evas/src/tests/evas_test_textblock.c > > Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c > =================================================================== > --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2011-12-08 12:05:47 > UTC (rev 66022) > +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2011-12-08 12:05:56 > UTC (rev 66023) > @@ -4988,6 +4988,8 @@ > if (!fnode->opener && !fnode->own_closer) > eina_strbuf_append_char(txt, '/'); > eina_strbuf_append(txt, s); > + if (fnode->own_closer) > + eina_strbuf_append_char(txt, '/'); > } > eina_strbuf_append_char(txt, '>'); > } > @@ -6858,8 +6860,16 @@ > > format++; /* Advance after '<' */ > format_len = strlen(format); > - if (format[format_len - 1] == '>') > - format_len--; /* We don't care about '>' */ > + if ((format_len > 0) && format[format_len - 1] == '>') > + { > + format_len--; /* We don't care about '>' */ > + /* Check if it closes itself. Skip the </> case. */ > + if ((format_len > 1) && format[format_len - 1] == '/') > + { > + format_len--; /* We don't care about '/' */ > + n->own_closer = EINA_TRUE; > + } > + } > > match = _style_match_tag(o->style, format, format_len, &replace_len); > if (match) > > Modified: trunk/evas/src/tests/evas_test_textblock.c > =================================================================== > --- trunk/evas/src/tests/evas_test_textblock.c 2011-12-08 12:05:47 UTC (rev > 66022) > +++ trunk/evas/src/tests/evas_test_textblock.c 2011-12-08 12:05:56 UTC (rev > 66023) > @@ -61,7 +61,7 @@ > START_TEST(evas_textblock_simple) > { > START_TB_TEST(); > - const char *buf = "Th<i>i</i>s is a <br> te<b>s</b>t."; > + const char *buf = "Th<i>i</i>s is a <br/> te<b>s</b>t."; > evas_object_textblock_text_markup_set(tb, buf); > fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf)); > END_TB_TEST(); > @@ -95,12 +95,12 @@ > Evas_Coord x, y, w, h; > size_t i, len; > Evas_Coord nw, nh; > - const char *buf = "This is a<br> test.<ps>Lets see if this works.<ps>עוד > פסקה."; > + const char *buf = "This is a<br/> test.<ps/>Lets see if this > works.<ps/>עוד פסקה."; > > /* Walk the textblock using cursor_char_next */ > evas_object_textblock_text_markup_set(tb, buf); > fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf)); > - len = eina_unicode_utf8_get_len(buf) - 9; /* 9 because len(<br>) == 1 and > len(<ps>) == 1 */ > + len = eina_unicode_utf8_get_len(buf) - 12; /* 12 because len(<br/>) == 1 > and len(<ps/>) == 1 */ > for (i = 0 ; i < len ; i++) > { > _CHECK_CURSOR_COORDS(); > @@ -284,7 +284,7 @@ > /* Paragraph text get */ > evas_textblock_cursor_paragraph_first(cur); > fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), > - "This is a<br> test.")); > + "This is a<br/> test.")); > evas_textblock_cursor_paragraph_next(cur); > fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), > "Lets see if this works.")); > @@ -294,9 +294,9 @@ > > /* Paragraph length get */ > evas_textblock_cursor_paragraph_first(cur); > - /* -3 because len(<br>) == 1 */ > + /* -4 because len(<br/>) == 1 */ > fail_if(evas_textblock_cursor_paragraph_text_length_get(cur) != > - eina_unicode_utf8_get_len("This is a<br> test.") - 3); > + eina_unicode_utf8_get_len("This is a<br/> test.") - 4); > evas_textblock_cursor_paragraph_next(cur); > fail_if(evas_textblock_cursor_paragraph_text_length_get(cur) != > eina_unicode_utf8_get_len("Lets see if this works.")); > @@ -308,7 +308,7 @@ > evas_textblock_cursor_pos_set(cur, 0); > fail_if(strcmp(evas_textblock_cursor_content_get(cur), "T")); > evas_textblock_cursor_pos_set(cur, 9); > - fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<br>")); > + fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<br/>")); > evas_textblock_cursor_pos_set(cur, 43); > fail_if(strcmp(evas_textblock_cursor_content_get(cur), "ד")); > > @@ -414,12 +414,12 @@ > > #ifdef HAVE_FRIBIDI > evas_object_textblock_text_markup_set(tb, > - "testנסיוןtestנסיון<ps>" > - "נסיוןtestנסיוןtest<ps>" > - "testנסיוןtest<ps>" > - "נסיוןtestנסיון<ps>" > - "testנסיון<br>נסיון<ps>" > - "נסיוןtest<br>test" > + "testנסיוןtestנסיון<ps/>" > + "נסיוןtestנסיוןtest<ps/>" > + "testנסיוןtest<ps/>" > + "נסיוןtestנסיון<ps/>" > + "testנסיון<br/>נסיון<ps/>" > + "נסיוןtest<br/>test" > ); > > for (i = 0 ; i < 8 ; i++) > @@ -723,7 +723,7 @@ > > /* Range deletion across paragraphs */ > evas_object_textblock_text_markup_set(tb, > - "Th<b>is a<a>te<ps>" > + "Th<b>is a<a>te<ps/>" > "s</a>st</b>."); > evas_textblock_cursor_pos_set(cur, 6); > evas_textblock_cursor_pos_set(main_cur, 10); > @@ -749,14 +749,14 @@ > fail_if (fnode); > > /* Two formats across different paragraphs with notihng in between. */ > - evas_object_textblock_text_markup_set(tb, "<b><ps></b>"); > + evas_object_textblock_text_markup_set(tb, "<b><ps/></b>"); > evas_textblock_cursor_pos_set(cur, 0); > evas_textblock_cursor_char_delete(cur); > fnode = evas_textblock_node_format_first_get(tb); > fail_if (fnode); > > /* Try with range */ > - evas_object_textblock_text_markup_set(tb, "<b><ps></b>"); > + evas_object_textblock_text_markup_set(tb, "<b><ps/></b>"); > evas_textblock_cursor_pos_set(cur, 0); > evas_textblock_cursor_pos_set(main_cur, 1); > evas_textblock_cursor_range_delete(cur, main_cur); > @@ -765,7 +765,7 @@ > > /* Verify fmt position and REP_CHAR positions are the same */ > evas_object_textblock_text_markup_set(tb, > - "This is<ps>an <item absize=93x152 vsize=ascent></>a."); > + "This is<ps/>an <item absize=93x152 vsize=ascent></>a."); > evas_textblock_cursor_pos_set(cur, 7); > evas_textblock_cursor_char_delete(cur); > fnode = evas_textblock_node_format_first_get(tb); > @@ -1091,9 +1091,9 @@ > evas_object_textblock_text_markup_set(tb, "a"); > evas_object_textblock_size_formatted_get(tb, &bw, &bh); > evas_object_textblock_text_markup_set(tb, > - "aaaa aaaa aaa aa aaa<ps>" > - "aaaa aaa aaa aaa aaa<ps>" > - "a aaaaa aaaaaaaaaaaaaa<br>aaaaa<ps>" > + "aaaa aaaa aaa aa aaa<ps/>" > + "aaaa aaa aaa aaa aaa<ps/>" > + "a aaaaa aaaaaaaaaaaaaa<br/>aaaaa<ps/>" > "aaaaaa" > ); > evas_textblock_cursor_format_prepend(cur, "+ wrap=char"); > @@ -1113,9 +1113,9 @@ > evas_object_textblock_text_markup_set(tb, "aaaaaa"); > evas_object_textblock_size_formatted_get(tb, &bw, &bh); > evas_object_textblock_text_markup_set(tb, > - "aaaa aaaa aaa aa aaa<ps>" > - "aaaa aaa aaa aaa aaa<ps>" > - "a aaaaa aaaaaa<br>aaaaa<ps>" > + "aaaa aaaa aaa aa aaa<ps/>" > + "aaaa aaa aaa aaa aaa<ps/>" > + "a aaaaa aaaaaa<br/>aaaaa<ps/>" > "aaaaa" > ); > evas_textblock_cursor_format_prepend(cur, "+ wrap=word"); > @@ -1134,9 +1134,9 @@ > evas_object_textblock_text_markup_set(tb, "a"); > evas_object_textblock_size_formatted_get(tb, &bw, &bh); > evas_object_textblock_text_markup_set(tb, > - "aaaa aaaa aaa aa aaa<ps>" > - "aaaa aaa aaa aaa aaa<ps>" > - "a aaaaa aaaaaa<br>aaaaa<ps>" > + "aaaa aaaa aaa aa aaa<ps/>" > + "aaaa aaa aaa aaa aaa<ps/>" > + "a aaaaa aaaaaa<br/>aaaaa<ps/>" > "aaaaa" > ); > evas_textblock_cursor_format_prepend(cur, "+ wrap=mixed"); > @@ -1156,26 +1156,26 @@ > int wrap_items = sizeof(wrap_style) / sizeof(*wrap_style); > > evas_object_textblock_text_markup_set(tb, > - "This is an entry widget in this window that<br>" > - "uses markup <b>like this</> for styling and<br>" > - "formatting <em>like this</>, as well as<br>" > - "<a href=X><link>links in the text</></a>, so enter text<br>" > - "in here to edit it. By the way, links are<br>" > - "called <a href=anc-02>Anchors</a> so you will need<br>" > - "to refer to them this way.<br>" > - "<br>" > + "This is an entry widget in this window that<br/>" > + "uses markup <b>like this</> for styling and<br/>" > + "formatting <em>like this</>, as well as<br/>" > + "<a href=X><link>links in the text</></a>, so enter text<br/>" > + "in here to edit it. By the way, links are<br/>" > + "called <a href=anc-02>Anchors</a> so you will need<br/>" > + "to refer to them this way.<br/>" > + "<br/>" > > "Also you can stick in items with (relsize + ascent): " > "<item relsize=16x16 vsize=ascent href=emoticon/evil-laugh></item>" > " (full) " > "<item relsize=16x16 vsize=full href=emoticon/guilty-smile></item>" > - " (to the left)<br>" > + " (to the left)<br/>" > > "Also (size + ascent): " > "<item size=16x16 vsize=ascent href=emoticon/haha></item>" > " (full) " > "<item size=16x16 vsize=full href=emoticon/happy-panting></item>" > - " (before this)<br>" > + " (before this)<br/>" > > "And as well (absize + ascent): " > "<item absize=64x64 vsize=ascent href=emoticon/knowing-grin></item>" > @@ -1223,7 +1223,7 @@ > { > Evas_Coord w, h, bw, bh; > START_TB_TEST(); > - const char *buf = > "This<ps>textblock<ps>has<ps>a<ps>lot<ps>of<ps>lines<ps>."; > + const char *buf = > "This<ps/>textblock<ps/>has<ps/>a<ps/>lot<ps/>of<ps/>lines<ps/>."; > evas_object_textblock_text_markup_set(tb, buf); > evas_object_textblock_size_formatted_get(tb, &w, &h); > /* Move outside of the screen so it'll have to search for the correct > @@ -1241,15 +1241,15 @@ > /* Items have correct text node information */ > evas_object_textblock_text_markup_set(tb, ""); > fail_if(!_evas_textblock_check_item_node_link(tb)); > - evas_object_textblock_text_markup_set(tb, "<ps>"); > + evas_object_textblock_text_markup_set(tb, "<ps/>"); > fail_if(!_evas_textblock_check_item_node_link(tb)); > - evas_object_textblock_text_markup_set(tb, "a<ps>"); > + evas_object_textblock_text_markup_set(tb, "a<ps/>"); > fail_if(!_evas_textblock_check_item_node_link(tb)); > - evas_object_textblock_text_markup_set(tb, "a<ps>a"); > + evas_object_textblock_text_markup_set(tb, "a<ps/>a"); > fail_if(!_evas_textblock_check_item_node_link(tb)); > - evas_object_textblock_text_markup_set(tb, "a<ps>a<ps>"); > + evas_object_textblock_text_markup_set(tb, "a<ps/>a<ps/>"); > fail_if(!_evas_textblock_check_item_node_link(tb)); > - evas_object_textblock_text_markup_set(tb, "a<ps>a<ps>a"); > + evas_object_textblock_text_markup_set(tb, "a<ps/>a<ps/>a"); > fail_if(!_evas_textblock_check_item_node_link(tb)); > > END_TB_TEST(); > @@ -1260,7 +1260,7 @@ > START_TEST(evas_textblock_geometries) > { > START_TB_TEST(); > - const char *buf = "This is a <br> test."; > + const char *buf = "This is a <br/> test."; > evas_object_textblock_text_markup_set(tb, buf); > > /* Single line range */ > @@ -1327,7 +1327,7 @@ > START_TEST(evas_textblock_editing) > { > START_TB_TEST(); > - const char *buf = "First par.<ps>Second par."; > + const char *buf = "First par.<ps/>Second par."; > evas_object_textblock_text_markup_set(tb, buf); > Evas_Textblock_Cursor *main_cur = evas_object_textblock_cursor_get(tb); > > @@ -1346,7 +1346,7 @@ > evas_textblock_cursor_paragraph_first(cur); > evas_textblock_cursor_char_delete(cur); > fail_if(strcmp(evas_object_textblock_text_markup_get(tb), > - "irst par.<ps>Second par.")); > + "irst par.<ps/>Second par.")); > > /* Delete some arbitrary char */ > evas_textblock_cursor_char_next(cur); > @@ -1354,14 +1354,14 @@ > evas_textblock_cursor_char_next(cur); > evas_textblock_cursor_char_delete(cur); > fail_if(strcmp(evas_object_textblock_text_markup_get(tb), > - "irs par.<ps>Second par.")); > + "irs par.<ps/>Second par.")); > > /* Delete a range */ > evas_textblock_cursor_pos_set(main_cur, 1); > evas_textblock_cursor_pos_set(cur, 6); > evas_textblock_cursor_range_delete(cur, main_cur); > fail_if(strcmp(evas_object_textblock_text_markup_get(tb), > - "ir.<ps>Second par.")); > + "ir.<ps/>Second par.")); > evas_textblock_cursor_paragraph_char_first(main_cur); > evas_textblock_cursor_paragraph_char_last(cur); > evas_textblock_cursor_char_next(cur); > @@ -1376,7 +1376,7 @@ > evas_textblock_cursor_paragraph_char_first(main_cur); > evas_textblock_cursor_range_delete(cur, main_cur); > fail_if(strcmp(evas_object_textblock_text_markup_get(tb), > - "First par.<ps>")); > + "First par.<ps/>")); > > /* Merging paragraphs */ > evas_object_textblock_text_markup_set(tb, buf); > @@ -1416,13 +1416,13 @@ > START_TEST(evas_textblock_text_getters) > { > START_TB_TEST(); > - const char *buf = "This is a <br> test.<ps>" > - "טקסט בעברית<ps>and now in english."; > + const char *buf = "This is a <br/> test.<ps/>" > + "טקסט בעברית<ps/>and now in english."; > evas_object_textblock_text_markup_set(tb, buf); > evas_textblock_cursor_paragraph_first(cur); > > fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), > - "This is a <br> test.")); > + "This is a <br/> test.")); > > evas_textblock_cursor_paragraph_next(cur); > fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), > @@ -1447,17 +1447,17 @@ > evas_textblock_cursor_pos_set(main_cur, 5); > evas_textblock_cursor_pos_set(cur, 14); > fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur, > - EVAS_TEXTBLOCK_TEXT_MARKUP), "is a <br> te")); > + EVAS_TEXTBLOCK_TEXT_MARKUP), "is a <br/> te")); > > evas_textblock_cursor_pos_set(main_cur, 14); > evas_textblock_cursor_pos_set(cur, 20); > fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur, > - EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps>טק")); > + EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps/>טק")); > > evas_textblock_cursor_pos_set(main_cur, 14); > evas_textblock_cursor_pos_set(cur, 32); > fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur, > - EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps>טקסט בעברית<ps>an")); > + EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps/>טקסט בעברית<ps/>an")); > > /* Backward range get */ > evas_textblock_cursor_pos_set(main_cur, 2); > @@ -1473,17 +1473,17 @@ > evas_textblock_cursor_pos_set(main_cur, 5); > evas_textblock_cursor_pos_set(cur, 14); > fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, > - EVAS_TEXTBLOCK_TEXT_MARKUP), "is a <br> te")); > + EVAS_TEXTBLOCK_TEXT_MARKUP), "is a <br/> te")); > > evas_textblock_cursor_pos_set(main_cur, 14); > evas_textblock_cursor_pos_set(cur, 20); > fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, > - EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps>טק")); > + EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps/>טק")); > > evas_textblock_cursor_pos_set(main_cur, 14); > evas_textblock_cursor_pos_set(cur, 32); > fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, > - EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps>טקסט בעברית<ps>an")); > + EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps/>טקסט בעברית<ps/>an")); > > /* Uninit cursors and other weird cases */ > evas_object_textblock_clear(tb); > @@ -1500,7 +1500,7 @@ > START_TEST(evas_textblock_formats) > { > START_TB_TEST(); > - const char *buf = "Th<b>i<font_size=15 wrap=none>s i</font_size=13>s</> a > <br> te<ps>st<item></>."; > + const char *buf = "Th<b>i<font_size=15 wrap=none>s i</font_size=13>s</> a > <br/> te<ps/>st<item></>."; > const Evas_Object_Textblock_Node_Format *fnode; > evas_object_textblock_text_markup_set(tb, buf); > > @@ -1652,25 +1652,25 @@ > * verify them visually, well, we can some of them. Possibly in the > * future we will */ > evas_object_textblock_text_markup_set(tb, > - "<font_size=40>font_size=40</><ps>" > - "<color=#F210B3FF>color=#F210B3FF</><ps>" > - "<underline=single underline_color=#A2B3C4>underline=single > underline_color=#A2B3C4</><ps>" > - "<underline=double underline_color=#F00 > underline2_color=#00F>underline=double underline_color=#F00 > underline2_color=#00F</><ps>" > - "<underline=dashed underline_dash_color=#0F0 underline_dash_width=2 > underline_dash_gap=1>underline=dashed underline_dash_color=#0F0 > underline_dash_width=2 underline_dash_gap=1</><ps>" > - "<style=outline outline_color=#F0FA>style=outline > outline_color=#F0FA</><ps>" > - "<style=shadow shadow_color=#F0F>style=shadow > shadow_color=#F0F</><ps>" > - "<style=glow glow_color=#BBB>style=glow glow_color=#BBB</><ps>" > - "<style=glow glow2_color=#0F0>style=glow glow2_color=#0F0</><ps>" > - "<style=glow color=#fff glow2_color=#fe87 > glow_color=#f214>style=glow color=#fff glow2_color=#fe87 > glow_color=#f214</><ps>" > - "<backing=on backing_color=#00F>backing=on > backing_color=#00F</><ps>" > - "<strikethrough=on strikethrough_color=#FF0>strikethrough=on > strikethrough_color=#FF0</><ps>" > - "<align=right>align=right</><ps>" > - "<backing=on backing_color=#F008 valign=0.0>valign=0.0</><ps>" > - "<backing=on backing_color=#0F08 > tabstops=50>tabstops=<\\t></>50</><ps>" > - "<backing=on backing_color=#00F8 linesize=40>linesize=40</><ps>" > - "<backing=on backing_color=#F0F8 > linerelsize=200%>linerelsize=200%</><ps>" > - "<backing=on backing_color=#0FF8 linegap=20>linegap=20</><ps>" > - "<backing=on backing_color=#FF08 > linerelgap=100%>linerelgap=100%</><ps>"); > + "<font_size=40>font_size=40</><ps/>" > + "<color=#F210B3FF>color=#F210B3FF</><ps/>" > + "<underline=single underline_color=#A2B3C4>underline=single > underline_color=#A2B3C4</><ps/>" > + "<underline=double underline_color=#F00 > underline2_color=#00F>underline=double underline_color=#F00 > underline2_color=#00F</><ps/>" > + "<underline=dashed underline_dash_color=#0F0 underline_dash_width=2 > underline_dash_gap=1>underline=dashed underline_dash_color=#0F0 > underline_dash_width=2 underline_dash_gap=1</><ps/>" > + "<style=outline outline_color=#F0FA>style=outline > outline_color=#F0FA</><ps/>" > + "<style=shadow shadow_color=#F0F>style=shadow > shadow_color=#F0F</><ps/>" > + "<style=glow glow_color=#BBB>style=glow glow_color=#BBB</><ps/>" > + "<style=glow glow2_color=#0F0>style=glow glow2_color=#0F0</><ps/>" > + "<style=glow color=#fff glow2_color=#fe87 > glow_color=#f214>style=glow color=#fff glow2_color=#fe87 > glow_color=#f214</><ps/>" > + "<backing=on backing_color=#00F>backing=on > backing_color=#00F</><ps/>" > + "<strikethrough=on strikethrough_color=#FF0>strikethrough=on > strikethrough_color=#FF0</><ps/>" > + "<align=right>align=right</><ps/>" > + "<backing=on backing_color=#F008 valign=0.0>valign=0.0</><ps/>" > + "<backing=on backing_color=#0F08 > tabstops=50>tabstops=<\\t></>50</><ps/>" > + "<backing=on backing_color=#00F8 linesize=40>linesize=40</><ps/>" > + "<backing=on backing_color=#F0F8 > linerelsize=200%>linerelsize=200%</><ps/>" > + "<backing=on backing_color=#0FF8 linegap=20>linegap=20</><ps/>" > + "<backing=on backing_color=#FF08 > linerelgap=100%>linerelgap=100%</><ps/>"); > > /* Force a relayout */ > evas_object_textblock_size_formatted_get(tb, NULL, NULL); > @@ -1714,22 +1714,22 @@ > } > > /* Make sure we get all the types of visible formats correctly. */ > - evas_object_textblock_text_markup_set(tb, "<ps>a<br>a<tab>a<item></>"); > + evas_object_textblock_text_markup_set(tb, "<ps/>a<br/>a<tab/>a<item></>"); > fail_if(strcmp(evas_textblock_node_format_text_get( > evas_textblock_cursor_format_get(cur)), "ps")); > - fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<ps>")); > + fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<ps/>")); > fail_if(!evas_textblock_cursor_format_is_visible_get(cur)); > fail_if(!evas_textblock_cursor_char_next(cur)); > fail_if(!evas_textblock_cursor_char_next(cur)); > fail_if(strcmp(evas_textblock_node_format_text_get( > evas_textblock_cursor_format_get(cur)), "br")); > - fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<br>")); > + fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<br/>")); > fail_if(!evas_textblock_cursor_format_is_visible_get(cur)); > fail_if(!evas_textblock_cursor_char_next(cur)); > fail_if(!evas_textblock_cursor_char_next(cur)); > fail_if(strcmp(evas_textblock_node_format_text_get( > evas_textblock_cursor_format_get(cur)), "tab")); > - fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<tab>")); > + fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<tab/>")); > fail_if(!evas_textblock_cursor_format_is_visible_get(cur)); > fail_if(!evas_textblock_cursor_char_next(cur)); > fail_if(!evas_textblock_cursor_char_next(cur)); > @@ -1749,7 +1749,7 @@ > Evas_Coord l, r, t, b; > START_TB_TEST(); > Evas_Textblock_Style *newst; > - const char *buf = "Test<ps>Test2<ps>נסיון"; > + const char *buf = "Test<ps/>Test2<ps/>נסיון"; > evas_object_textblock_text_markup_set(tb, buf); > fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf)); > > @@ -1850,7 +1850,7 @@ > fail_if(strcmp(evas_object_textblock_bidi_delimiters_get(tb), ",|")); > > /* Hinting */ > - evas_object_textblock_text_markup_set(tb, "This is<ps>a test<br>bla"); > + evas_object_textblock_text_markup_set(tb, "This is<ps/>a test<br/>bla"); > /* Force relayout */ > evas_object_textblock_size_formatted_get(tb, NULL, NULL); > evas_font_hinting_set(evas, EVAS_FONT_HINTING_NONE); > @@ -1923,7 +1923,7 @@ > { > START_TB_TEST(); > Evas_Coord w, h, h2, nw, nh; > - const char *buf = "This is a <br> test.<br>גם בעברית"; > + const char *buf = "This is a <br/> test.<br/>גם בעברית"; > /* When wrapping is off, native size should be the same as formatted > * size */ > > @@ -1932,7 +1932,7 @@ > fail_if((w != nw) || (h != nh)); > fail_if(w != 0); > > - evas_object_textblock_text_markup_set(tb, "a<br>a"); > + evas_object_textblock_text_markup_set(tb, "a<br/>a"); > evas_object_textblock_size_formatted_get(tb, &w, &h2); > evas_object_textblock_size_native_get(tb, &nw, &nh); > fail_if((w != nw) || (h2 != nh)); > > > ------------------------------------------------------------------------------ > Cloud Services Checklist: Pricing and Packaging Optimization > This white paper is intended to serve as a reference, checklist and point of > discussion for anyone considering optimizing the pricing and packaging model > of a cloud services business. Read Now! > http://www.accelacomm.com/jaw/sfnl/114/51491232/ > _______________________________________________ > enlightenment-svn mailing list > enlightenment-...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn ------------------------------------------------------------------------------ Cloud Services Checklist: Pricing and Packaging Optimization This white paper is intended to serve as a reference, checklist and point of discussion for anyone considering optimizing the pricing and packaging model of a cloud services business. Read Now! http://www.accelacomm.com/jaw/sfnl/114/51491232/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel