diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-05-10 04:16:38 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-05-10 04:16:38 +0000 |
commit | 3e2a8630323db7343b66df0722b3b114fedee0db (patch) | |
tree | fc2c63a8eb4d5980b1cbe11f1b4994f41a4d3359 | |
parent | b74477786377d6e86df12ff6c97529f481bbb4f1 (diff) | |
parent | 6772ae34e92f88145264949a7db48f5c9b60fdb1 (diff) | |
download | pango-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.c | 10 | ||||
-rw-r--r-- | tests/layouts/valid-4.expected | 4 | ||||
-rw-r--r-- | tests/test-break.c | 7 |
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 actual' +i=1, index=0, chars=30, level=0, gravity=south, flags=4, font=OMITTED, script=latin, language=en-us, 'This paragraph should actual' 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, 'ragraph 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 { |