summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-05-10 04:16:38 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-05-10 04:16:38 +0000
commit3e2a8630323db7343b66df0722b3b114fedee0db (patch)
treefc2c63a8eb4d5980b1cbe11f1b4994f41a4d3359
parentb74477786377d6e86df12ff6c97529f481bbb4f1 (diff)
parent6772ae34e92f88145264949a7db48f5c9b60fdb1 (diff)
downloadpango-3e2a8630323db7343b66df0722b3b114fedee0db.tar.gz
Merge branch 'matthiasc/for-master' into 'master'
test-break: Make help output work again See merge request GNOME/pango!332
-rw-r--r--pango/pango-layout.c10
-rw-r--r--tests/layouts/valid-4.expected4
-rw-r--r--tests/test-break.c7
3 files changed, 12 insertions, 9 deletions
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index 2fe6c9dc..ca70ebe5 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -3511,6 +3511,8 @@ get_need_hyphen (PangoItem *item,
}
_pango_attr_list_get_iterator (&attrs, &iter);
+ prev_space = prev_hyphen = TRUE;
+
for (i = 0, p = text + item->offset; i < item->num_chars; i++, p = g_utf8_next_char (p))
{
gunichar wc = g_utf8_get_char (p);
@@ -3581,9 +3583,7 @@ get_need_hyphen (PangoItem *item,
else
hyphen = FALSE;
- if (i == 0)
- need_hyphen[i] = FALSE;
- else if (prev_space || space)
+ if (prev_space || space)
need_hyphen[i] = FALSE;
else if (prev_hyphen || hyphen)
need_hyphen[i] = FALSE;
@@ -3594,6 +3594,8 @@ get_need_hyphen (PangoItem *item,
prev_hyphen = hyphen;
}
+ need_hyphen[item->num_chars - 1] = FALSE;
+
_pango_attr_iterator_destroy (&iter);
_pango_attr_list_destroy (&attrs);
}
@@ -3606,7 +3608,7 @@ break_needs_hyphen (PangoLayout *layout,
if (state->log_widths_offset + pos == 0)
return FALSE;
- if (layout->log_attrs[state->start_offset + pos].is_line_break)
+ if (layout->log_attrs[state->start_offset + pos].is_word_boundary)
return FALSE;
if (state->need_hyphen[state->log_widths_offset + pos - 1])
diff --git a/tests/layouts/valid-4.expected b/tests/layouts/valid-4.expected
index 2534b6fc..66796cb5 100644
--- a/tests/layouts/valid-4.expected
+++ b/tests/layouts/valid-4.expected
@@ -23,11 +23,11 @@ i=6, index=152, paragraph-start=1, dir=ltr ''
--- runs
-i=1, index=0, chars=30, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'This paragraph should ac­tual­'
+i=1, index=0, chars=30, level=0, gravity=south, flags=4, font=OMITTED, script=latin, language=en-us, 'This paragraph should ac­tual­'
i=2, index=32, no run, line end
i=3, index=32, chars=31, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'ly have multiple lines, unlike '
i=4, index=63, no run, line end
-i=5, index=63, chars=29, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'all the other wannabe äöü pa­'
+i=5, index=63, chars=29, level=0, gravity=south, flags=4, font=OMITTED, script=latin, language=en-us, 'all the other wannabe äöü pa­'
i=6, index=96, no run, line end
i=7, index=96, chars=27, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'ra­graph tests in this ugh '
i=8, index=124, no run, line end
diff --git a/tests/test-break.c b/tests/test-break.c
index 413fd088..51074d80 100644
--- a/tests/test-break.c
+++ b/tests/test-break.c
@@ -322,7 +322,7 @@ main (int argc, char *argv[])
/* allow to easily generate expected output for new test cases */
if (argc > 1)
{
- if (strcmp (argv[1], "--help") == 0)
+ if (strcmp (argv[1], "--legend") == 0)
{
g_print ("test-break uses the following symbols for log attrs\n\n");
g_print ("Breaks: Words:\n"
@@ -331,8 +331,9 @@ main (int argc, char *argv[])
" c - char break e - word end\n"
"\n"
"Whitespace: Sentences:\n"
- " x - expandable space s - sentence start\n"
- " w - whitespace e - sentence end\n");
+ " x - expandable space b - sentence boundary\n"
+ " w - whitespace s - sentence start\n"
+ " e - sentence end\n");
}
else
{