Commit graph

12113 commits

Author SHA1 Message Date
Adrian Johnson
69fdca480c Merge branch 'win32-printing-fix' into 'master'
Check correctly for surface_pattern being a recording in...

See merge request cairo/cairo!228
2021-08-04 11:41:24 +00:00
Jonathan Kew
67c91db455 Check correctly for surface_pattern being a snapshot/recording in _cairo_win32_printing_surface_paint_pattern.
(Corrected patch as proposed by Uli Schlachter.)

Fixes poor-quality print output on Windows reported in https://bugzilla.mozilla.org/show_bug.cgi?id=1721127.
2021-08-04 11:58:49 +01:00
Heiko Lewin
4dd48f0979 Merge branch 'fix_infinite_loop' into 'master'
_arc_max_angle_for_tolerance_normalized: fix infinite loop

See merge request cairo/cairo!155
2021-08-01 11:16:04 +00:00
Heiko Lewin
ab2c5ee21e _arc_max_angle_for_tolerance_normalized: fix infinite loop 2021-08-01 11:16:03 +00:00
Heiko Lewin
6a916648d5 Merge branch 'fix_clip_leak' into 'master'
Fix clip leak

See merge request cairo/cairo!158
2021-08-01 11:10:40 +00:00
Heiko Lewin
7176cc8f0f Fix clip leak 2021-08-01 11:10:40 +00:00
Uli Schlachter
d88dd1794e Merge branch 'color-font-test' into 'master'
Add ft-color-font test

See merge request cairo/cairo!221
2021-07-31 05:58:33 +00:00
Adrian Johnson
7c6f2d4f24 Add ft-color-font test 2021-07-31 08:56:59 +09:30
Adrian Johnson
814162d976 Merge branch 'pdf-links-fixes' into 'master'
pdf links: fix forward references to dest names with 'internal' flag

See merge request cairo/cairo!220
2021-07-29 20:29:10 +00:00
Adrian Johnson
ca1fb44dd3 pdf links: fix forward references to dest names with 'internal' flag 2021-07-29 07:31:31 +09:30
Adrian Johnson
47e6764de6 Merge branch 'tag-error' into 'master'
Print tag error details when CAIRO_DEBUG_TAG is defined

See merge request cairo/cairo!218
2021-07-28 21:28:28 +00:00
Adrian Johnson
24616585ec Print tag error details when CAIRO_DEBUG_TAG is defined
Add a _cairo_tag_error(fmt, ...) function that is used liked _cairo_error()
but allows an error message to be specified. When CAIRO_DEBUG_TAG is defined
the error is printed.
2021-07-29 06:00:37 +09:30
Adrian Johnson
4e3f6bf0c2 Merge branch 'pdf-object-streams' into 'master'
pdf: use cross-reference stream for PDF >= 1.5

See merge request cairo/cairo!197
2021-07-28 20:27:45 +00:00
Adrian Johnson
fb6f3eb32e pdf-tagged-text: generate both 1.4 and 1.5 PDFs 2021-07-28 06:18:01 +09:30
Adrian Johnson
d60e3f3501 Merge branch 'issue-426' into 'master'
pdf: use floating point widths when emitting fonts

Closes #426

See merge request cairo/cairo!213
2021-07-27 20:13:23 +00:00
Adrian Johnson
6fbfc9d927 pdf: use floating point widths when emitting fonts 2021-07-27 20:13:23 +00:00
Uli Schlachter
220222c5ff Merge branch 'issue-263' into 'master'
Win 64-bit fix pointer to long cast size mismatch

Closes #263

See merge request cairo/cairo!216
2021-07-27 15:53:03 +00:00
Adrian Johnson
6b8d8712fb pdf-tagged-text test: disable object stream compression
to allow the test to find the strings it is looking for.
2021-07-26 18:33:34 +09:30
Adrian Johnson
90193cc3a2 pdf: convert all document interchange features to use object streams 2021-07-26 18:31:57 +09:30
Adrian Johnson
bd514f6b08 pdf: add support for object streams for PDF >= 1.5
This allows all objects that were previously emitted uncompressed to
be compressed into a an object stream.

