Detect servers with a bug in repeating surfaces by checking vendor string and version.
For such surfaces
Save clip rects when setting a clip region on a surface so that we set the right clip for the surface's GC if we create it later.
Remove useless conditional return at the end of a void function.
Fix so that after calling _cairo_error the most that any cairo entry function ever does is return a previously computed value.
Call error_notify callback if set. (cairo_create): Initialize error_notify callback to NULL. (cairo_set_error_notify): New function to allow the user to set an error notify callback.
New cairo_set_error_notify prototye.
New test for cairo_set_error_notify.
cairo_status_to_string (cairo_status (cr));
This allows consistent handling of status values for things like cairo_pattern_status where there is now cairo_pattern_status_string function.
Propagate status errors from pattern->status to cr->status.
Originally 2005-05-08 Owen Taylor <otaylor@redhat.com>:
src/cairo-pattern.c src/cairoint.h: If allocation of pattern objects fails, return special static nil pattern objects.
If adding a color stop fails to allocate memory, set pattern->status. (And fix a memory leak.) Make public functions return when pattern->status is set, (and no longer return a cairo_status_t).
src/cairo-pattern.c src/cairo.h doc/public/cairo-sections.txt: Add cairo_pattern_status()
Check the status of gstate->source and of mask patterns passed in.
If cairo_create() fails, return a special static object, cairo_nil.
Don't return early if cr->status is set. cr->status should not affect reference counting.
Ignore any magic object with a reference count of -1.
Add a status field to cairo_path_t.
Add documentation for the new approach for handling errors in these functions---always returning a valid pointer with at least a status. (cairo_append_path): Propagate path status errors to the context. Add note to documentation on initializing path->status.
Add missing cairo_private qualifier to a couple functions.
Track new status field in cairo_path_t. (cairo_path_destroy): Don't destroy cairo_path_nil. Add documentation. (_cairo_path_data_create): (_cairo_path_data_create_flat): (_cairo_path_data_append_to_context): Add documentation. (_cairo_path_data_create_in_error): New function to create a placeholder cairo_path_t just to propagate a cairo_status_t error.