rmagick 5.2.0 → 5.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.devcontainer/ImageMagick6/devcontainer.json +1 -1
- data/.devcontainer/devcontainer.json +1 -1
- data/.devcontainer/setup-user.sh +1 -1
- data/.editorconfig +1 -1
- data/.github/workflows/ci.yml +71 -10
- data/.gitignore +3 -0
- data/.yardopts +1 -1
- data/CHANGELOG.md +25 -0
- data/README.md +1 -2
- data/before_install_linux.sh +2 -2
- data/before_install_osx.sh +4 -4
- data/ext/RMagick/extconf.rb +20 -12
- data/ext/RMagick/{rmagick.c → rmagick.cpp} +19 -22
- data/ext/RMagick/rmagick.h +70 -49
- data/ext/RMagick/{rmdraw.c → rmdraw.cpp} +59 -27
- data/ext/RMagick/{rmenum.c → rmenum.cpp} +42 -42
- data/ext/RMagick/{rmfill.c → rmfill.cpp} +6 -6
- data/ext/RMagick/{rmilist.c → rmilist.cpp} +24 -22
- data/ext/RMagick/{rmimage.c → rmimage.cpp} +207 -160
- data/ext/RMagick/{rminfo.c → rminfo.cpp} +11 -11
- data/ext/RMagick/{rmkinfo.c → rmkinfo.cpp} +4 -9
- data/ext/RMagick/rmmain.cpp +1957 -0
- data/ext/RMagick/{rmmontage.c → rmmontage.cpp} +5 -5
- data/ext/RMagick/{rmpixel.c → rmpixel.cpp} +40 -41
- data/ext/RMagick/{rmstruct.c → rmstruct.cpp} +6 -6
- data/ext/RMagick/{rmutil.c → rmutil.cpp} +33 -13
- data/lib/rmagick/version.rb +1 -1
- data/lib/rmagick_internal.rb +1 -1
- data/rmagick.gemspec +1 -0
- metadata +30 -17
- data/.codeclimate.yml +0 -63
- data/ext/RMagick/rmmain.c +0 -1956
@@ -5,8 +5,8 @@
|
|
5
5
|
*
|
6
6
|
* Changes since Nov. 2009 copyright © by Benjamin Thomas and Omer Bar-or
|
7
7
|
*
|
8
|
-
* @file rmmontage.
|
9
|
-
* @version $Id: rmmontage.
|
8
|
+
* @file rmmontage.cpp
|
9
|
+
* @version $Id: rmmontage.cpp,v 1.5 2009/12/20 02:33:33 baror Exp $
|
10
10
|
* @author Tim Hunter
|
11
11
|
******************************************************************************/
|
12
12
|
|
@@ -37,7 +37,7 @@ const rb_data_type_t rm_montage_data_type = {
|
|
37
37
|
static void
|
38
38
|
Montage_destroy(void *obj)
|
39
39
|
{
|
40
|
-
Montage *montage = obj;
|
40
|
+
Montage *montage = (Montage *)obj;
|
41
41
|
|
42
42
|
// If we saved a temporary texture image, delete it now.
|
43
43
|
if (montage->info && montage->info->texture != NULL)
|
@@ -75,7 +75,7 @@ Montage_memsize(const void *ptr)
|
|
75
75
|
* @return [Magick::ImageList::Montage] a new Montage object
|
76
76
|
*/
|
77
77
|
VALUE
|
78
|
-
Montage_alloc(VALUE
|
78
|
+
Montage_alloc(VALUE klass)
|
79
79
|
{
|
80
80
|
MontageInfo *montage_info;
|
81
81
|
Montage *montage;
|
@@ -100,7 +100,7 @@ Montage_alloc(VALUE class)
|
|
100
100
|
montage = ALLOC(Montage);
|
101
101
|
montage->info = montage_info;
|
102
102
|
montage->compose = OverCompositeOp;
|
103
|
-
montage_obj = TypedData_Wrap_Struct(
|
103
|
+
montage_obj = TypedData_Wrap_Struct(klass, &rm_montage_data_type, montage);
|
104
104
|
|
105
105
|
RB_GC_GUARD(montage_obj);
|
106
106
|
|
@@ -5,8 +5,8 @@
|
|
5
5
|
*
|
6
6
|
* Changes since Nov. 2009 copyright © by Benjamin Thomas and Omer Bar-or
|
7
7
|
*
|
8
|
-
* @file rmpixel.
|
9
|
-
* @version $Id: rmpixel.
|
8
|
+
* @file rmpixel.cpp
|
9
|
+
* @version $Id: rmpixel.cpp,v 1.7 2009/12/21 10:34:58 baror Exp $
|
10
10
|
* @author Tim Hunter
|
11
11
|
******************************************************************************/
|
12
12
|
|
@@ -414,7 +414,7 @@ Color_to_PixelColor(PixelColor *pp, VALUE color)
|
|
414
414
|
else
|
415
415
|
{
|
416
416
|
// require 'to_str' here instead of just 'to_s'.
|
417
|
-
color = rb_rescue(rb_str_to_str, color, color_arg_rescue, color);
|
417
|
+
color = rb_rescue(RESCUE_FUNC(rb_str_to_str), color, RESCUE_EXCEPTION_HANDLER_FUNC(color_arg_rescue), color);
|
418
418
|
Color_Name_to_PixelColor(pp, color);
|
419
419
|
}
|
420
420
|
}
|
@@ -492,13 +492,13 @@ Color_Name_to_PixelColor(PixelColor *color, VALUE name_arg)
|
|
492
492
|
* @return [Magick::Pixel] a new Magick::Pixel object
|
493
493
|
*/
|
494
494
|
VALUE
|
495
|
-
Pixel_alloc(VALUE
|
495
|
+
Pixel_alloc(VALUE klass)
|
496
496
|
{
|
497
497
|
Pixel *pixel;
|
498
498
|
|
499
499
|
pixel = ALLOC(Pixel);
|
500
500
|
memset(pixel, '\0', sizeof(Pixel));
|
501
|
-
return TypedData_Wrap_Struct(
|
501
|
+
return TypedData_Wrap_Struct(klass, &rm_pixel_data_type, pixel);
|
502
502
|
}
|
503
503
|
|
504
504
|
|
@@ -514,17 +514,17 @@ Pixel_case_eq(VALUE self, VALUE other)
|
|
514
514
|
{
|
515
515
|
if (CLASS_OF(self) == CLASS_OF(other))
|
516
516
|
{
|
517
|
-
Pixel *
|
517
|
+
Pixel *self_pixel, *other_pixel;
|
518
518
|
|
519
|
-
TypedData_Get_Struct(self, Pixel, &rm_pixel_data_type,
|
520
|
-
TypedData_Get_Struct(other, Pixel, &rm_pixel_data_type,
|
521
|
-
return (
|
522
|
-
&&
|
523
|
-
&&
|
519
|
+
TypedData_Get_Struct(self, Pixel, &rm_pixel_data_type, self_pixel);
|
520
|
+
TypedData_Get_Struct(other, Pixel, &rm_pixel_data_type, other_pixel);
|
521
|
+
return (self_pixel->red == other_pixel->red
|
522
|
+
&& self_pixel->blue == other_pixel->blue
|
523
|
+
&& self_pixel->green == other_pixel->green
|
524
524
|
#if defined(IMAGEMAGICK_7)
|
525
|
-
&&
|
525
|
+
&& self_pixel->alpha == other_pixel->alpha) ? Qtrue : Qfalse;
|
526
526
|
#else
|
527
|
-
&&
|
527
|
+
&& self_pixel->opacity == other_pixel->opacity) ? Qtrue : Qfalse;
|
528
528
|
#endif
|
529
529
|
}
|
530
530
|
|
@@ -606,7 +606,7 @@ Pixel_fcmp(int argc, VALUE *argv, VALUE self)
|
|
606
606
|
double fuzz = 0.0;
|
607
607
|
unsigned int equal;
|
608
608
|
ColorspaceType colorspace = RGBColorspace;
|
609
|
-
PixelColor
|
609
|
+
PixelColor self_pixel_color, other_pixel_color;
|
610
610
|
#if defined(IMAGEMAGICK_6)
|
611
611
|
Image *image;
|
612
612
|
Info *info;
|
@@ -626,15 +626,15 @@ Pixel_fcmp(int argc, VALUE *argv, VALUE self)
|
|
626
626
|
break;
|
627
627
|
}
|
628
628
|
|
629
|
-
Color_to_PixelColor(&
|
630
|
-
Color_to_PixelColor(&
|
629
|
+
Color_to_PixelColor(&self_pixel_color, self);
|
630
|
+
Color_to_PixelColor(&other_pixel_color, argv[0]);
|
631
631
|
|
632
632
|
#if defined(IMAGEMAGICK_7)
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
equal = IsFuzzyEquivalencePixelInfo(&
|
633
|
+
self_pixel_color.fuzz = fuzz;
|
634
|
+
self_pixel_color.colorspace = colorspace;
|
635
|
+
other_pixel_color.fuzz = fuzz;
|
636
|
+
other_pixel_color.colorspace = colorspace;
|
637
|
+
equal = IsFuzzyEquivalencePixelInfo(&self_pixel_color, &other_pixel_color);
|
638
638
|
#else
|
639
639
|
// The IsColorSimilar function expects to get the
|
640
640
|
// colorspace and fuzz parameters from an Image structure.
|
@@ -658,7 +658,7 @@ Pixel_fcmp(int argc, VALUE *argv, VALUE self)
|
|
658
658
|
image->colorspace = colorspace;
|
659
659
|
image->fuzz = fuzz;
|
660
660
|
|
661
|
-
equal = IsColorSimilar(image, &
|
661
|
+
equal = IsColorSimilar(image, &self_pixel_color, &other_pixel_color);
|
662
662
|
DestroyImage(image);
|
663
663
|
#endif
|
664
664
|
|
@@ -679,7 +679,7 @@ Pixel_fcmp(int argc, VALUE *argv, VALUE self)
|
|
679
679
|
* @see Magick::Pixel#to_color
|
680
680
|
*/
|
681
681
|
VALUE
|
682
|
-
Pixel_from_color(VALUE
|
682
|
+
Pixel_from_color(VALUE klass ATTRIBUTE_UNUSED, VALUE name)
|
683
683
|
{
|
684
684
|
PixelColor pp;
|
685
685
|
ExceptionInfo *exception;
|
@@ -715,7 +715,7 @@ Pixel_from_color(VALUE class ATTRIBUTE_UNUSED, VALUE name)
|
|
715
715
|
* @return [Magick::Pixel] a new Magick::Pixel object
|
716
716
|
*/
|
717
717
|
VALUE
|
718
|
-
Pixel_from_hsla(int argc, VALUE *argv, VALUE
|
718
|
+
Pixel_from_hsla(int argc, VALUE *argv, VALUE klass ATTRIBUTE_UNUSED)
|
719
719
|
{
|
720
720
|
double h, s, l, a = 1.0;
|
721
721
|
MagickPixel pp;
|
@@ -1067,32 +1067,32 @@ Pixel_marshal_load(VALUE self, VALUE dpixel)
|
|
1067
1067
|
VALUE
|
1068
1068
|
Pixel_spaceship(VALUE self, VALUE other)
|
1069
1069
|
{
|
1070
|
-
Pixel *
|
1070
|
+
Pixel *self_pixel, *other_pixel;
|
1071
1071
|
|
1072
|
-
TypedData_Get_Struct(self, Pixel, &rm_pixel_data_type,
|
1073
|
-
TypedData_Get_Struct(other, Pixel, &rm_pixel_data_type,
|
1072
|
+
TypedData_Get_Struct(self, Pixel, &rm_pixel_data_type, self_pixel);
|
1073
|
+
TypedData_Get_Struct(other, Pixel, &rm_pixel_data_type, other_pixel);
|
1074
1074
|
|
1075
|
-
if (
|
1075
|
+
if (self_pixel->red != other_pixel->red)
|
1076
1076
|
{
|
1077
|
-
return INT2NUM((
|
1077
|
+
return INT2NUM((self_pixel->red - other_pixel->red)/abs((int)(self_pixel->red - other_pixel->red)));
|
1078
1078
|
}
|
1079
|
-
else if(
|
1079
|
+
else if(self_pixel->green != other_pixel->green)
|
1080
1080
|
{
|
1081
|
-
return INT2NUM((
|
1081
|
+
return INT2NUM((self_pixel->green - other_pixel->green)/abs((int)(self_pixel->green - other_pixel->green)));
|
1082
1082
|
}
|
1083
|
-
else if(
|
1083
|
+
else if(self_pixel->blue != other_pixel->blue)
|
1084
1084
|
{
|
1085
|
-
return INT2NUM((
|
1085
|
+
return INT2NUM((self_pixel->blue - other_pixel->blue)/abs((int)(self_pixel->blue - other_pixel->blue)));
|
1086
1086
|
}
|
1087
1087
|
#if defined(IMAGEMAGICK_7)
|
1088
|
-
else if(
|
1088
|
+
else if(self_pixel->alpha != other_pixel->alpha)
|
1089
1089
|
{
|
1090
|
-
return INT2NUM((
|
1090
|
+
return INT2NUM((self_pixel->alpha - other_pixel->alpha)/abs((int)(self_pixel->alpha - other_pixel->alpha)));
|
1091
1091
|
}
|
1092
1092
|
#else
|
1093
|
-
else if(
|
1093
|
+
else if(self_pixel->opacity != other_pixel->opacity)
|
1094
1094
|
{
|
1095
|
-
return INT2NUM(((QuantumRange -
|
1095
|
+
return INT2NUM(((QuantumRange - self_pixel->opacity) - (QuantumRange - other_pixel->opacity))/abs((int)((QuantumRange - self_pixel->opacity) - (QuantumRange - other_pixel->opacity))));
|
1096
1096
|
}
|
1097
1097
|
#endif
|
1098
1098
|
|
@@ -1207,13 +1207,13 @@ Pixel_to_color(int argc, VALUE *argv, VALUE self)
|
|
1207
1207
|
char name[MaxTextExtent];
|
1208
1208
|
ExceptionInfo *exception;
|
1209
1209
|
ComplianceType compliance = AllCompliance;
|
1210
|
-
|
1210
|
+
MagickBooleanType alpha = MagickFalse;
|
1211
1211
|
unsigned int depth = MAGICKCORE_QUANTUM_DEPTH;
|
1212
1212
|
|
1213
1213
|
switch (argc)
|
1214
1214
|
{
|
1215
1215
|
case 4:
|
1216
|
-
hex = RTEST(argv[3]);
|
1216
|
+
hex = (MagickBooleanType)RTEST(argv[3]);
|
1217
1217
|
case 3:
|
1218
1218
|
depth = NUM2UINT(argv[2]);
|
1219
1219
|
|
@@ -1233,7 +1233,7 @@ Pixel_to_color(int argc, VALUE *argv, VALUE self)
|
|
1233
1233
|
break;
|
1234
1234
|
}
|
1235
1235
|
case 2:
|
1236
|
-
alpha = RTEST(argv[1]);
|
1236
|
+
alpha = (MagickBooleanType)RTEST(argv[1]);
|
1237
1237
|
case 1:
|
1238
1238
|
VALUE_TO_ENUM(argv[0], compliance, ComplianceType);
|
1239
1239
|
case 0:
|
@@ -1318,4 +1318,3 @@ Pixel_to_s(VALUE self)
|
|
1318
1318
|
#endif
|
1319
1319
|
return rb_str_new2(buff);
|
1320
1320
|
}
|
1321
|
-
|
@@ -5,8 +5,8 @@
|
|
5
5
|
*
|
6
6
|
* Changes since Nov. 2009 copyright © by Benjamin Thomas and Omer Bar-or
|
7
7
|
*
|
8
|
-
* @file rmstruct.
|
9
|
-
* @version $Id: rmstruct.
|
8
|
+
* @file rmstruct.cpp
|
9
|
+
* @version $Id: rmstruct.cpp,v 1.5 2009/12/20 02:33:34 baror Exp $
|
10
10
|
* @author Tim Hunter
|
11
11
|
******************************************************************************/
|
12
12
|
|
@@ -456,8 +456,8 @@ Export_TypeInfo(TypeInfo *ti, VALUE st)
|
|
456
456
|
{
|
457
457
|
CloneString((char **)&(ti->family), StringValueCStr(m));
|
458
458
|
}
|
459
|
-
m = rb_ary_entry(members, 3); ti->style = m == Qnil ?
|
460
|
-
m = rb_ary_entry(members, 4); ti->stretch = m == Qnil ?
|
459
|
+
m = rb_ary_entry(members, 3); ti->style = m == Qnil ? UndefinedStyle : (StyleType)FIX2INT(Enum_to_i(m));
|
460
|
+
m = rb_ary_entry(members, 4); ti->stretch = m == Qnil ? UndefinedStretch : (StretchType)FIX2INT(Enum_to_i(m));
|
461
461
|
m = rb_ary_entry(members, 5); ti->weight = m == Qnil ? 0 : FIX2INT(m);
|
462
462
|
|
463
463
|
m = rb_ary_entry(members, 6);
|
@@ -524,7 +524,7 @@ Font_to_s(VALUE self)
|
|
524
524
|
strcpy(weight, "BoldWeight");
|
525
525
|
break;
|
526
526
|
default:
|
527
|
-
snprintf(weight, sizeof(weight), "%"RMIuSIZE"", ti.weight);
|
527
|
+
snprintf(weight, sizeof(weight), "%" RMIuSIZE "", ti.weight);
|
528
528
|
break;
|
529
529
|
}
|
530
530
|
|
@@ -732,7 +732,7 @@ RectangleInfo_to_s(VALUE self)
|
|
732
732
|
char buff[100];
|
733
733
|
|
734
734
|
Export_RectangleInfo(&rect, self);
|
735
|
-
snprintf(buff, sizeof(buff), "width=%"RMIuSIZE", height=%"RMIuSIZE", x=%"RMIdSIZE", y=%"RMIdSIZE"",
|
735
|
+
snprintf(buff, sizeof(buff), "width=%" RMIuSIZE ", height=%" RMIuSIZE ", x=%" RMIdSIZE ", y=%" RMIdSIZE "",
|
736
736
|
rect.width, rect.height, rect.x, rect.y);
|
737
737
|
return rb_str_new2(buff);
|
738
738
|
}
|
@@ -5,8 +5,8 @@
|
|
5
5
|
*
|
6
6
|
* Changes since Nov. 2009 copyright © by Benjamin Thomas and Omer Bar-or
|
7
7
|
*
|
8
|
-
* @file rmutil.
|
9
|
-
* @version $Id: rmutil.
|
8
|
+
* @file rmutil.cpp
|
9
|
+
* @version $Id: rmutil.cpp,v 1.182 2009/12/21 10:34:58 baror Exp $
|
10
10
|
* @author Tim Hunter
|
11
11
|
******************************************************************************/
|
12
12
|
|
@@ -252,7 +252,7 @@ rm_check_ary_type(VALUE ary)
|
|
252
252
|
VALUE checked = rb_check_array_type(ary);
|
253
253
|
if (NIL_P(checked))
|
254
254
|
{
|
255
|
-
rb_raise(rb_eTypeError, "wrong argument type %"RMIsVALUE" was given. (must respond to :to_ary)", rb_obj_class(ary));
|
255
|
+
rb_raise(rb_eTypeError, "wrong argument type %" RMIsVALUE " was given. (must respond to :to_ary)", rb_obj_class(ary));
|
256
256
|
}
|
257
257
|
return checked;
|
258
258
|
}
|
@@ -319,16 +319,16 @@ rm_no_freeze(VALUE obj)
|
|
319
319
|
* No Ruby usage (internal function)
|
320
320
|
*
|
321
321
|
* @param str the Ruby string
|
322
|
-
* @param len pointer to a
|
322
|
+
* @param len pointer to a size_t in which to store the number of characters
|
323
323
|
* @return a C string version of str
|
324
324
|
*/
|
325
325
|
char *
|
326
|
-
rm_str2cstr(VALUE str,
|
326
|
+
rm_str2cstr(VALUE str, size_t *len)
|
327
327
|
{
|
328
328
|
StringValue(str);
|
329
329
|
if (len)
|
330
330
|
{
|
331
|
-
*len = RSTRING_LEN(str);
|
331
|
+
*len = (size_t)RSTRING_LEN(str);
|
332
332
|
}
|
333
333
|
return RSTRING_PTR(str);
|
334
334
|
}
|
@@ -373,7 +373,7 @@ rm_percentage(VALUE arg, double max)
|
|
373
373
|
char *pct_str;
|
374
374
|
long pct_long;
|
375
375
|
|
376
|
-
arg = rb_rescue(rb_str_to_str, arg, rescue_not_str, arg);
|
376
|
+
arg = rb_rescue(RESCUE_FUNC(rb_str_to_str), arg, RESCUE_EXCEPTION_HANDLER_FUNC(rescue_not_str), arg);
|
377
377
|
pct_str = StringValueCStr(arg);
|
378
378
|
errno = 0;
|
379
379
|
pct_long = strtol(pct_str, &end, 10);
|
@@ -454,7 +454,7 @@ rescue_not_dbl(VALUE ignored ATTRIBUTE_UNUSED, VALUE raised_exc ATTRIBUTE_UNUSED
|
|
454
454
|
int
|
455
455
|
rm_check_num2dbl(VALUE obj)
|
456
456
|
{
|
457
|
-
return FIX2INT(rb_rescue(check_num2dbl, obj, rescue_not_dbl, (VALUE)0));
|
457
|
+
return FIX2INT(rb_rescue(RESCUE_FUNC(check_num2dbl), obj, RESCUE_EXCEPTION_HANDLER_FUNC(rescue_not_dbl), (VALUE)0));
|
458
458
|
}
|
459
459
|
|
460
460
|
|
@@ -472,7 +472,7 @@ rm_str_to_pct(VALUE str)
|
|
472
472
|
long pct;
|
473
473
|
char *pct_str, *end;
|
474
474
|
|
475
|
-
str = rb_rescue(rb_str_to_str, str, rescue_not_str, str);
|
475
|
+
str = rb_rescue(RESCUE_FUNC(rb_str_to_str), str, RESCUE_EXCEPTION_HANDLER_FUNC(rescue_not_str), str);
|
476
476
|
pct_str = StringValueCStr(str);
|
477
477
|
errno = 0;
|
478
478
|
pct = strtol(pct_str, &end, 10);
|
@@ -516,7 +516,7 @@ rm_fuzz_to_dbl(VALUE fuzz_arg)
|
|
516
516
|
char *fuzz_str;
|
517
517
|
|
518
518
|
// Convert to string, issue error message if failure.
|
519
|
-
fuzz_arg = rb_rescue(rb_str_to_str, fuzz_arg, rescue_not_str, fuzz_arg);
|
519
|
+
fuzz_arg = rb_rescue(RESCUE_FUNC(rb_str_to_str), fuzz_arg, RESCUE_EXCEPTION_HANDLER_FUNC(rescue_not_str), fuzz_arg);
|
520
520
|
fuzz_str = StringValueCStr(fuzz_arg);
|
521
521
|
errno = 0;
|
522
522
|
fuzz = strtod(fuzz_str, &end);
|
@@ -911,7 +911,7 @@ ImageMagickError_initialize(int argc, VALUE *argv, VALUE self)
|
|
911
911
|
}
|
912
912
|
|
913
913
|
rb_call_super(super_argc, (const VALUE *)super_argv);
|
914
|
-
rb_iv_set(self, "@"MAGICK_LOC, extra);
|
914
|
+
rb_iv_set(self, "@" MAGICK_LOC, extra);
|
915
915
|
|
916
916
|
RB_GC_GUARD(extra);
|
917
917
|
|
@@ -1332,7 +1332,7 @@ rm_exif_by_entry(Image *image)
|
|
1332
1332
|
return Qnil;
|
1333
1333
|
}
|
1334
1334
|
|
1335
|
-
str = xmalloc(len);
|
1335
|
+
str = (char *)xmalloc(len);
|
1336
1336
|
len = 0;
|
1337
1337
|
|
1338
1338
|
// Copy the exif properties and values into the string.
|
@@ -1450,7 +1450,7 @@ rm_exif_by_number(Image *image)
|
|
1450
1450
|
return Qnil;
|
1451
1451
|
}
|
1452
1452
|
|
1453
|
-
str = xmalloc(len);
|
1453
|
+
str = (char *)xmalloc(len);
|
1454
1454
|
len = 0;
|
1455
1455
|
|
1456
1456
|
// Copy the exif properties and values into the string.
|
@@ -1839,3 +1839,23 @@ rm_raise_exception(ExceptionInfo *exception)
|
|
1839
1839
|
|
1840
1840
|
rm_magick_error(msg);
|
1841
1841
|
}
|
1842
|
+
|
1843
|
+
/**
|
1844
|
+
* Get IO path.
|
1845
|
+
*
|
1846
|
+
* No Ruby usage (internal function)
|
1847
|
+
*
|
1848
|
+
* @param io An IO object
|
1849
|
+
* @return string of the path
|
1850
|
+
*/
|
1851
|
+
VALUE
|
1852
|
+
rm_io_path(VALUE io)
|
1853
|
+
{
|
1854
|
+
#ifdef HAVE_RB_IO_PATH
|
1855
|
+
return rb_io_path(io);
|
1856
|
+
#else
|
1857
|
+
rb_io_t *fptr;
|
1858
|
+
GetOpenFile(io, fptr);
|
1859
|
+
return fptr->pathv;
|
1860
|
+
#endif
|
1861
|
+
}
|
data/lib/rmagick/version.rb
CHANGED
data/lib/rmagick_internal.rb
CHANGED
@@ -14,7 +14,7 @@ if RUBY_PLATFORM =~ /mingw/i
|
|
14
14
|
begin
|
15
15
|
require 'ruby_installer'
|
16
16
|
ENV['PATH'].split(File::PATH_SEPARATOR).grep(/ImageMagick/i).each do |path|
|
17
|
-
RubyInstaller::Runtime.add_dll_directory(path)
|
17
|
+
RubyInstaller::Runtime.add_dll_directory(path) if File.exist?(File.join(path, 'CORE_RL_magick_.dll')) || File.exist?(File.join(path, 'CORE_RL_MagickCore_.dll'))
|
18
18
|
end
|
19
19
|
rescue LoadError
|
20
20
|
end
|
data/rmagick.gemspec
CHANGED
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
s.requirements << "ImageMagick #{Magick::MIN_IM_VERSION} or later"
|
26
26
|
|
27
27
|
s.add_runtime_dependency 'pkg-config', '~> 1.4'
|
28
|
+
s.add_runtime_dependency 'observer', '~> 0.1'
|
28
29
|
|
29
30
|
s.add_development_dependency 'pry', '~> 0.14'
|
30
31
|
s.add_development_dependency 'rake-compiler', '~> 1.0'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rmagick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Hunter
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2024-02-04 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: pkg-config
|
@@ -27,6 +27,20 @@ dependencies:
|
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '1.4'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: observer
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - "~>"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0.1'
|
37
|
+
type: :runtime
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - "~>"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0.1'
|
30
44
|
- !ruby/object:Gem::Dependency
|
31
45
|
name: pry
|
32
46
|
requirement: !ruby/object:Gem::Requirement
|
@@ -160,7 +174,6 @@ extensions:
|
|
160
174
|
- ext/RMagick/extconf.rb
|
161
175
|
extra_rdoc_files: []
|
162
176
|
files:
|
163
|
-
- ".codeclimate.yml"
|
164
177
|
- ".devcontainer/Dockerfile"
|
165
178
|
- ".devcontainer/ImageMagick6/devcontainer.json"
|
166
179
|
- ".devcontainer/devcontainer.json"
|
@@ -184,21 +197,21 @@ files:
|
|
184
197
|
- before_install_linux.sh
|
185
198
|
- before_install_osx.sh
|
186
199
|
- ext/RMagick/extconf.rb
|
187
|
-
- ext/RMagick/rmagick.
|
200
|
+
- ext/RMagick/rmagick.cpp
|
188
201
|
- ext/RMagick/rmagick.h
|
189
202
|
- ext/RMagick/rmagick_gvl.h
|
190
|
-
- ext/RMagick/rmdraw.
|
191
|
-
- ext/RMagick/rmenum.
|
192
|
-
- ext/RMagick/rmfill.
|
193
|
-
- ext/RMagick/rmilist.
|
194
|
-
- ext/RMagick/rmimage.
|
195
|
-
- ext/RMagick/rminfo.
|
196
|
-
- ext/RMagick/rmkinfo.
|
197
|
-
- ext/RMagick/rmmain.
|
198
|
-
- ext/RMagick/rmmontage.
|
199
|
-
- ext/RMagick/rmpixel.
|
200
|
-
- ext/RMagick/rmstruct.
|
201
|
-
- ext/RMagick/rmutil.
|
203
|
+
- ext/RMagick/rmdraw.cpp
|
204
|
+
- ext/RMagick/rmenum.cpp
|
205
|
+
- ext/RMagick/rmfill.cpp
|
206
|
+
- ext/RMagick/rmilist.cpp
|
207
|
+
- ext/RMagick/rmimage.cpp
|
208
|
+
- ext/RMagick/rminfo.cpp
|
209
|
+
- ext/RMagick/rmkinfo.cpp
|
210
|
+
- ext/RMagick/rmmain.cpp
|
211
|
+
- ext/RMagick/rmmontage.cpp
|
212
|
+
- ext/RMagick/rmpixel.cpp
|
213
|
+
- ext/RMagick/rmstruct.cpp
|
214
|
+
- ext/RMagick/rmutil.cpp
|
202
215
|
- lib/rmagick.rb
|
203
216
|
- lib/rmagick/version.rb
|
204
217
|
- lib/rmagick_internal.rb
|
@@ -238,7 +251,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
238
251
|
version: '0'
|
239
252
|
requirements:
|
240
253
|
- ImageMagick 6.7.7 or later
|
241
|
-
rubygems_version: 3.4.
|
254
|
+
rubygems_version: 3.4.10
|
242
255
|
signing_key:
|
243
256
|
specification_version: 4
|
244
257
|
summary: Ruby binding to ImageMagick
|
data/.codeclimate.yml
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
engines:
|
2
|
-
cppcheck:
|
3
|
-
enabled: true
|
4
|
-
checks:
|
5
|
-
variableScope:
|
6
|
-
enabled: false
|
7
|
-
toomanyconfigs:
|
8
|
-
enabled: false
|
9
|
-
invalidPrintfArgType_sint:
|
10
|
-
enabled: false
|
11
|
-
redundantAssignment:
|
12
|
-
enabled: false
|
13
|
-
selfAssignment:
|
14
|
-
enabled: false
|
15
|
-
unreachableCode:
|
16
|
-
enabled: false
|
17
|
-
unsignedLessThanZero:
|
18
|
-
enabled: false
|
19
|
-
toomanyconfigs:
|
20
|
-
enabled: false
|
21
|
-
complex-definition:
|
22
|
-
enabled: false
|
23
|
-
|
24
|
-
markdownlint:
|
25
|
-
enabled: true
|
26
|
-
checks:
|
27
|
-
# Line length
|
28
|
-
MD013:
|
29
|
-
enabled: false
|
30
|
-
# Emphasis used instead of a header
|
31
|
-
MD036:
|
32
|
-
enabled: false
|
33
|
-
# Hard tabs
|
34
|
-
MD010:
|
35
|
-
enabled: false
|
36
|
-
# Dollar signs used before commands without showing output
|
37
|
-
MD014:
|
38
|
-
enabled: false
|
39
|
-
# Headers should be surrounded by blank lines
|
40
|
-
MD022:
|
41
|
-
enabled: false
|
42
|
-
# Multiple consecutive blank lines
|
43
|
-
MD012:
|
44
|
-
enabled: false
|
45
|
-
# Bare URL used
|
46
|
-
MD034:
|
47
|
-
enabled: false
|
48
|
-
# Ordered list item prefix
|
49
|
-
MD029:
|
50
|
-
enabled: false
|
51
|
-
# Lists should be surrounded by blank lines
|
52
|
-
MD032:
|
53
|
-
enabled: false
|
54
|
-
# Code block style
|
55
|
-
MD046:
|
56
|
-
enabled: false
|
57
|
-
# Header style
|
58
|
-
MD003:
|
59
|
-
enabled: false
|
60
|
-
# Spaces after list markers
|
61
|
-
MD030:
|
62
|
-
enabled: false
|
63
|
-
|