2011/12/9 Daniel Juyung Seo <seojuyu...@gmail.com>: > 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>. Because <br/> is correct XML. It's an empty tag. > 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
-- Leif ------------------------------------------------------------------------------ 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