| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
The last character of Emoji keycap sequences, 0x20E3,
has a vertical orientation of U, according to Unicode.
This unfortunately makes the width iter frequently break
such sequences into multiple items, preventing them from
being rendered as expected.
Fix this by ignoring width changes inside Emoji sequences.
Fixes: #502
|
|\
| |
| |
| |
| | |
misc fixes
See merge request GNOME/pango!242
|
| |
| |
| |
| |
| | |
clang doesn't know that this is fine, and complains.
So help it out.
|
| |
| |
| |
| |
| |
| |
| | |
clang complains that initializing 'FcPattern *' (aka 'struct _FcPattern *')
with an expression of type 'const FcPattern *' (aka 'const struct _FcPattern *')
discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
FcPattern *pattern = pango_fc_font_key_get_pattern (key);
|
|\ \
| |/
| |
| |
| | |
Fix attr iterators with overlapping attributes
See merge request GNOME/pango!240
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This broke when PangoAttrIterator was changed to
use an array for the stack of current attributes, in
dec6c0868ef2c36. We were not always walking the array
in the right order. The first attribute to check is
at the *end* of the array.
This showed up as misrendering in epsilon_0 example
in gtk3-demo's text view markup demo.
Test included.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...when interpreting item->offset values.
I ran into this when executing tests of recent LibreOffice master with ASan on
Fedora 32 (with pango-1.44.7-2.fc32.x86_64), where one of the tests renders
various dialogs with a Tamil localization and failed with
> ==97247==ERROR: AddressSanitizer: SEGV on unknown address 0x60b000210006 (pc 0x7fd6c5b22b54 bp 0x61d0004b4150 sp 0x7fff107a0d18 T0)
> ==97247==The signal is caused by a READ memory access.
> #0 in g_utf8_get_char at ../glib/gutf8.c:319:37 (/lib64/libglib-2.0.so.0 +0x85b54)
> #1 in break_indic at ../pango/break-indic.c:119:17 (/lib64/libpango-1.0.so.0 +0x1076d)
> #2 in break_script at ../pango/break.c:1896:7 (/lib64/libpango-1.0.so.0 +0x1076d)
> #3 in tailor_break at ../pango/break.c:1606:9 (/lib64/libpango-1.0.so.0 +0x147db)
> #4 in pango_tailor_break at ../pango/break.c:1774:7 (/lib64/libpango-1.0.so.0 +0x147db)
> #5 in get_items_log_attrs at ../pango/pango-layout.c:4032:7 (/lib64/libpango-1.0.so.0 +0x2729c)
> #6 in pango_layout_check_lines at ../pango/pango-layout.c:4289:7 (/lib64/libpango-1.0.so.0 +0x2729c)
> #7 in pango_layout_get_extents_internal at ../pango/pango-layout.c:2623:3 (/lib64/libpango-1.0.so.0 +0x29068)
> #8 in gtk_label_get_measuring_layout at /usr/src/debug/gtk3-3.24.22-1.fc32.x86_64/gtk/gtklabel.c:3376:3 (/lib64/libgtk-3.so.0 +0x2454d0)
[...]
From some debugging, it smells like `pango_layout_check_lines` calls
`pango_itemize_with_base_dir` to compute `state.items` that are relative to the
beginning of `layout->text`, but then passes `state.items` together with the
offset'ed `start` into `get_items_log_attrs`, so that the latter misinterpreted
the items' locations relative to the offset'ed start.
Just adding
g_assert (item->offset <= length);
g_assert (item->length <= length - item->offset);
to the original `get_items_log_attrs` would make various tests in the `meson
test` suite fail, but which pass again with the complete fix, matching the above
speculation.
|
|
|
|
|
|
| |
Add sample texts for Khmer, Lao, Thaana, Sinhalese and Burmese,
the first two are from GLASS, the last three are from the
Wikipedia articles on these writing systems.
|
|
|
|
|
|
|
|
|
|
|
| |
The assertion in pango_language_get_scripts can
actually be triggered since we last regenerated
the pango_script_for_lang table. It now includes
an entry for und-zsye which has no scripts.
Handle this case without asserting.
This commit includes a test.
|
|
|
|
| |
Declare variables at the top of the block...
|
|
|
|
|
| |
This #if snuck in as part of efa66e7b634050ef3.
No need to keep it around.
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
Fixes pango_win32_font_map_load_font when font contains fallback families
Closes #482
See merge request GNOME/pango!217
|
| | |
|
| |
| |
| |
| |
| | |
Add support for adding sysprof marks.
Strongly inspired by equivalent GLib support.
|
| |
| |
| |
| |
| |
| |
| |
| | |
I don't think this is a legitimate concern, but it is
faster to add a check than to argue about the use of
pango on fontless systems.
Fixes: #495
|
| |
| |
| |
| |
| | |
As pointed out in #495, we were assigning
logical_rect->y twice in a row here. Once is enough.
|
|\ \
| | |
| | |
| | |
| | | |
Use proper fontconfig config object
See merge request GNOME/pango!222
|
| | |
| | |
| | |
| | |
| | |
| | | |
When calling into FcConfig api, passing NULL means
"use the default config". But we may have a set config
that we should be using for all fontconfig calls.
|
| | |
| | |
| | |
| | |
| | |
| | | |
We can do the format filtering on the unsorted
font lists. Sorting the same list twice may be
fast, but there's still some setup overhead.
|
| | |
| | |
| | |
| | |
| | | |
We were needlessly duplicating patters when we
could have just referenced them.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
renderer: Move overline to priv data structure
Closes #497
See merge request GNOME/pango!220
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts the ABI break caused by adding the overline to the public
data structure, and is binary- and source-compatible with Pango 1.45.0
and older, but not compatible with versions 1.45.1 to 1.46.0 inclusive.
Resolves: https://gitlab.gnome.org/GNOME/pango/-/issues/497
Bug-Debian: https://bugs.debian.org/968337
Signed-off-by: Simon McVittie <smcv@debian.org>
|
|/ / |
|
|/ |
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
Initialise out arguments
Closes #489
See merge request GNOME/pango!211
|
| |
| |
| |
| |
| |
| |
| | |
If we bail out early, we end up with uninitialised data and no way for a
caller to know that happened.
Fixes: #489
|
|\ \
| | |
| | |
| | |
| | | |
Export pango_parse_color_with_alpha
See merge request GNOME/pango!215
|
| | |
| | |
| | |
| | |
| | | |
This will be useful to make GdkRGBA support
hex formats with alpha.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Make it return 0xffff if alpha is not present (this will
be more convenient when we use this function in GdkRGBA).
Update all users.
|
|\ \ \
| |/ /
|/| |
| | |
| | | |
Remove hb-glib use
See merge request GNOME/pango!213
|
| |/
| |
| |
| |
| |
| | |
glib isn't hard dependency to harfbuzz so we like to make embedders be able
to compile harfbuzz for Pango without hb-glib now that hb_glib_get_unicode_funcs
use is gone releases ago.
|
|/
|
|
|
|
|
|
|
|
|
| |
You can call pango_layout_set_text() with a length that
is longer than the string (and there's code in the wild
that does that). We try to handle it by only looking at
the initial segment of the text, but we are forgetting
to set layout->length to the length of that segment,
leading us to access beyond the string end later.
This fixes #490
|
|
|
|
|
|
| |
Take font scale into account when creating HarfBuzz fonts.
Fixes https://gitlab.gnome.org/GNOME/pango/-/issues/488
|
|\
| |
| |
| |
| | |
pango-attributes.c: Fix on older compilers
See merge request GNOME/pango!208
|
| |
| |
| |
| |
| | |
Avoid declaring a variables in a for loop initialization, so that we
won't accidentally break building on older compilers.
|
|/
|
|
|
| |
Fixes https://gitlab.gnome.org/GNOME/pango/-/issues/484 and
https://gitlab.gnome.org/GNOME/pango/-/issues/457
|
|
|
|
|
|
|
|
| |
There were a few cases left where empty attribute
lists could lead to crashes. This was observed causing
crashes in gnumeric.
Testcases included.
|
|
|
|
|
| |
This was showing up as the colored Google link
in the gtk4-demo links demo losing its colors.
|
|
|
|
|
|
|
|
|
|
| |
The Pango API exposes harfbuzz types, and so we need to depend on
HarfBuzz-0.0 when generating our introspection data.
The introspection data on HarfBuzz was fixed upstream, even though the
current introspected API is not stellar.
Fixes: #458
|
|\
| |
| |
| |
| | |
Revert "PangoLanguage: Fix clang -Wcast-align warnings"
See merge request GNOME/pango!203
|
| |
| |
| |
| |
| |
| | |
This reverts commit 3a9398fb989ff571aa40405987e20d548717687e.
This commit was causing crashes, see #481
|
| |
| |
| |
| |
| | |
When allowing attributes to be NULL, we need
to take that into account here too.
|
|\ \
| | |
| | |
| | |
| | | |
Fix pango_attr_list_change
See merge request GNOME/pango!200
|
| | |
| | |
| | |
| | |
| | |
| | | |
There were some breakage introduced in the porting
to GPtrArray - we sometimes ran into assertions, and
sometimes forgot to add the new attribute altogether.
|
| | |
| | |
| | |
| | | |
The methods take a PangoFont, but they are really PangoXftFont methods.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The Pango sub-libraries have symbols in the pango_<something> namespace,
but the identifiers are in the Pango one, which makes consumers of the
introspection data either get something like:
PangoCairo.show_layout()
with a bunch of warnings caused by the type macros not following the
appropriate pattern, or:
PangoCairo.cairo_show_layout()
which breaks introspection ABI.
We can use the __GI_SCANNER__ pre-processor symbol to trick the scanner
into generating the appropriate representation of the API, while keeping
the C consumers happy with the existing—albeit wildly inconsistent with
best practices for GObject-based libraries—symbols.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
itemize: Work around gtk2 brokenness
Closes #480
See merge request GNOME/pango!198
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
GTK 2 apparently manages to call pango_itemize_with_base_dir
with a non-zero length for a string that contains 0 characters.
That in turn causes pango_log2vis_get_embedding_levels to
return NULL, and things go downhill from there.
A test is included.
Fixes: #480
|