head 1.3; access; symbols pkgsrc-2026Q1:1.3.0.42 pkgsrc-2026Q1-base:1.3 pkgsrc-2025Q4:1.3.0.40 pkgsrc-2025Q4-base:1.3 pkgsrc-2025Q3:1.3.0.38 pkgsrc-2025Q3-base:1.3 pkgsrc-2025Q2:1.3.0.36 pkgsrc-2025Q2-base:1.3 pkgsrc-2025Q1:1.3.0.34 pkgsrc-2025Q1-base:1.3 pkgsrc-2024Q4:1.3.0.32 pkgsrc-2024Q4-base:1.3 pkgsrc-2024Q3:1.3.0.30 pkgsrc-2024Q3-base:1.3 pkgsrc-2024Q2:1.3.0.28 pkgsrc-2024Q2-base:1.3 pkgsrc-2024Q1:1.3.0.26 pkgsrc-2024Q1-base:1.3 pkgsrc-2023Q4:1.3.0.24 pkgsrc-2023Q4-base:1.3 pkgsrc-2023Q3:1.3.0.22 pkgsrc-2023Q3-base:1.3 pkgsrc-2023Q2:1.3.0.20 pkgsrc-2023Q2-base:1.3 pkgsrc-2023Q1:1.3.0.18 pkgsrc-2023Q1-base:1.3 pkgsrc-2022Q4:1.3.0.16 pkgsrc-2022Q4-base:1.3 pkgsrc-2022Q3:1.3.0.14 pkgsrc-2022Q3-base:1.3 pkgsrc-2022Q2:1.3.0.12 pkgsrc-2022Q2-base:1.3 pkgsrc-2022Q1:1.3.0.10 pkgsrc-2022Q1-base:1.3 pkgsrc-2021Q4:1.3.0.8 pkgsrc-2021Q4-base:1.3 pkgsrc-2021Q3:1.3.0.6 pkgsrc-2021Q3-base:1.3 pkgsrc-2021Q2:1.3.0.4 pkgsrc-2021Q2-base:1.3 pkgsrc-2021Q1:1.3.0.2 pkgsrc-2021Q1-base:1.3 pkgsrc-2020Q4:1.2.0.56 pkgsrc-2020Q4-base:1.2 pkgsrc-2020Q3:1.2.0.54 pkgsrc-2020Q3-base:1.2 pkgsrc-2020Q2:1.2.0.50 pkgsrc-2020Q2-base:1.2 pkgsrc-2020Q1:1.2.0.30 pkgsrc-2020Q1-base:1.2 pkgsrc-2019Q4:1.2.0.52 pkgsrc-2019Q4-base:1.2 pkgsrc-2019Q3:1.2.0.48 pkgsrc-2019Q3-base:1.2 pkgsrc-2019Q2:1.2.0.46 pkgsrc-2019Q2-base:1.2 pkgsrc-2019Q1:1.2.0.44 pkgsrc-2019Q1-base:1.2 pkgsrc-2018Q4:1.2.0.42 pkgsrc-2018Q4-base:1.2 pkgsrc-2018Q3:1.2.0.40 pkgsrc-2018Q3-base:1.2 pkgsrc-2018Q2:1.2.0.38 pkgsrc-2018Q2-base:1.2 pkgsrc-2018Q1:1.2.0.36 pkgsrc-2018Q1-base:1.2 pkgsrc-2017Q4:1.2.0.34 pkgsrc-2017Q4-base:1.2 pkgsrc-2017Q3:1.2.0.32 pkgsrc-2017Q3-base:1.2 pkgsrc-2017Q2:1.2.0.28 pkgsrc-2017Q2-base:1.2 pkgsrc-2017Q1:1.2.0.26 pkgsrc-2017Q1-base:1.2 pkgsrc-2016Q4:1.2.0.24 pkgsrc-2016Q4-base:1.2 pkgsrc-2016Q3:1.2.0.22 pkgsrc-2016Q3-base:1.2 pkgsrc-2016Q2:1.2.0.20 pkgsrc-2016Q2-base:1.2 pkgsrc-2016Q1:1.2.0.18 pkgsrc-2016Q1-base:1.2 pkgsrc-2015Q4:1.2.0.16 pkgsrc-2015Q4-base:1.2 pkgsrc-2015Q3:1.2.0.14 pkgsrc-2015Q3-base:1.2 pkgsrc-2015Q2:1.2.0.12 pkgsrc-2015Q2-base:1.2 pkgsrc-2015Q1:1.2.0.10 pkgsrc-2015Q1-base:1.2 pkgsrc-2014Q4:1.2.0.8 pkgsrc-2014Q4-base:1.2 pkgsrc-2014Q3:1.2.0.6 pkgsrc-2014Q3-base:1.2 pkgsrc-2014Q2:1.2.0.4 pkgsrc-2014Q2-base:1.2 pkgsrc-2014Q1:1.2.0.2 pkgsrc-2014Q1-base:1.2 pkgsrc-2013Q4:1.1.0.28 pkgsrc-2013Q4-base:1.1 pkgsrc-2013Q3:1.1.0.26 pkgsrc-2013Q3-base:1.1 pkgsrc-2013Q2:1.1.0.24 pkgsrc-2013Q2-base:1.1 pkgsrc-2013Q1:1.1.0.22 pkgsrc-2013Q1-base:1.1 pkgsrc-2012Q4:1.1.0.20 pkgsrc-2012Q4-base:1.1 pkgsrc-2012Q3:1.1.0.18 pkgsrc-2012Q3-base:1.1 pkgsrc-2012Q2:1.1.0.16 pkgsrc-2012Q2-base:1.1 pkgsrc-2012Q1:1.1.0.14 pkgsrc-2012Q1-base:1.1 pkgsrc-2011Q4:1.1.0.12 pkgsrc-2011Q4-base:1.1 pkgsrc-2011Q3:1.1.0.10 pkgsrc-2011Q3-base:1.1 pkgsrc-2011Q2:1.1.0.8 pkgsrc-2011Q2-base:1.1 pkgsrc-2011Q1:1.1.0.6 pkgsrc-2011Q1-base:1.1 pkgsrc-2010Q4:1.1.0.4 pkgsrc-2010Q4-base:1.1 pkgsrc-2010Q3:1.1.0.2 pkgsrc-2010Q3-base:1.1; locks; strict; comment @# @; 1.3 date 2021.02.14.14.59.38; author taca; state Exp; branches; next 1.2; commitid dJnkjCpYxco6NGHC; 1.2 date 2014.03.17.14.12.10; author taca; state Exp; branches; next 1.1; commitid AuJxQ8BOHODTI3tx; 1.1 date 2010.09.10.06.46.43; author taca; state Exp; branches; next ; desc @@ 1.3 log @graphics/ruby-gd: fix build problem with Ruby 3.0 Use more modern Ruby API. @ text @$NetBSD: patch-aa,v 1.2 2014/03/17 14:12:10 taca Exp $ Support modern Ruby API. --- GD.c.orig 2021-01-11 07:41:51.880067934 +0000 +++ GD.c @@@@ -11,6 +11,9 @@@@ **************************************************************/ #include "ruby.h" -#include "rubyio.h" -#include "version.h" +#include "ruby/io.h" +#include "ruby/version.h" + +#define RB_IO_PATH(iot) (RSTRING_PTR((iot)->pathv)) +#define RB_IO_FILE(iot) rb_io_stdio_file((iot)) #include "gd.h" @@@@ -63,17 +66,17 @@@@ img_from_pngfname(klass, fname) { VALUE f; - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; Check_Type(fname, T_STRING); - f = rb_file_open(STR2CSTR(fname), "r"); + f = rb_file_open(StringValuePtr(fname), "r"); rb_io_binmode(f); GetOpenFile(f, fptr); rb_io_check_readable(fptr); - iptr = gdImageCreateFromPng(fptr->f); + iptr = gdImageCreateFromPng(rb_io_stdio_file(fptr)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid PNG File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid PNG File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); @@@@ -85,5 +88,5 @@@@ img_from_png(klass, f) VALUE klass, f; { - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; @@@@ -93,7 +96,7 @@@@ img_from_png(klass, f) rb_io_check_readable(fptr); - iptr = gdImageCreateFromPng(fptr->f); + iptr = gdImageCreateFromPng(rb_io_stdio_file(fptr)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid PNG File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid PNG File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); @@@@ -106,17 +109,17 @@@@ img_from_giffname(klass, fname) { VALUE f; - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; Check_Type(fname, T_STRING); - f = rb_file_open(STR2CSTR(fname), "r"); + f = rb_file_open(StringValuePtr(fname), "r"); rb_io_binmode(f); GetOpenFile(f, fptr); rb_io_check_readable(fptr); - iptr = gdImageCreateFromGif(fptr->f); + iptr = gdImageCreateFromGif(rb_io_stdio_file(fptr)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid GIF File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid GIF File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); @@@@ -127,5 +130,5 @@@@ img_from_gif(klass, f) VALUE klass, f; { - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; @@@@ -135,7 +138,7 @@@@ img_from_gif(klass, f) rb_io_check_readable(fptr); - iptr = gdImageCreateFromGif(fptr->f); + iptr = gdImageCreateFromGif(rb_io_stdio_file(fptr)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid GIF File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid GIF File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); @@@@ -148,17 +151,17 @@@@ img_from_gdfname(klass, fname) { VALUE f; - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; Check_Type(fname, T_STRING); - f = rb_file_open(STR2CSTR(fname), "r"); + f = rb_file_open(StringValuePtr(fname), "r"); rb_io_binmode(f); GetOpenFile(f, fptr); rb_io_check_readable(fptr); - iptr = gdImageCreateFromGd(fptr->f); + iptr = gdImageCreateFromGd(rb_io_stdio_file(fptr)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid Gd File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid Gd File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); @@@@ -169,5 +172,5 @@@@ img_from_gd(klass, f) VALUE klass, f; { - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; @@@@ -177,7 +180,7 @@@@ img_from_gd(klass, f) rb_io_check_readable(fptr); - iptr = gdImageCreateFromGd(fptr->f); + iptr = gdImageCreateFromGd(rb_io_stdio_file(fptr)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid Gd File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid Gd File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); } @@@@ -188,17 +191,17 @@@@ img_from_gd2fname(klass, fname) { VALUE f; - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; Check_Type(fname, T_STRING); - f = rb_file_open(STR2CSTR(fname), "r"); + f = rb_file_open(StringValuePtr(fname), "r"); rb_io_binmode(f); GetOpenFile(f, fptr); rb_io_check_readable(fptr); - iptr = gdImageCreateFromGd2(fptr->f); + iptr = gdImageCreateFromGd2(rb_io_stdio_file(fptr)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid Gd2 File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid Gd2 File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); @@@@ -209,5 +212,5 @@@@ img_from_gd2(klass, f) VALUE klass, f; { - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; @@@@ -217,7 +220,7 @@@@ img_from_gd2(klass, f) rb_io_check_readable(fptr); - iptr = gdImageCreateFromGd2(fptr->f); + iptr = gdImageCreateFromGd2(rb_io_stdio_file(fptr)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid Gd2 File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid Gd2 File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); @@@@ -229,18 +232,18 @@@@ img_from_gd2_partfname(klass, fname, src { VALUE f; - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; Check_Type(fname, T_STRING); - f = rb_file_open(STR2CSTR(fname), "r"); + f = rb_file_open(StringValuePtr(fname), "r"); rb_io_binmode(f); GetOpenFile(f, fptr); rb_io_check_readable(fptr); - iptr = gdImageCreateFromGd2Part(fptr->f, NUM2INT(srcx), + iptr = gdImageCreateFromGd2Part(rb_io_stdio_file(fptr), NUM2INT(srcx), NUM2INT(srcy), NUM2INT(w), NUM2INT(h)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid Gd2 File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid Gd2 File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); @@@@ -251,5 +254,5 @@@@ img_from_gd2_part(klass, f, srcx, srcy, VALUE klass, f, srcx, srcy, w, h; { - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; @@@@ -259,8 +262,8 @@@@ img_from_gd2_part(klass, f, srcx, srcy, rb_io_check_readable(fptr); - iptr = gdImageCreateFromGd2Part(fptr->f, NUM2INT(srcx), + iptr = gdImageCreateFromGd2Part(rb_io_stdio_file(fptr), NUM2INT(srcx), NUM2INT(srcy), NUM2INT(w), NUM2INT(h)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid Gd2 File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid Gd2 File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); @@@@ -272,5 +275,5 @@@@ img_from_xbm(klass, f) VALUE klass, f; { - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; @@@@ -280,7 +283,7 @@@@ img_from_xbm(klass, f) rb_io_check_readable(fptr); - iptr = gdImageCreateFromXbm(fptr->f); + iptr = gdImageCreateFromXbm(rb_io_stdio_file(fptr)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid Xbm File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid Xbm File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); @@@@ -292,17 +295,17 @@@@ img_from_xbmfname(klass, fname) { VALUE f; - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; Check_Type(fname, T_STRING); - f = rb_file_open(STR2CSTR(fname), "r"); + f = rb_file_open(StringValuePtr(fname), "r"); rb_io_binmode(f); GetOpenFile(f, fptr); rb_io_check_readable(fptr); - iptr = gdImageCreateFromXbm(fptr->f); + iptr = gdImageCreateFromXbm(rb_io_stdio_file(fptr)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid Xbm File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid Xbm File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); @@@@ -314,5 +317,5 @@@@ img_from_xpm(klass, f) VALUE klass, f; { - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; @@@@ -323,7 +326,7 @@@@ img_from_xpm(klass, f) /* need cast, and the argument is char* type */ - iptr = (gdImagePtr)gdImageCreateFromXpm(fptr->path); + iptr = (gdImagePtr)gdImageCreateFromXpm(RB_IO_PATH(fptr)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid XPM File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid XPM File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); @@@@ -335,10 +338,10 @@@@ img_from_xpmfname(klass, fname) { VALUE f; - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; Check_Type(fname, T_STRING); - f = rb_file_open(STR2CSTR(fname), "r"); + f = rb_file_open(StringValuePtr(fname), "r"); rb_io_binmode(f); GetOpenFile(f, fptr); @@@@ -346,7 +349,7 @@@@ img_from_xpmfname(klass, fname) /* need cast, and the argument is char* type */ - iptr = (gdImagePtr)gdImageCreateFromXpm(fptr->path); + iptr = (gdImagePtr)gdImageCreateFromXpm(RB_IO_PATH(fptr)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid XPM File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid XPM File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); @@@@ -360,5 +363,5 @@@@ img_from_jpeg(klass, f) VALUE klass, f; { - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; @@@@ -368,7 +371,7 @@@@ img_from_jpeg(klass, f) rb_io_check_readable(fptr); - iptr = gdImageCreateFromJpeg(fptr->f); + iptr = gdImageCreateFromJpeg(rb_io_stdio_file(fptr)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid Jpeg File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid Jpeg File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); @@@@ -380,17 +383,17 @@@@ img_from_jpegfname(klass, fname) { VALUE f; - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr iptr; Check_Type(fname, T_STRING); - f = rb_file_open(STR2CSTR(fname), "r"); + f = rb_file_open(StringValuePtr(fname), "r"); rb_io_binmode(f); GetOpenFile(f, fptr); rb_io_check_readable(fptr); - iptr = gdImageCreateFromJpeg(fptr->f); + iptr = gdImageCreateFromJpeg(rb_io_stdio_file(fptr)); if (!iptr) - rb_raise(rb_eArgError, "%s is not a valid Jpeg File", fptr->path); + rb_raise(rb_eArgError, "%s is not a valid Jpeg File", RB_IO_PATH(fptr)); return Data_Wrap_Struct(klass,0,free_img,iptr); @@@@ -419,10 +422,10 @@@@ hex2triplet(hex) Check_Type(hex, T_STRING); - if (RSTRING(hex)->len != 7) - rb_raise(rb_eArgError, "Invalid format: %s", RSTRING(hex)->ptr); + if (RSTRING_LEN(hex) != 7) + rb_raise(rb_eArgError, "Invalid format: %s", RSTRING_PTR(hex)); - rstr = rb_str_new(RSTRING(hex)->ptr + 1, 2); - gstr = rb_str_new(RSTRING(hex)->ptr + 3, 2); - bstr = rb_str_new(RSTRING(hex)->ptr + 5, 2); + rstr = rb_str_new(RSTRING_PTR(hex) + 1, 2); + gstr = rb_str_new(RSTRING_PTR(hex) + 3, 2); + bstr = rb_str_new(RSTRING_PTR(hex) + 5, 2); ret_ary = rb_ary_new(); @@@@ -460,7 +463,7 @@@@ img_color_allocate_str(img, rgbstr) ary = hex2triplet(rgbstr); c = gdImageColorAllocate(im, - NUM2INT(*(RARRAY(ary)->ptr)), - NUM2INT(*(RARRAY(ary)->ptr+1)), - NUM2INT(*(RARRAY(ary)->ptr+2))); + NUM2INT(*(RARRAY_PTR(ary))), + NUM2INT(*(RARRAY_PTR(ary)+1)), + NUM2INT(*(RARRAY_PTR(ary)+2))); return INT2FIX(c); } @@@@ -533,7 +536,7 @@@@ img_color_resolve_str(img, rgbstr) ary = hex2triplet(rgbstr); c = gdImageColorResolve(im, - NUM2INT(*(RARRAY(ary)->ptr)), - NUM2INT(*(RARRAY(ary)->ptr+1)), - NUM2INT(*(RARRAY(ary)->ptr+2))); + NUM2INT(*(RARRAY_PTR(ary))), + NUM2INT(*(RARRAY_PTR(ary)+1)), + NUM2INT(*(RARRAY_PTR(ary)+2))); return INT2FIX(c); @@@@ -596,7 +599,7 @@@@ img_color_closest_str(img, rgbstr) ary = hex2triplet(rgbstr); c = gdImageColorClosest(im, - NUM2INT(*(RARRAY(ary)->ptr)), - NUM2INT(*(RARRAY(ary)->ptr+1)), - NUM2INT(*(RARRAY(ary)->ptr+2))); + NUM2INT(*(RARRAY_PTR(ary))), + NUM2INT(*(RARRAY_PTR(ary)+1)), + NUM2INT(*(RARRAY_PTR(ary)+2))); return INT2FIX(c); } @@@@ -658,7 +661,7 @@@@ img_color_closestHWB_str(img, rgbstr) ary = hex2triplet(rgbstr); c = gdImageColorClosestHWB(im, - NUM2INT(*(RARRAY(ary)->ptr)), - NUM2INT(*(RARRAY(ary)->ptr+1)), - NUM2INT(*(RARRAY(ary)->ptr+2))); + NUM2INT(*(RARRAY_PTR(ary))), + NUM2INT(*(RARRAY_PTR(ary)+1)), + NUM2INT(*(RARRAY_PTR(ary)+2))); return INT2FIX(c); } @@@@ -718,7 +721,7 @@@@ img_color_exact_str(img, rgbstr) ary = hex2triplet(rgbstr); c = gdImageColorExact(im, - NUM2INT(*(RARRAY(ary)->ptr)), - NUM2INT(*(RARRAY(ary)->ptr+1)), - NUM2INT(*(RARRAY(ary)->ptr+2))); + NUM2INT(*(RARRAY_PTR(ary))), + NUM2INT(*(RARRAY_PTR(ary)+1)), + NUM2INT(*(RARRAY_PTR(ary)+2))); return INT2FIX(c); } @@@@ -990,5 +993,5 @@@@ static VALUE img_polygon(img, ply, c) VALUE img; - struct RArray *ply; + VALUE ply; VALUE c; { @@@@ -1000,9 +1003,9 @@@@ img_polygon(img, ply, c) poly_req(ply); - len = ply->len/2; + len = RARRAY_LEN(ply)/2; pnt = ALLOCA_N(gdPoint, len); for (i=0; iptr[i*2]); - pnt[i].y = NUM2INT(ply->ptr[i*2+1]); + pnt[i].x = NUM2INT(RARRAY_PTR(ply)[i*2]); + pnt[i].y = NUM2INT(RARRAY_PTR(ply)[i*2+1]); } @@@@ -1015,5 +1018,5 @@@@ static VALUE img_filled_polygon(img, ply, c) VALUE img; - struct RArray *ply; + VALUE ply; VALUE c; { @@@@ -1025,9 +1028,9 @@@@ img_filled_polygon(img, ply, c) poly_req(ply); - len = ply->len/2; + len = RARRAY_LEN(ply)/2; pnt = ALLOCA_N(gdPoint, len); for (i=0; iptr[i*2]); - pnt[i].y = NUM2INT(ply->ptr[i*2+1]); + pnt[i].x = NUM2INT(RARRAY_PTR(ply)[i*2]); + pnt[i].y = NUM2INT(RARRAY_PTR(ply)[i*2+1]); } @@@@ -1200,5 +1203,5 @@@@ img_string(img, fnt, x, y, str, c) Data_Get_Struct(fnt, gdFont, f); - gdImageString(im,f,NUM2INT(x),NUM2INT(y),RSTRING(str)->ptr,NUM2INT(c)); + gdImageString(im,f,NUM2INT(x),NUM2INT(y),RSTRING_PTR(str),NUM2INT(c)); return img; @@@@ -1217,5 +1220,5 @@@@ img_string_up(img, fnt, x, y, str, c) Data_Get_Struct(fnt, gdFont, f); - gdImageStringUp(im,f,NUM2INT(x),NUM2INT(y),RSTRING(str)->ptr,NUM2INT(c)); + gdImageStringUp(im,f,NUM2INT(x),NUM2INT(y),RSTRING_PTR(str),NUM2INT(c)); return img; @@@@ -1238,10 +1241,10 @@@@ img_s_string_ttf(klass, fgcolor, fontnam &brect[0], NUM2INT(fgcolor), - RSTRING(fontname)->ptr, + RSTRING_PTR(fontname), NUM2DBL(ptsize), NUM2DBL(angle), NUM2INT(x), NUM2INT(y), - RSTRING(string)->ptr); + RSTRING_PTR(string)); for (i=0; i<8; i++) { rb_ary_push(ary, INT2FIX(brect[i])); @@@@ -1270,10 +1273,10 @@@@ img_string_ttf(img, fgcolor, fontname, p &brect[0], NUM2INT(fgcolor), - RSTRING(fontname)->ptr, + RSTRING_PTR(fontname), NUM2DBL(ptsize), NUM2DBL(angle), NUM2INT(x), NUM2INT(y), - RSTRING(string)->ptr); + RSTRING_PTR(string)); for (i=0; i<8; i++) { rb_ary_push(ary, INT2FIX(brect[i])); @@@@ -1302,10 +1305,10 @@@@ img_s_string_ft(klass, fgcolor, fontname &brect[0], NUM2INT(fgcolor), - RSTRING(fontname)->ptr, + RSTRING_PTR(fontname), NUM2DBL(ptsize), NUM2DBL(angle), NUM2INT(x), NUM2INT(y), - RSTRING(string)->ptr); + RSTRING_PTR(string)); for (i=0; i<8; i++) { rb_ary_push(ary, INT2FIX(brect[i])); @@@@ -1334,10 +1337,10 @@@@ img_string_ft(img, fgcolor, fontname, pt &brect[0], NUM2INT(fgcolor), - RSTRING(fontname)->ptr, + RSTRING_PTR(fontname), NUM2DBL(ptsize), NUM2DBL(angle), NUM2INT(x), NUM2INT(y), - RSTRING(string)->ptr); + RSTRING_PTR(string)); for (i=0; i<8; i++) { rb_ary_push(ary, INT2FIX(brect[i])); @@@@ -1364,8 +1367,8 @@@@ img_char(img, fnt, x, y, ch, c) if (TYPE(ch) == T_STRING) { - if (RSTRING(ch)->len != 1) { - rb_raise(rb_eArgError, "string must be 1 byte(%d bytes)", RSTRING(ch)->len); + if (RSTRING_LEN(ch) != 1) { + rb_raise(rb_eArgError, "string must be 1 byte(%d bytes)", RSTRING_LEN(ch)); } - ci = RSTRING(ch)->ptr[0]; + ci = RSTRING_PTR(ch)[0]; } else { @@@@ -1390,8 +1393,8 @@@@ img_char_up(img, fnt, x, y, ch, c) if (TYPE(ch) == T_STRING) { - if (RSTRING(ch)->len != 1) { - rb_raise(rb_eArgError, "string must be 1 byte(%d bytes)", RSTRING(ch)->len); + if (RSTRING_LEN(ch) != 1) { + rb_raise(rb_eArgError, "string must be 1 byte(%d bytes)", RSTRING_LEN(ch)); } - ci = RSTRING(ch)->ptr[0]; + ci = RSTRING_PTR(ch)[0]; } else { @@@@ -1418,4 +1421,6 @@@@ img_get_interlace(img) static VALUE img_set_interlace(img, val) + VALUE img; + VALUE val; { gdImagePtr im; @@@@ -1499,5 +1504,5 @@@@ img_png(img, out) { gdImagePtr im; - OpenFile *fptr; + rb_io_t *fptr; FILE *f; @@@@ -1507,5 +1512,5 @@@@ img_png(img, out) GetOpenFile(out, fptr); rb_io_check_writable(fptr); - f = (fptr->f2) ? fptr->f2 : fptr->f; + f = RB_IO_FILE(fptr); gdImagePng(im, f); @@@@ -1543,5 +1548,5 @@@@ img_gif(img, out) { gdImagePtr im; - OpenFile *fptr; + rb_io_t *fptr; FILE *f; @@@@ -1551,5 +1556,5 @@@@ img_gif(img, out) GetOpenFile(out, fptr); rb_io_check_writable(fptr); - f = (fptr->f2) ? fptr->f2 : fptr->f; + f = RB_IO_FILE(fptr); gdImageGif(im, f); @@@@ -1582,5 +1587,5 @@@@ img_gd(img, out) { gdImagePtr im; - OpenFile *fptr; + rb_io_t *fptr; FILE *f; @@@@ -1590,5 +1595,5 @@@@ img_gd(img, out) GetOpenFile(out, fptr); rb_io_check_writable(fptr); - f = (fptr->f2) ? fptr->f2 : fptr->f; + f = RB_IO_FILE(fptr); gdImageGd(im, f); @@@@ -1601,5 +1606,5 @@@@ img_gd2(img, out, cs, fmt) VALUE img, out, cs, fmt; { - OpenFile *fptr; + rb_io_t *fptr; gdImagePtr im; FILE *f; @@@@ -1609,5 +1614,5 @@@@ img_gd2(img, out, cs, fmt) GetOpenFile(out, fptr); rb_io_check_writable(fptr); - f = (fptr->f2) ? fptr->f2 : fptr->f; + f = RB_IO_FILE(fptr); Data_Get_Struct(img, gdImage, im); @@@@ -1624,5 +1629,5 @@@@ img_jpeg(img, out, quality) { gdImagePtr im; - OpenFile *fptr; + rb_io_t *fptr; FILE *f; @@@@ -1634,5 +1639,5 @@@@ img_jpeg(img, out, quality) GetOpenFile(out, fptr); rb_io_check_writable(fptr); - f = (fptr->f2) ? fptr->f2 : fptr->f; + f = RB_IO_FILE(fptr); gdImageJpeg(im, f, FIX2INT(quality)); @@@@ -1669,5 +1674,5 @@@@ img_wbmp(img, fg, out) { gdImagePtr im; - OpenFile *fptr; + rb_io_t *fptr; FILE *f; @@@@ -1679,5 +1684,5 @@@@ img_wbmp(img, fg, out) GetOpenFile(out, fptr); rb_io_check_writable(fptr); - f = (fptr->f2) ? fptr->f2 : fptr->f; + f = RB_IO_FILE(fptr); gdImageWBMP(im, FIX2INT(fg), f); @@@@ -1698,5 +1703,5 @@@@ ply_new(klass) VALUE self = rb_ary_new(); - RBASIC(self)->klass = klass; + rb_obj_reveal(self, klass); return self; } @@@@ -1725,7 +1730,7 @@@@ ply_to_pt(ply, dx, dy) NUM2INT(dy); - if (RARRAY(ply)->len > 0) { - x = rb_ary_entry(ply, RARRAY(ply)->len - 2); - y = rb_ary_entry(ply, RARRAY(ply)->len - 1); + if (RARRAY_LEN(ply) > 0) { + x = rb_ary_entry(ply, RARRAY_LEN(ply) - 2); + y = rb_ary_entry(ply, RARRAY_LEN(ply) - 1); rb_ary_push(ply, INT2NUM(NUM2INT(x) + NUM2INT(dx))); rb_ary_push(ply, INT2NUM(NUM2INT(y) + NUM2INT(dy))); @@@@ -1742,5 +1747,5 @@@@ ply_get_pt(ply, idx) int i = NUM2INT(idx); - if (RARRAY(ply)->len < idx) return Qnil; + if (RARRAY_LEN(ply) < idx) return Qnil; i *= 2; @@@@ -1780,16 +1785,16 @@@@ ply_length(ply) VALUE ply; { - return INT2FIX(RARRAY(ply)->len / 2); + return INT2FIX(RARRAY_LEN(ply) / 2); } static VALUE ply_vertices(ply) - struct RArray *ply; + VALUE ply; { int i; - VALUE ary = rb_ary_new2(ply->len/2); + VALUE ary = rb_ary_new2(RARRAY_LEN(ply)/2); - for (i = 0; ilen; i+=2) { - rb_ary_push(ary, rb_assoc_new(ply->ptr[i], ply->ptr[i+1])); + for (i = 0; i< RARRAY_LEN(ply); i+=2) { + rb_ary_push(ary, rb_assoc_new(RARRAY_PTR(ply)[i], RARRAY_PTR(ply)[i+1])); } return ary; @@@@ -1798,21 +1803,21 @@@@ ply_vertices(ply) static VALUE ply_bounds(ply) - struct RArray *ply; + VALUE ply; { int i, l, t, r, b; int nx, ny; - if (ply->len == 0) { + if (RARRAY_LEN(ply) == 0) { l = t = r = b = 0; } else { - l = r = NUM2INT(ply->ptr[0]); - t = b = NUM2INT(ply->ptr[1]); + l = r = NUM2INT(RARRAY_PTR(ply)[0]); + t = b = NUM2INT(RARRAY_PTR(ply)[1]); } - for (i = 2; ilen; i+=2) { - nx = NUM2INT(ply->ptr[i]); + for (i = 2; i< RARRAY_LEN(ply); i+=2) { + nx = NUM2INT(RARRAY_PTR(ply)[i]); if (nx < l) l = nx; if (nx > r) r = nx; - ny = NUM2INT(ply->ptr[i+1]); + ny = NUM2INT(RARRAY_PTR(ply)[i+1]); if (ny < t) t = ny; if (ny > b) b = ny; @@@@ -1823,5 +1828,5 @@@@ ply_bounds(ply) static VALUE ply_offset(ply, vx, vy) - struct RArray *ply; + VALUE ply; VALUE vx, vy; { @@@@ -1831,9 +1836,9 @@@@ ply_offset(ply, vx, vy) y = NUM2INT(vy); - for (i = 0; ilen; i+=2) { - c = NUM2INT(ply->ptr[i]) + x; - ply->ptr[i] = INT2FIX(c); - c = NUM2INT(ply->ptr[i+1]) + y; - ply->ptr[i+1] = INT2FIX(c); + for (i = 0; i< RARRAY_LEN(ply); i+=2) { + c = NUM2INT(RARRAY_PTR(ply)[i]) + x; + RARRAY_PTR(ply)[i] = INT2FIX(c); + c = NUM2INT(RARRAY_PTR(ply)[i+1]) + y; + RARRAY_PTR(ply)[i+1] = INT2FIX(c); } @@@@ -1845,5 +1850,5 @@@@ ply_map(argc, argv, ply) int argc; VALUE *argv; - struct RArray *ply; + VALUE ply; { VALUE sl, st, sr, sb, dl, dt, dr, db; @@@@ -1858,16 +1863,16 @@@@ ply_map(argc, argv, ply) int nx, ny; - if (ply->len == 0) { + if (RARRAY_LEN(ply) == 0) { l = t = r = b = 0; } else { - l = r = NUM2INT(ply->ptr[0]); - t = b = NUM2INT(ply->ptr[1]); + l = r = NUM2INT(RARRAY_PTR(ply)[0]); + t = b = NUM2INT(RARRAY_PTR(ply)[1]); } - for (i = 2; ilen; i+=2) { - nx = NUM2INT(ply->ptr[i]); + for (i = 2; i r) r = nx; - ny = NUM2INT(ply->ptr[i+1]); + ny = NUM2INT(RARRAY_PTR(ply)[i+1]); if (ny < t) t = ny; if (ny > b) b = ny; @@@@ -1894,12 +1899,12 @@@@ ply_map(argc, argv, ply) } - for (i = 0; ilen; i+=2) { - c = NUM2INT(ply->ptr[i]); + for (i = 0; iptr[i] = INT2FIX(c); + RARRAY_PTR(ply)[i] = INT2FIX(c); - c = NUM2INT(ply->ptr[i+1]); + c = NUM2INT(RARRAY_PTR(ply)[i+1]); c = (c-sy)*ymag+dy; - ply->ptr[i+1] = INT2FIX(c); + RARRAY_PTR(ply)[i+1] = INT2FIX(c); } @@@@ -1914,9 +1919,9 @@@@ ply_transform(ply, a, b, c, d, tx, ty) VALUE x, y; - for (i = 0; i < RARRAY(ply)->len / 2; i++) { + for (i = 0; i < RARRAY_LEN(ply) / 2; i++) { /* x = rb_ary_entry(ply, i * 2); y = rb_ary_entry(ply, i * 2 + 1);*/ - x = RARRAY(ply)->ptr[i * 2]; - y = RARRAY(ply)->ptr[i * 2 + 1]; + x = RARRAY_PTR(ply)[i * 2]; + y = RARRAY_PTR(ply)[i * 2 + 1]; ply_set_pt(ply, INT2NUM(i), INT2NUM(NUM2DBL(a) * NUM2INT(x) + NUM2DBL(c) * NUM2INT(y) + NUM2INT(tx)), @@@@ -1965,8 +1970,8 @@@@ static VALUE fnt_s_new(obj, name) VALUE obj; - struct RString *name; + VALUE name; { Check_Type(name, T_STRING); - return fnt_new(name->ptr); + return fnt_new(RSTRING_PTR(name)); } @@@@ -2060,7 +2065,7 @@@@ img_color_allocate_alpha_str(img, rgbstr ary = hex2triplet(rgbstr); c = gdImageColorAllocateAlpha(im, - NUM2INT(*(RARRAY(ary)->ptr)), - NUM2INT(*(RARRAY(ary)->ptr+1)), - NUM2INT(*(RARRAY(ary)->ptr+2)), + NUM2INT(*(RARRAY_PTR(ary))), + NUM2INT(*(RARRAY_PTR(ary)+1)), + NUM2INT(*(RARRAY_PTR(ary)+2)), NUM2INT(a)); return INT2NUM(c); @@@@ -2122,7 +2127,7 @@@@ img_color_resolve_alpha_str(img, rgbstr, ary = hex2triplet(rgbstr); c = gdImageColorResolveAlpha(im, - NUM2INT(*(RARRAY(ary)->ptr)), - NUM2INT(*(RARRAY(ary)->ptr+1)), - NUM2INT(*(RARRAY(ary)->ptr+2)), + NUM2INT(*(RARRAY_PTR(ary))), + NUM2INT(*(RARRAY_PTR(ary)+1)), + NUM2INT(*(RARRAY_PTR(ary)+2)), NUM2INT(a)); return INT2NUM(c); @@@@ -2183,7 +2188,7 @@@@ img_color_closest_alpha_str(img, rgbstr, ary = hex2triplet(rgbstr); c = gdImageColorClosestAlpha(im, - NUM2INT(*(RARRAY(ary)->ptr)), - NUM2INT(*(RARRAY(ary)->ptr+1)), - NUM2INT(*(RARRAY(ary)->ptr+2)), + NUM2INT(*(RARRAY_PTR(ary))), + NUM2INT(*(RARRAY_PTR(ary)+1)), + NUM2INT(*(RARRAY_PTR(ary)+2)), NUM2INT(a)); return INT2NUM(c); @@@@ -2245,7 +2250,7 @@@@ img_color_exact_alpha_str(img, rgbstr, a ary = hex2triplet(rgbstr); c = gdImageColorExactAlpha(im, - NUM2INT(*(RARRAY(ary)->ptr)), - NUM2INT(*(RARRAY(ary)->ptr+1)), - NUM2INT(*(RARRAY(ary)->ptr+2)), + NUM2INT(*(RARRAY_PTR(ary))), + NUM2INT(*(RARRAY_PTR(ary)+1)), + NUM2INT(*(RARRAY_PTR(ary)+2)), NUM2INT(a)); return INT2NUM(c); @@@@ -2311,7 +2316,7 @@@@ img_s_truecolor_str(rgbstr) VALUE ary; ary = hex2triplet(rgbstr); - c = gdTrueColor(NUM2INT(*(RARRAY(ary)->ptr)), - NUM2INT(*(RARRAY(ary)->ptr+1)), - NUM2INT(*(RARRAY(ary)->ptr+2))); + c = gdTrueColor(NUM2INT(*(RARRAY_PTR(ary))), + NUM2INT(*(RARRAY_PTR(ary)+1)), + NUM2INT(*(RARRAY_PTR(ary)+2))); return INT2NUM(c); @@@@ -2365,7 +2370,7 @@@@ img_s_truecolor_alpha_str(rgbstr, a) VALUE ary; ary = hex2triplet(rgbstr); - c = gdTrueColorAlpha(NUM2INT(*(RARRAY(ary)->ptr)), - NUM2INT(*(RARRAY(ary)->ptr+1)), - NUM2INT(*(RARRAY(ary)->ptr+2)), + c = gdTrueColorAlpha(NUM2INT(*(RARRAY_PTR(ary))), + NUM2INT(*(RARRAY_PTR(ary)+1)), + NUM2INT(*(RARRAY_PTR(ary)+2)), NUM2INT(a)); return INT2NUM(c); @ 1.2 log @* Add GEM_EXTSDIR support. * Fix build with Ruby 2.1.1. @ text @d1 1 a1 1 $NetBSD: patch-aa,v 1.1 2010/09/10 06:46:43 taca Exp $ d3 1 a3 1 Support both Ruby 1.8 and Ruby 1.9. d5 1 a5 1 --- GD.c.orig 2014-03-11 11:19:58.000000000 +0000 d7 1 a7 1 @@@@ -11,7 +11,23 @@@@ d10 2 a11 2 +#ifdef HAVE_RUBY_IO_H /* Ruby 1.9 and later */ + a16 5 + +#else /* Ruby 1.8.x */ + #include "rubyio.h" #include "version.h" a17 6 +#define rb_io_stdio_file(iot) ((iot)->f) +#define RB_IO_PATH(iot) ((iot)->path) +#define RB_IO_FILE(iot) (((iot)->f2)? (iot)->f2: (iot)->f) + +#endif + d19 1 a19 2 #include "gdfontg.h" /* giant */ @@@@ -63,17 +79,17 @@@@ img_from_pngfname(klass, fname) d41 1 a41 1 @@@@ -85,5 +101,5 @@@@ img_from_png(klass, f) d48 1 a48 1 @@@@ -93,7 +109,7 @@@@ img_from_png(klass, f) d58 1 a58 1 @@@@ -106,17 +122,17 @@@@ img_from_giffname(klass, fname) d80 1 a80 1 @@@@ -127,5 +143,5 @@@@ img_from_gif(klass, f) d87 1 a87 1 @@@@ -135,7 +151,7 @@@@ img_from_gif(klass, f) d97 1 a97 1 @@@@ -148,17 +164,17 @@@@ img_from_gdfname(klass, fname) d119 1 a119 1 @@@@ -169,5 +185,5 @@@@ img_from_gd(klass, f) d126 1 a126 1 @@@@ -177,7 +193,7 @@@@ img_from_gd(klass, f) d136 1 a136 1 @@@@ -188,17 +204,17 @@@@ img_from_gd2fname(klass, fname) d158 1 a158 1 @@@@ -209,5 +225,5 @@@@ img_from_gd2(klass, f) d165 1 a165 1 @@@@ -217,7 +233,7 @@@@ img_from_gd2(klass, f) d175 1 a175 1 @@@@ -229,18 +245,18 @@@@ img_from_gd2_partfname(klass, fname, src d198 1 a198 1 @@@@ -251,5 +267,5 @@@@ img_from_gd2_part(klass, f, srcx, srcy, d205 1 a205 1 @@@@ -259,8 +275,8 @@@@ img_from_gd2_part(klass, f, srcx, srcy, d216 1 a216 1 @@@@ -272,5 +288,5 @@@@ img_from_xbm(klass, f) d223 1 a223 1 @@@@ -280,7 +296,7 @@@@ img_from_xbm(klass, f) d233 1 a233 1 @@@@ -292,17 +308,17 @@@@ img_from_xbmfname(klass, fname) d255 1 a255 1 @@@@ -314,5 +330,5 @@@@ img_from_xpm(klass, f) d262 1 a262 1 @@@@ -323,7 +339,7 @@@@ img_from_xpm(klass, f) d272 1 a272 1 @@@@ -335,10 +351,10 @@@@ img_from_xpmfname(klass, fname) d285 1 a285 1 @@@@ -346,7 +362,7 @@@@ img_from_xpmfname(klass, fname) d295 1 a295 1 @@@@ -360,5 +376,5 @@@@ img_from_jpeg(klass, f) d302 1 a302 1 @@@@ -368,7 +384,7 @@@@ img_from_jpeg(klass, f) d312 1 a312 1 @@@@ -380,17 +396,17 @@@@ img_from_jpegfname(klass, fname) d334 1 a334 1 @@@@ -419,10 +435,10 @@@@ hex2triplet(hex) d350 1 a350 1 @@@@ -460,7 +476,7 @@@@ img_color_allocate_str(img, rgbstr) d361 1 a361 1 @@@@ -533,7 +549,7 @@@@ img_color_resolve_str(img, rgbstr) d372 1 a372 1 @@@@ -596,7 +612,7 @@@@ img_color_closest_str(img, rgbstr) d383 1 a383 1 @@@@ -658,7 +674,7 @@@@ img_color_closestHWB_str(img, rgbstr) d394 1 a394 1 @@@@ -718,7 +734,7 @@@@ img_color_exact_str(img, rgbstr) d405 8 a412 1 @@@@ -1000,9 +1016,9 @@@@ img_polygon(img, ply, c) d425 8 a432 1 @@@@ -1025,9 +1041,9 @@@@ img_filled_polygon(img, ply, c) d445 1 a445 1 @@@@ -1200,5 +1216,5 @@@@ img_string(img, fnt, x, y, str, c) d452 1 a452 1 @@@@ -1217,5 +1233,5 @@@@ img_string_up(img, fnt, x, y, str, c) d459 1 a459 1 @@@@ -1238,10 +1254,10 @@@@ img_s_string_ttf(klass, fgcolor, fontnam d472 1 a472 1 @@@@ -1270,10 +1286,10 @@@@ img_string_ttf(img, fgcolor, fontname, p d485 1 a485 1 @@@@ -1302,10 +1318,10 @@@@ img_s_string_ft(klass, fgcolor, fontname d498 1 a498 1 @@@@ -1334,10 +1350,10 @@@@ img_string_ft(img, fgcolor, fontname, pt d511 1 a511 1 @@@@ -1364,8 +1380,8 @@@@ img_char(img, fnt, x, y, ch, c) d523 1 a523 1 @@@@ -1390,8 +1406,8 @@@@ img_char_up(img, fnt, x, y, ch, c) d535 1 a535 1 @@@@ -1418,4 +1434,6 @@@@ img_get_interlace(img) d542 1 a542 1 @@@@ -1499,5 +1517,5 @@@@ img_png(img, out) d549 1 a549 1 @@@@ -1507,5 +1525,5 @@@@ img_png(img, out) d556 1 a556 1 @@@@ -1543,5 +1561,5 @@@@ img_gif(img, out) d563 1 a563 1 @@@@ -1551,5 +1569,5 @@@@ img_gif(img, out) d570 1 a570 1 @@@@ -1582,5 +1600,5 @@@@ img_gd(img, out) d577 1 a577 1 @@@@ -1590,5 +1608,5 @@@@ img_gd(img, out) d584 1 a584 1 @@@@ -1601,5 +1619,5 @@@@ img_gd2(img, out, cs, fmt) d591 1 a591 1 @@@@ -1609,5 +1627,5 @@@@ img_gd2(img, out, cs, fmt) d598 1 a598 1 @@@@ -1624,5 +1642,5 @@@@ img_jpeg(img, out, quality) d605 1 a605 1 @@@@ -1634,5 +1652,5 @@@@ img_jpeg(img, out, quality) d612 1 a612 1 @@@@ -1669,5 +1687,5 @@@@ img_wbmp(img, fg, out) d619 1 a619 1 @@@@ -1679,5 +1697,5 @@@@ img_wbmp(img, fg, out) d626 1 a626 1 @@@@ -1698,5 +1716,9 @@@@ ply_new(klass) d629 2 a630 5 +#if RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >= 1 + rb_obj_reveal(self, klass); +#else RBASIC(self)->klass = klass; +#endif d633 1 a633 1 @@@@ -1725,7 +1747,7 @@@@ ply_to_pt(ply, dx, dy) d644 1 a644 1 @@@@ -1742,5 +1764,5 @@@@ ply_get_pt(ply, idx) d651 1 a651 1 @@@@ -1780,5 +1802,5 @@@@ ply_length(ply) d658 4 a661 1 @@@@ -1788,8 +1810,8 @@@@ ply_vertices(ply) d673 7 a679 1 @@@@ -1803,16 +1825,16 @@@@ ply_bounds(ply) d702 8 a709 1 @@@@ -1831,9 +1853,9 @@@@ ply_offset(ply, vx, vy) d724 8 a731 1 @@@@ -1858,16 +1880,16 @@@@ ply_map(argc, argv, ply) d754 1 a754 1 @@@@ -1894,12 +1916,12 @@@@ ply_map(argc, argv, ply) d772 1 a772 1 @@@@ -1914,9 +1936,9 @@@@ ply_transform(ply, a, b, c, d, tx, ty) d785 5 a789 1 @@@@ -1968,5 +1990,5 @@@@ fnt_s_new(obj, name) d796 1 a796 1 @@@@ -2060,7 +2082,7 @@@@ img_color_allocate_alpha_str(img, rgbstr d807 1 a807 1 @@@@ -2122,7 +2144,7 @@@@ img_color_resolve_alpha_str(img, rgbstr, d818 1 a818 1 @@@@ -2183,7 +2205,7 @@@@ img_color_closest_alpha_str(img, rgbstr, d829 1 a829 1 @@@@ -2245,7 +2267,7 @@@@ img_color_exact_alpha_str(img, rgbstr, a d840 1 a840 1 @@@@ -2311,7 +2333,7 @@@@ img_s_truecolor_str(rgbstr) d851 1 a851 1 @@@@ -2365,7 +2387,7 @@@@ img_s_truecolor_alpha_str(rgbstr, a) @ 1.1 log @* Use lang/ruby/gem.mk instead of misc/rubygems/rubygem.mk. * Add LICENSE. * Remove default value of GEM_BUILD. * Add patch to support both ruby18 and ruby19. No functional change. @ text @d1 1 a1 1 $NetBSD$ d5 1 a5 1 --- GD.c.orig 2010-09-09 08:50:50.000000000 +0000 d624 11 a634 1 @@@@ -1725,7 +1743,7 @@@@ ply_to_pt(ply, dx, dy) d645 1 a645 1 @@@@ -1742,5 +1760,5 @@@@ ply_get_pt(ply, idx) d652 1 a652 1 @@@@ -1780,5 +1798,5 @@@@ ply_length(ply) d659 1 a659 1 @@@@ -1788,8 +1806,8 @@@@ ply_vertices(ply) d671 1 a671 1 @@@@ -1803,16 +1821,16 @@@@ ply_bounds(ply) d694 1 a694 1 @@@@ -1831,9 +1849,9 @@@@ ply_offset(ply, vx, vy) d709 1 a709 1 @@@@ -1858,16 +1876,16 @@@@ ply_map(argc, argv, ply) d732 1 a732 1 @@@@ -1894,12 +1912,12 @@@@ ply_map(argc, argv, ply) d750 1 a750 1 @@@@ -1914,9 +1932,9 @@@@ ply_transform(ply, a, b, c, d, tx, ty) d763 1 a763 1 @@@@ -1968,5 +1986,5 @@@@ fnt_s_new(obj, name) d770 1 a770 1 @@@@ -2060,7 +2078,7 @@@@ img_color_allocate_alpha_str(img, rgbstr d781 1 a781 1 @@@@ -2122,7 +2140,7 @@@@ img_color_resolve_alpha_str(img, rgbstr, d792 1 a792 1 @@@@ -2183,7 +2201,7 @@@@ img_color_closest_alpha_str(img, rgbstr, d803 1 a803 1 @@@@ -2245,7 +2263,7 @@@@ img_color_exact_alpha_str(img, rgbstr, a d814 1 a814 1 @@@@ -2311,7 +2329,7 @@@@ img_s_truecolor_str(rgbstr) d825 1 a825 1 @@@@ -2365,7 +2383,7 @@@@ img_s_truecolor_alpha_str(rgbstr, a) @