summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* serializer: Use gtk_json_parser_select_stringnewer-json-parserMatthias Clasen2021-12-091-101/+315
| | | | Take advantage of the new parser api.
* json: Fix up select_stringMatthias Clasen2021-12-091-1/+1
| | | | There was a copy-paste error here.
* Update to a newer json parserMatthias Clasen2021-12-092-22/+124
|
* Merge branch 'broken-underlines' into 'main'Matthias Clasen2021-12-091-9/+16
|\ | | | | | | | | | | | | fc: Handle fonts with broken metrics better Closes #616 See merge request GNOME/pango!537
| * fc: Handle fonts with broken metrics betterMatthias Clasen2021-12-081-9/+16
| | | | | | | | | | | | | | | | | | 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
* | Merge branch 'tab-assert-fix' into 'main'Matthias Clasen2021-12-093-1/+187
|\ \ | | | | | | | | | | | | | | | | | | layout: Handle a corner case Closes #638 See merge request GNOME/pango!539
| * | layout: Handle a corner caseMatthias Clasen2021-12-093-1/+187
|/ / | | | | | | | | | | | | | | | | We can't break in a tab run. This fixes an assertion found by afl. Testcase included. Fixes: #638
* | Merge branch 'fix-break-latin' into 'main'Matthias Clasen2021-12-081-21/+19
|\ \ | |/ |/| | | | | | | | | Fix break-latin.c Closes #636 See merge request GNOME/pango!536
| * Fix break-latin.cMatthias Clasen2021-12-081-21/+19
|/ | | | | | | | The loop termination condition in break_latin() was incorrect. Fix this by copying the loop setup from break_arabic(). Fixes #636
* Merge branch 'fix-tabs-nowrap' into 'main'Matthias Clasen2021-12-077-17/+412
|\ | | | | | | | | | | | | Fix line width computation Closes #635 See merge request GNOME/pango!535
| * Fix line width computationMatthias Clasen2021-12-063-1/+390
| | | | | | | | | | | | | | | | | | | | 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
| * Add a monospace font for ciMatthias Clasen2021-12-064-16/+22
| | | | | | | | Update affected test outputs.
* | Merge branch 'matthiasc/for-main' into 'main'Matthias Clasen2021-12-063-239/+765
|\ \ | |/ |/| | | | | Update the json parser See merge request GNOME/pango!534
| * Plug a memory leak in the json parserMatthias Clasen2021-12-061-0/+2
| |
| * Update the json parserMatthias Clasen2021-12-053-239/+763
|/ | | | | This includes better error reporting, with error locations.
* Merge branch 'tab-crash-fix' into 'main'Matthias Clasen2021-12-053-3/+1449
|\ | | | | | | | | | | | | Fix a crash in tab handling Closes #634 See merge request GNOME/pango!533
| * Fix a crash in tab handlingtab-crash-fixMatthias Clasen2021-12-053-3/+1449
|/ | | | | | | | | | 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
* Merge branch 'fix-mingw-clang' into 'main'Matthias Clasen2021-12-031-0/+1
|\ | | | | | | | | tabs: Fix build with clang in mingw See merge request GNOME/pango!532
| * tabs: Fix build with clang in mingw Biswapriyo Nath2021-12-031-0/+1
|/ | | | Include stdlib.h for qsort function declaration. This fixes the error: implicit declaration of function 'qsort' is invalid in C99
* 1.50.01.50.0Matthias Clasen2021-12-022-3/+6
|
* doc: fixesMatthias Clasen2021-12-024-5/+5
|
* Merge branch 'serializer-rewrite' into 'main'Matthias Clasen2021-12-0341-2153/+3781
|\ | | | | | | | | Port the serializer to use our own json parser and printer See merge request GNOME/pango!531
| * jsonparser: Plug a memory leakserializer-rewriteMatthias Clasen2021-12-021-0/+2
| |
| * Add pango_font_deserializeMatthias Clasen2021-12-023-1/+103
| | | | | | | | | | This will make the font serialization useful in GTK, where we serialize fonts in node files.
| * Small fixesMatthias Clasen2021-12-022-8/+4
| | | | | | | | | | Properly document deserialization errors, and drop unused enum values.
| * Update tests for small changes in outputMatthias Clasen2021-12-0229-1225/+1204
| |
| * testserialize: Fix the testsMatthias Clasen2021-12-021-13/+23
| |
| * assorted serializer fixesMatthias Clasen2021-12-021-29/+23
| |
| * serializer: Move all error handling to the parserMatthias Clasen2021-12-021-222/+108
| | | | | | | | Just let the parser carry the error.
| * Add gtk_json_parser_set_errorMatthias Clasen2021-12-022-0/+12
| |
| * serializer: Replace json-glibMatthias Clasen2021-12-027-860/+2484
| | | | | | | | Replace json-glib by a homegrown json parser/printer.
| * tabs: Add a missing setterMatthias Clasen2021-12-022-0/+23
|/ | | | | Add pango_tab_array_set_positions_in_pixels, to help the serializer out.
* Merge branch 'tab-speedup' into 'main'Matthias Clasen2021-12-025-116/+109
|\ | | | | | | | | Add pango_tab_array_sort See merge request GNOME/pango!530
| * Fix up tab sizingtab-speedupMatthias Clasen2021-12-021-23/+18
| |
| * layout: Small optimizationMatthias Clasen2021-12-023-39/+17
| | | | | | | | | | Don't calculate line width the hard way when we can do it much easier.
| * layout: Optimize tab handlingMatthias Clasen2021-12-011-1/+1
| | | | | | | | | | | | We don't need to iterate the entire tab array every time, we just continue from the previous tab stop position.
| * layout: Call pango_tab_array_sortMatthias Clasen2021-12-011-3/+6
| | | | | | | | | | We want to optimize access to tab stops, and will assume they are ordered.
| * layout: Some restructuring of tab handlingMatthias Clasen2021-12-011-54/+43
| | | | | | | | Introduce a LastTab struct, and use it.
| * Add pango_tab_array_sortMatthias Clasen2021-12-012-0/+28
| | | | | | | | | | A utility function to ensure tab stops are in increasing order.
* | Merge branch 'matthiasc/for-main' into 'main'Matthias Clasen2021-11-301-0/+8
|\ \ | |/ |/| | | | | NEWS: Updates See merge request GNOME/pango!529
| * NEWS: UpdatesMatthias Clasen2021-11-301-0/+8
| |
* | Merge branch 'tab-align' into 'main'Matthias Clasen2021-11-2911-107/+2329
|\ \ | | | | | | | | | | | | | | | | | | Support tab alignment Closes #34 See merge request GNOME/pango!527
| * | Add a test with tab alignmentstab-alignMatthias Clasen2021-11-292-0/+1837
| | |
| * | tabs: Tweak string formatMatthias Clasen2021-11-292-7/+7
| | | | | | | | | | | | Use newlines to separate tabs, rather than spaces.
| * | tabs: Add a decimal pointMatthias Clasen2021-11-298-36/+165
| | | | | | | | | | | | | | | | | | | | | This is useful for PANGO_TAB_DECIMAL. Implement this in PangoLayout, in the serializer, and update tests.
| * | layout: Implement tab alignmentsMatthias Clasen2021-11-291-57/+201
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | serializer: Support tab alignmentsMatthias Clasen2021-11-294-16/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | tabs: Add other tab alignmentsMatthias Clasen2021-11-292-13/+52
| | | | | | | | | | | | | | | Add right, center, decimal tab alignments and support them in serialization. They are not implemented yet.
| * | test-layout: Make --fonts work as expectedMatthias Clasen2021-11-291-2/+5
| | | | | | | | | | | | We want to use this without initializing tests.
| * | docs: Add a note on tabsMatthias Clasen2021-11-291-1/+2
| |/ | | | | | | | | Explain that tabs really only work with PANGO_ALIGN_LEFT.