static cairo_output_stream_t * _word_wrap_stream_create (cairo_output_stream_t *output, int max_column) { word_wrap_stream_t *stream; if (output->status) return _cairo_output_stream_create_in_error (output->status); stream = malloc (sizeof (word_wrap_stream_t)); if (unlikely (stream == NULL)) { _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); return (cairo_output_stream_t *) &_cairo_output_stream_nil; } _cairo_output_stream_init (&stream->base, _word_wrap_stream_write, NULL, _word_wrap_stream_close); stream->output = output; stream->max_column = max_column; stream->column = 0; stream->state = WRAP_STATE_DELIMITER; stream->in_escape = FALSE; stream->escape_digits = 0; return &stream->base; }
static cairo_output_stream_t * _word_wrap_stream_create (cairo_output_stream_t *output, int max_column) { word_wrap_stream_t *stream; if (output->status) return _cairo_output_stream_create_in_error (output->status); stream = malloc (sizeof (word_wrap_stream_t)); if (unlikely (stream == NULL)) { _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); return (cairo_output_stream_t *) &_cairo_output_stream_nil; } _cairo_output_stream_init (&stream->base, _word_wrap_stream_write, NULL, _word_wrap_stream_close); stream->output = output; stream->max_column = max_column; stream->column = 0; stream->last_write_was_space = FALSE; stream->in_hexstring = FALSE; stream->empty_hexstring = TRUE; return &stream->base; }
cairo_output_stream_t * _cairo_base85_stream_create (cairo_output_stream_t *output) { cairo_base85_stream_t *stream; if (output->status) return _cairo_output_stream_create_in_error (output->status); stream = malloc (sizeof (cairo_base85_stream_t)); if (unlikely (stream == NULL)) { _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); return (cairo_output_stream_t *) &_cairo_output_stream_nil; } _cairo_output_stream_init (&stream->base, _cairo_base85_stream_write, NULL, _cairo_base85_stream_close); stream->output = output; stream->pending = 0; return &stream->base; }
cairo_output_stream_t * _cairo_deflate_stream_create (cairo_output_stream_t *output) { cairo_deflate_stream_t *stream; if (output->status) return _cairo_output_stream_create_in_error (output->status); stream = _cairo_malloc (sizeof (cairo_deflate_stream_t)); if (unlikely (stream == NULL)) { _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); return (cairo_output_stream_t *) &_cairo_output_stream_nil; } _cairo_output_stream_init (&stream->base, _cairo_deflate_stream_write, NULL, _cairo_deflate_stream_close); stream->output = output; stream->zlib_stream.zalloc = Z_NULL; stream->zlib_stream.zfree = Z_NULL; stream->zlib_stream.opaque = Z_NULL; if (deflateInit (&stream->zlib_stream, Z_DEFAULT_COMPRESSION) != Z_OK) { free (stream); return (cairo_output_stream_t *) &_cairo_output_stream_nil; } stream->zlib_stream.next_in = stream->input_buf; stream->zlib_stream.avail_in = 0; stream->zlib_stream.next_out = stream->output_buf; stream->zlib_stream.avail_out = BUFFER_SIZE; return &stream->base; }