Currently only /Page, /Pages, and /Catalog have been converted to use
object streams.
2021-07-26 18:31:47 +09:30
Adrian Johnson
0f382eb087 pdf: use cross-reference stream for PDF >= 1.5
This reduces the output size and is required for object streams.
2021-07-26 18:31:33 +09:30
Adrian Johnson
d6fefd3156 Merge branch 'fix-wording' into 'master'
INSTALL.meson: correct the wording

See merge request cairo/cairo!217
2021-07-26 08:38:49 +00:00
Adrian Johnson
d1a8f20096 INSTALL.meson: correct the wording 2021-07-26 17:17:30 +09:30
Adrian Johnson
6872490e77 Merge branch 'meson-install' into 'master'
Add meson install instructions

See merge request cairo/cairo!206
2021-07-25 11:33:43 +00:00
Adrian Johnson
47c4dc4fcf Add meson install instructions 2021-07-25 11:33:42 +00:00
Adrian Johnson
908b243ab8 Merge branch 'svg-create-for-stream' into 'master'
svg: Fix create-for-stream test case

See merge request cairo/cairo!212
2021-07-25 03:21:03 +00:00
Adrian Johnson
62681fe052 Change FNV hash to 64-bit
Most builds are 64-bit where the uintptr_t type of the hash value and the font
face pointer that is being hashed are 64-bit.
2021-07-25 11:06:52 +09:30
Adrian Johnson
8d14a20a00 Fix some win32 compile warnings 2021-07-25 11:02:55 +09:30
Adrian Johnson
9fbf427548 Use uintptr_t for all casts between pointer and integer
On 64-bit windows, long is 32-bit. When compiling there are a large
number of warnings about mismatched sizes when casting long to/from a
pointer.

Use the (u)intptr_t type for any integer that will have a pointer stored
in it. Use a (u)intptr_t cast when integers are stored in pointers to
silence warnings.

Fixes #263
2021-07-25 11:01:20 +09:30
Uli Schlachter
099d71fb9f Merge branch 'issue-336' into 'master'
tags: allow links to page numbers not yet created

Closes #336

See merge request cairo/cairo!211
2021-07-24 12:58:17 +00:00
Uli Schlachter
4c6b604bd5 svg: Fix create-for-stream test case
Commit 2fbd53 added another test to create-for-stream that failed for
cairo-pdf. Manual testing shows that this test also fails for cairo-svg.
However, this was not noticed because even before this addition to the
test, create-for-stream already failed for cairo-svg. Since the
introduction on CI was done based on "let's ignore all current
failures", this hid the error.

This commit applies the trivial fix for cairo-svg to make this test
pass. It is basically the same error that cairo-pdf had.

Additionally, this removes the hack to ignore create-for-stream failures
in CI since it is now no longer necessary.

Thanks to Knut Peterson for reporting this [0].

[0]:
https://lists.cairographics.org/archives/cairo/2021-July/029291.html

Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-07-24 14:42:26 +02:00
Adrian Johnson
f7c7bcb603 tags: allow links to page numbers not yet created
Previously, forward references were required to use named destinations.

This patch is based on the patch in #336 by Guillaume Ayoub <guillaume.ayoub@kozea.fr>
that converted all links to indirect objects written at the end of the document.

I have reworked the patch so that only forward references to future page numbers are
written as indirect objects. Backward references and named destinations remain as they
are. This is to minimize the number of objects written to the PDF file.

Fixes #336
2021-07-24 21:33:09 +09:30
Adrian Johnson
994eccefc0 Merge branch 'recording-playback-nothing-to-do' into 'master'
Don't assert on NOTHING_TO_DO during recording replay.

See merge request cairo/cairo!195
2021-07-24 08:19:16 +00:00
Adrian Johnson
d12e55672c Merge branch 'pdf-stdio-write-errors' into 'master'
pdf: Properly pass on stdio write errors

