diff -up evolution-3.28.5/src/e-util/test-html-editor-units-bugs.c.extra-new-line-before-url evolution-3.28.5/src/e-util/test-html-editor-units-bugs.c --- evolution-3.28.5/src/e-util/test-html-editor-units-bugs.c.extra-new-line-before-url 2018-09-03 15:40:14.491506323 +0200 +++ evolution-3.28.5/src/e-util/test-html-editor-units-bugs.c 2018-09-03 15:40:14.494506323 +0200 @@ -1319,6 +1319,44 @@ test_issue_86 (TestFixture *fixture) g_free (converted); } +static void +test_issue_103 (TestFixture *fixture) +{ + #define LONG_URL "https://www.example.com/123456789012345678901234567890123456789012345678901234567890" + #define SHORTER_URL "https://www.example.com/1234567890123456789012345678901234567890" + #define SHORT_URL "https://www.example.com/" + + if (!test_utils_run_simple_test (fixture, + "mode:plain\n" + "type:before\\n" + LONG_URL "\\n" + "after\\n" + "prefix text " SHORTER_URL " suffix\\n" + "prefix " SHORT_URL " suffix\\n" + "end\n", + HTML_PREFIX "
before
" + "
" LONG_URL "
" + "
after
" + "
prefix text " SHORTER_URL " suffix
" + "
prefix " SHORT_URL " suffix
" + "
end
" + HTML_SUFFIX, + "before\n" + LONG_URL "\n" + "after\n" + "prefix text \n" + SHORTER_URL " suffix\n" + "prefix " SHORT_URL " suffix\n" + "end")) { + g_test_fail (); + return; + } + + #undef SHORT_URL + #undef SHORTER_URL + #undef LONG_URL +} + void test_add_html_editor_bug_tests (void) { @@ -1349,4 +1387,5 @@ test_add_html_editor_bug_tests (void) test_utils_add_test ("/bug/788829", test_bug_788829); test_utils_add_test ("/bug/750636", test_bug_750636); test_utils_add_test ("/issue/86", test_issue_86); + test_utils_add_test ("/issue/103", test_issue_103); } diff -up evolution-3.28.5/src/modules/webkit-editor/web-extension/e-editor-dom-functions.c.extra-new-line-before-url evolution-3.28.5/src/modules/webkit-editor/web-extension/e-editor-dom-functions.c --- evolution-3.28.5/src/modules/webkit-editor/web-extension/e-editor-dom-functions.c.extra-new-line-before-url 2018-09-03 15:40:14.493506323 +0200 +++ evolution-3.28.5/src/modules/webkit-editor/web-extension/e-editor-dom-functions.c 2018-09-03 15:40:14.496506323 +0200 @@ -14089,7 +14089,7 @@ wrap_lines (EEditorPage *editor_page, next_sibling = webkit_dom_node_get_next_sibling (node); /* If the anchor doesn't fit on the line, add it to a separate line. */ - if ((line_length + anchor_length) > length_to_wrap) { + if (line_length > 0 && (line_length + anchor_length) > length_to_wrap) { /* Put
before the anchor, thus it starts on a new line */ element = webkit_dom_document_create_element (document, "BR", NULL); element_add_class (element, "-x-evo-wrap-br");