diff options
Diffstat (limited to 'graphics/ruby-libart/files')
-rw-r--r-- | graphics/ruby-libart/files/patch-rbart_canvas.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/graphics/ruby-libart/files/patch-rbart_canvas.c b/graphics/ruby-libart/files/patch-rbart_canvas.c new file mode 100644 index 000000000000..52c118d4f2ff --- /dev/null +++ b/graphics/ruby-libart/files/patch-rbart_canvas.c @@ -0,0 +1,53 @@ +--- src/rbart_canvas.c.orig Mon Jan 20 01:04:03 2003 ++++ src/rbart_canvas.c Fri Mar 21 20:06:11 2003 +@@ -156,6 +156,7 @@ + return r_self; + } + ++#if 0 + static void + user_init_destination(cinfo) + j_compress_ptr cinfo; +@@ -188,6 +189,42 @@ + r_buffer = (VALUE) cinfo->client_data; + RSTRING(r_buffer)->len = RSTRING(r_buffer)->aux.capa - cinfo->dest->free_in_buffer; + RSTRING(r_buffer)->ptr[RSTRING(r_buffer)->len] = '\0'; ++} ++#endif ++ ++struct client_data { ++ VALUE r_result; ++ JOCTET buffer[BUFSIZ]; ++}; ++ ++static void ++user_init_destination(cinfo) ++ j_compress_ptr cinfo; ++{ ++ struct client_data *cd; ++ cd = (struct client_data *) cinfo->client_data; ++ cinfo->dest->next_output_byte = cd->buffer; ++ cinfo->dest->free_in_buffer = BUFSIZ; ++} ++ ++static boolean ++user_empty_output_buffer(cinfo) ++ j_compress_ptr cinfo; ++{ ++ struct client_data *cd; ++ cd = (struct client_data *) cinfo->client_data; ++ rb_str_cat(cd->r_result, cd->buffer, BUFSIZ); ++ cinfo->dest->next_output_byte = cd->buffer; ++ cinfo->dest->free_in_buffer = BUFSIZ; ++} ++ ++static void ++user_term_destination(cinfo) ++ j_compress_ptr cinfo; ++{ ++ struct client_data *cd; ++ cd = (struct client_data *) cinfo->client_data; ++ rb_str_cat(cd->r_result, cd->buffer, cinfo->dest->next_output_byte - cd->buffer); + } + + static VALUE |