| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
It is needed for strtol()/strtoul().
|
|
|
|
|
| |
Add more links to GLib apis and to various
Unicode specs.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Take advantage of the new parser api.
|
|
|
|
| |
There was a copy-paste error here.
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
fc: Handle fonts with broken metrics better
Closes #616
See merge request GNOME/pango!537
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It seems that some fonts don't have meaningful
values for underline and strikethrough metrics.
Ignore these font-provided values if they are zero.
Fixes: #616
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We can't break in a tab run.
This fixes an assertion found by afl.
Testcase included.
Fixes: #638
|
|/
|
|
|
|
|
|
| |
The loop termination condition in break_latin()
was incorrect. Fix this by copying the loop setup
from break_arabic().
Fixes #636
|
|\
| |
| |
| |
| |
| |
| | |
Fix line width computation
Closes #635
See merge request GNOME/pango!535
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We an only use the line_width - remaining_width
shortcut if we are actually maintaining remaining_width,
i.e. not if we don't wrap lines.
Testcase included.
Fixes: #635
|
| | |
|
|/
|
|
|
| |
This includes better error reporting,
with error locations.
|
|
|
|
|
|
|
|
|
|
| |
When we uninsert the current tab run, we need to reset
our tab state to prevent last_tab->glyphs to become a
dangling pointer.
Test included.
Fixes: #634
|
|
|
|
| |
Include stdlib.h for qsort function declaration. This fixes the error:
implicit declaration of function 'qsort' is invalid in C99
|
| |
|
| |
|
|
|
|
|
| |
This will make the font serialization useful
in GTK, where we serialize fonts in node files.
|
|
|
|
|
| |
Properly document deserialization errors, and
drop unused enum values.
|
| |
|
|
|
|
| |
Just let the parser carry the error.
|
| |
|
|
|
|
| |
Replace json-glib by a homegrown json parser/printer.
|
|
|
|
|
| |
Add pango_tab_array_set_positions_in_pixels, to help
the serializer out.
|
| |
|
|
|
|
|
| |
Don't calculate line width the hard way when
we can do it much easier.
|
|
|
|
|
|
| |
We don't need to iterate the entire tab array
every time, we just continue from the previous
tab stop position.
|
|
|
|
|
| |
We want to optimize access to tab stops,
and will assume they are ordered.
|
|
|
|
| |
Introduce a LastTab struct, and use it.
|
|
|
|
|
| |
A utility function to ensure tab stops are in
increasing order.
|
|
|
|
| |
Use newlines to separate tabs, rather than spaces.
|
|
|
|
|
|
|
| |
This is useful for PANGO_TAB_DECIMAL.
Implement this in PangoLayout, in the
serializer, and update tests.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement the other tab alignments by adjusting
the tab width as we go.
Based on an old patch by Itai Bar-Haim.
This also includes a fix for the previously
supported left tab alignment in the presence
of indent.
Fixes: #34
|
|
|
|
|
|
|
|
|
| |
Serialize tab alignment in addition to tab
position. We still accept the old format
and default alignment to left.
Update testserialize and layout tests
for this.
|
|
|
|
|
| |
Add right, center, decimal tab alignments and support
them in serialization. They are not implemented yet.
|
|
|
|
|
| |
Explain that tabs really only work with
PANGO_ALIGN_LEFT.
|
|
|
|
|
|
|
|
| |
Even when we show ignorables, we still want to
ignore variation selectors and other ignorables
that we don't have nicks for.
Test included.
|
|
|
|
|
|
|
|
|
|
|
| |
Without this, we end up with line height being
zero in gravity north or west. The visible symptom
is that wrapped lines are drawn on top of each
other with line-height != 0.
Affected tests have been updated.
Fixes: #631
|
|
|
|
|
| |
This was showing up as glyphs placed outside
their logical extents.
|
|
|
|
|
|
|
|
| |
When setting variations to "", font descriptions
would add an ugly useless " @" at the end of their
serialization. Avoid that.
Test included.
|
|
|
|
|
| |
We can only use the width of the previous char
if we are not at the first char. Found by asan.
|
|
|
|
|
| |
The alternative is random test failures, now
that we check all these fields in test-layout.
|
|\
| |
| |
| |
| |
| |
| | |
Hinted metrics fixes
Closes #626
See merge request GNOME/pango!518
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The previous code was calculating the rounded up version of the
difference between the unhinted ascender and uninted descender. This
however would only result in the correct height if both unhinted
extentss together only differ by less then an a Pango unit from their
hinted counterparts. Otherwise the resulting height would be 1 unit too
short.
Fix this by using the difference between the hinted extents as height.
Fixes: https://gitlab.gnome.org/GNOME/pango/-/issues/626
|
| |
| |
| |
| |
| |
| |
| | |
This replaces the code that was trying to implement those via the ROUND
macro. This avoids a potential issue with values that already were on
whole units being rounded up to the next whole unit in the code that was
implementing CEIL this way.
|