See merge request cairo/cairo!210
2021-07-24 08:08:44 +00:00
Uli Schlachter
e689e67004 Fix build on windows
Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-07-23 17:32:39 +02:00
Uli Schlachter
2fbd53a6b3 pdf: Properly pass on stdio write errors
cairo-pdf was silently ignoring write errors in
_cairo_pdf_surface_finish(). Any write errors that happened here ended
up setting a "status" variable, but the value in this variable was then
unused.

This commit fixes this bug by passing this error on to the caller.

Additionally, this also adds a test case for this behaviour based on
writing to /dev/full. This file is non-standard and thus the test first
checks that this file exists and is writable before trying to write to
it.

This bug was found based on a report from Knut Petersen [0].

[0]: https://lists.cairographics.org/archives/cairo/2021-July/029281.html

Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-07-23 17:22:16 +02:00
Jonathan Kew
2d488b3596 Don't assert on NOTHING_TO_DO during recording replay. 2021-07-23 15:19:05 +01:00
Uli Schlachter
b408352d45 Merge branch 'issue-381' into 'master'
Always define _cairo_utf8_to_utf16 on Windows

Closes #381

See merge request cairo/cairo!209
2021-07-23 12:11:30 +00:00
Uli Schlachter
0d3090ad84 Merge branch 'issue-411' into 'master'
PS: ensure setup DSC comments are in BeginSetup section

Closes #411

See merge request cairo/cairo!208
2021-07-23 12:11:04 +00:00
Uli Schlachter
bfedda6a18 Merge branch 'issue-264' into 'master'
Patches from #264

Closes #264

See merge request cairo/cairo!207
2021-07-23 12:09:51 +00:00
Adrian Johnson
014707b7bc Merge branch 'parse-float-errors' into 'master'
Handle _cairo_strtod() failures in parse_float()

See merge request cairo/cairo!205
2021-07-23 09:51:24 +00:00
Peter Wang
bd54a1bf98 Always define _cairo_utf8_to_utf16 on Windows
_cairo_utf8_to_utf16 is used by _cairo_fopen on Windows so must be
defined even if Win32 fonts or other features are disabled.

Fixes #381
2021-07-23 19:15:56 +09:30
Adrian Johnson
0f18a873ef PS: ensure setup DSC comments are in BeginSetup section
Fixes #411
2021-07-23 19:10:55 +09:30
Bryce Harrington
c91ae5c5a0 boilerplate: Use _cairo_malloc instead of malloc
This changes most instances of malloc() calls to use Cairo's safer
_cairo_malloc().  The malloc() call in the implementation of
boilerplate's xmalloc() is not changed since it already includes a
size=0 check.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
2021-07-23 18:33:19 +09:30
Adrian Johnson
ae04679a08 truetype: check cmap size before allocating memory
Fixes #264
2021-07-23 18:32:44 +09:30
Uli Schlachter
e5e63a0462 Merge branch 'issue-399' into 'master'
cff: use correct size cast when decoding bytes to a signed int

Closes #399

See merge request cairo/cairo!204
2021-07-22 14:21:56 +00:00
Uli Schlachter
6f64682ca0 Handle _cairo_strtod() failures in parse_float()
When strtod cannot do anything, it returns zero and sets the end pointer
to the beginning of the string. This commit changes the code in
parse_float() to treat this case as an error.

Without the fix from commit b7d67433b7, this commit turns the error
from an endless loop into a parse error, which is a lot better error
behaviour.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-07-21 17:16:00 +02:00
Adrian Johnson
caf422b00b cff: use correct size cast when decoding bytes to a signed int
Fixes #399
2021-07-21 22:21:37 +09:30
Adrian Johnson
ab82549f03 Merge branch 'strtod-fix' into 'master'
Ensure _cairo_strtod accepts a leading sign character

Closes #499

See merge request cairo/cairo!203
2021-07-20 23:03:37 +00:00
Adrian Johnson
82f5570ad5 Merge branch 'issue-413' into 'master'
cff: Check subroutine number is valid before using as an array index

Closes #413

See merge request cairo/cairo!202
2021-07-20 22:41:43 +00:00