summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-05-09 23:53:43 -0400
committerMatthias Clasen <mclasen@redhat.com>2021-05-10 00:07:56 -0400
commit6772ae34e92f88145264949a7db48f5c9b60fdb1 (patch)
tree1934fbf3d03c826d9e2911b26aee1436fc17449c
parentb9af025b97e80e3c520eaf2a19fc35883d5f2f35 (diff)
downloadpango-6772ae34e92f88145264949a7db48f5c9b60fdb1.tar.gz
Fix a thinko
The commit message for d476d2a944500f8553 said "word boundaries", but the code checked for line breaks. That was wrong, since it also made hyphens disappear at SHY, where we very much want them. Update affected tests.
-rw-r--r--pango/pango-layout.c10
-rw-r--r--tests/layouts/valid-4.expected4
2 files changed, 8 insertions, 6 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