aboutsummaryrefslogtreecommitdiff
path: root/graphics/ruby-libart/files/patch-rbart_canvas.c
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/ruby-libart/files/patch-rbart_canvas.c')
-rw-r--r--graphics/ruby-libart/files/patch-rbart_canvas.c53
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