rmagick 5.3.0 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,8 +5,8 @@
5
5
  *
6
6
  * Changes since Nov. 2009 copyright © by Benjamin Thomas and Omer Bar-or
7
7
  *
8
- * @file rmenum.c
9
- * @version $Id: rmenum.c,v 1.9 2009/12/20 02:33:33 baror Exp $
8
+ * @file rmenum.cpp
9
+ * @version $Id: rmenum.cpp,v 1.9 2009/12/20 02:33:33 baror Exp $
10
10
  * @author Tim Hunter
11
11
  ******************************************************************************/
12
12
 
@@ -40,14 +40,14 @@ const rb_data_type_t rm_enum_data_type = {
40
40
  VALUE
41
41
  rm_define_enum_type(const char *tag)
42
42
  {
43
- VALUE class;
43
+ VALUE klass;
44
44
 
45
- class = rb_define_class_under(Module_Magick, tag, Class_Enum);\
45
+ klass = rb_define_class_under(Module_Magick, tag, Class_Enum);\
46
46
 
47
- rb_define_singleton_method(class, "values", Enum_type_values, 0);
48
- rb_define_method(class, "initialize", Enum_type_initialize, 2);
49
- rb_define_method(class, "inspect", Enum_type_inspect, 0);
50
- return class;
47
+ rb_define_singleton_method(klass, "values", RUBY_METHOD_FUNC(Enum_type_values), 0);
48
+ rb_define_method(klass, "initialize", RUBY_METHOD_FUNC(Enum_type_initialize), 2);
49
+ rb_define_method(klass, "inspect", RUBY_METHOD_FUNC(Enum_type_inspect), 0);
50
+ return klass;
51
51
  }
52
52
 
53
53
 
@@ -56,19 +56,19 @@ rm_define_enum_type(const char *tag)
56
56
  *
57
57
  * No Ruby usage (internal function)
58
58
  *
59
- * @param class the subclass
59
+ * @param klass the subclass
60
60
  * @param sym the symbol
61
61
  * @param val the value for the symbol
62
62
  * @return a new instance of class
63
63
  */
64
64
  VALUE
65
- rm_enum_new(VALUE class, VALUE sym, VALUE val)
65
+ rm_enum_new(VALUE klass, VALUE sym, VALUE val)
66
66
  {
67
67
  VALUE argv[2];
68
68
 
69
69
  argv[0] = sym;
70
70
  argv[1] = val;
71
- return rb_obj_freeze(rb_class_new_instance(2, argv, class));
71
+ return rb_obj_freeze(rb_class_new_instance(2, argv, klass));
72
72
  }
73
73
 
74
74
  /**
@@ -118,12 +118,12 @@ static void rm_enum_free(void *magick_enum)
118
118
  * @return [Magick::Enum] a new enumerator
119
119
  */
120
120
  VALUE
121
- Enum_alloc(VALUE class)
121
+ Enum_alloc(VALUE klass)
122
122
  {
123
123
  MagickEnum *magick_enum;
124
124
  VALUE enumr;
125
125
 
126
- enumr = TypedData_Make_Struct(class, MagickEnum, &rm_enum_data_type, magick_enum);
126
+ enumr = TypedData_Make_Struct(klass, MagickEnum, &rm_enum_data_type, magick_enum);
127
127
  rb_obj_freeze(enumr);
128
128
 
129
129
  return enumr;
@@ -141,11 +141,11 @@ Enum_case_eq(VALUE self, VALUE other)
141
141
  {
142
142
  if (CLASS_OF(self) == CLASS_OF(other))
143
143
  {
144
- MagickEnum *this, *that;
144
+ MagickEnum *self_enum, *other_enum;
145
145
 
146
- TypedData_Get_Struct(self, MagickEnum, &rm_enum_data_type, this);
147
- TypedData_Get_Struct(other, MagickEnum, &rm_enum_data_type, that);
148
- return this->val == that->val ? Qtrue : Qfalse;
146
+ TypedData_Get_Struct(self, MagickEnum, &rm_enum_data_type, self_enum);
147
+ TypedData_Get_Struct(other, MagickEnum, &rm_enum_data_type, other_enum);
148
+ return self_enum->val == other_enum->val ? Qtrue : Qfalse;
149
149
  }
150
150
 
151
151
  return Qfalse;
@@ -196,20 +196,20 @@ Enum_to_i(VALUE self)
196
196
  VALUE
197
197
  Enum_spaceship(VALUE self, VALUE other)
198
198
  {
199
- MagickEnum *this, *that;
199
+ MagickEnum *self_enum, *other_enum;
200
200
 
201
201
  if(CLASS_OF(self) != CLASS_OF(other)) {
202
202
  return Qnil;
203
203
  }
204
204
 
205
- TypedData_Get_Struct(self, MagickEnum, &rm_enum_data_type, this);
206
- TypedData_Get_Struct(other, MagickEnum, &rm_enum_data_type, that);
205
+ TypedData_Get_Struct(self, MagickEnum, &rm_enum_data_type, self_enum);
206
+ TypedData_Get_Struct(other, MagickEnum, &rm_enum_data_type, other_enum);
207
207
 
208
- if (this->val > that->val)
208
+ if (self_enum->val > other_enum->val)
209
209
  {
210
210
  return INT2FIX(1);
211
211
  }
212
- else if (this->val < that->val)
212
+ else if (self_enum->val < other_enum->val)
213
213
  {
214
214
  return INT2FIX(-1);
215
215
  }
@@ -224,25 +224,25 @@ Enum_spaceship(VALUE self, VALUE other)
224
224
  * @return [Magick::Enum] new Enum instance
225
225
  */
226
226
  VALUE
227
- Enum_bitwise_or(VALUE self, VALUE another)
227
+ Enum_bitwise_or(VALUE self, VALUE other)
228
228
  {
229
- VALUE new_enum, cls;
230
- MagickEnum *this, *that, *new_enum_data;
229
+ VALUE new_enum, klass;
230
+ MagickEnum *self_enum, *other_enum, *new_enum_data;
231
231
 
232
- cls = CLASS_OF(self);
233
- if (CLASS_OF(another) != cls)
232
+ klass = CLASS_OF(self);
233
+ if (CLASS_OF(other) != klass)
234
234
  {
235
- rb_raise(rb_eArgError, "Expected class %s but got %s", rb_class2name(cls), rb_class2name(CLASS_OF(another)));
235
+ rb_raise(rb_eArgError, "Expected class %s but got %s", rb_class2name(klass), rb_class2name(CLASS_OF(other)));
236
236
  }
237
237
 
238
- new_enum = Enum_alloc(cls);
238
+ new_enum = Enum_alloc(klass);
239
239
 
240
- TypedData_Get_Struct(self, MagickEnum, &rm_enum_data_type, this);
241
- TypedData_Get_Struct(another, MagickEnum, &rm_enum_data_type, that);
240
+ TypedData_Get_Struct(self, MagickEnum, &rm_enum_data_type, self_enum);
241
+ TypedData_Get_Struct(other, MagickEnum, &rm_enum_data_type, other_enum);
242
242
  TypedData_Get_Struct(new_enum, MagickEnum, &rm_enum_data_type, new_enum_data);
243
243
 
244
- new_enum_data->id = rb_to_id(rb_sprintf("%s|%s", rb_id2name(this->id), rb_id2name(that->id)));
245
- new_enum_data->val = this->val | that->val;
244
+ new_enum_data->id = rb_to_id(rb_sprintf("%s|%s", rb_id2name(self_enum->id), rb_id2name(other_enum->id)));
245
+ new_enum_data->val = self_enum->val | other_enum->val;
246
246
 
247
247
  return new_enum;
248
248
  }
@@ -321,13 +321,13 @@ Enum_type_inspect(VALUE self)
321
321
  * @return [Magick::Enum] self
322
322
  */
323
323
  static VALUE
324
- Enum_type_values(VALUE class)
324
+ Enum_type_values(VALUE klass)
325
325
  {
326
326
  VALUE enumerators, copy;
327
327
  VALUE rv;
328
328
  int x;
329
329
 
330
- enumerators = rb_cv_get(class, ENUMERATORS_CLASS_VAR);
330
+ enumerators = rb_cv_get(klass, ENUMERATORS_CLASS_VAR);
331
331
 
332
332
  if (rb_block_given_p())
333
333
  {
@@ -335,7 +335,7 @@ Enum_type_values(VALUE class)
335
335
  {
336
336
  rb_yield(rb_ary_entry(enumerators, x));
337
337
  }
338
- rv = class;
338
+ rv = klass;
339
339
  }
340
340
  else
341
341
  {
@@ -360,19 +360,19 @@ Enum_type_values(VALUE class)
360
360
  *
361
361
  * No Ruby usage (internal function)
362
362
  *
363
- * @param class the class type
363
+ * @param klass the class type
364
364
  * @param value the value for enum
365
365
  * @return a enumerator
366
366
  */
367
367
 
368
368
  VALUE
369
- Enum_find(VALUE class, int val)
369
+ Enum_find(VALUE klass, int val)
370
370
  {
371
371
  VALUE enumerators;
372
372
  MagickEnum *magick_enum;
373
373
  int x;
374
374
 
375
- enumerators = rb_cv_get(class, ENUMERATORS_CLASS_VAR);
375
+ enumerators = rb_cv_get(klass, ENUMERATORS_CLASS_VAR);
376
376
  enumerators = rm_check_ary_type(enumerators);
377
377
 
378
378
  for (x = 0; x < RARRAY_LEN(enumerators); x++)
@@ -398,9 +398,9 @@ Enum_find(VALUE class, int val)
398
398
  * @return a new enumerator
399
399
  */
400
400
  VALUE
401
- ClassType_find(ClassType cls)
401
+ ClassType_find(ClassType klass)
402
402
  {
403
- return Enum_find(Class_ClassType, cls);
403
+ return Enum_find(Class_ClassType, klass);
404
404
  }
405
405
 
406
406
 
@@ -485,7 +485,7 @@ ComplianceType_find(ComplianceType compliance)
485
485
  if ((compliance & (SVGCompliance|X11Compliance|XPMCompliance))
486
486
  == (SVGCompliance|X11Compliance|XPMCompliance))
487
487
  {
488
- c = SVGCompliance|X11Compliance|XPMCompliance;
488
+ c = (ComplianceType)(SVGCompliance|X11Compliance|XPMCompliance);
489
489
  }
490
490
  else if (compliance & SVGCompliance)
491
491
  {
@@ -5,8 +5,8 @@
5
5
  *
6
6
  * Changes since Nov. 2009 copyright &copy; by Benjamin Thomas and Omer Bar-or
7
7
  *
8
- * @file rmfill.c
9
- * @version $Id: rmfill.c,v 1.33 2009/12/20 02:33:33 baror Exp $
8
+ * @file rmfill.cpp
9
+ * @version $Id: rmfill.cpp,v 1.33 2009/12/20 02:33:33 baror Exp $
10
10
  * @author Tim Hunter
11
11
  ******************************************************************************/
12
12
 
@@ -86,11 +86,11 @@ GradientFill_memsize(const void *ptr)
86
86
  * @return [Magick::GradientFill] a new GradientFill object
87
87
  */
88
88
  VALUE
89
- GradientFill_alloc(VALUE class)
89
+ GradientFill_alloc(VALUE klass)
90
90
  {
91
91
  rm_GradientFill *fill;
92
92
 
93
- return TypedData_Make_Struct(class, rm_GradientFill, &rm_gradient_fill_data_type, fill);
93
+ return TypedData_Make_Struct(klass, rm_GradientFill, &rm_gradient_fill_data_type, fill);
94
94
  }
95
95
 
96
96
 
@@ -741,10 +741,10 @@ TextureFill_memsize(const void *ptr)
741
741
  * @return [Magick::TextureFill] a new TextureFill object
742
742
  */
743
743
  VALUE
744
- TextureFill_alloc(VALUE class)
744
+ TextureFill_alloc(VALUE klass)
745
745
  {
746
746
  rm_TextureFill *fill;
747
- return TypedData_Make_Struct(class, rm_TextureFill, &rm_texture_fill_data_type, fill);
747
+ return TypedData_Make_Struct(klass, rm_TextureFill, &rm_texture_fill_data_type, fill);
748
748
  }
749
749
 
750
750
  /**
@@ -5,8 +5,8 @@
5
5
  *
6
6
  * Changes since Nov. 2009 copyright &copy; by Benjamin Thomas and Omer Bar-or
7
7
  *
8
- * @file rmilist.c
9
- * @version $Id: rmilist.c,v 1.94 2009/12/20 02:33:33 baror Exp $
8
+ * @file rmilist.cpp
9
+ * @version $Id: rmilist.cpp,v 1.94 2009/12/20 02:33:33 baror Exp $
10
10
  * @author Tim Hunter
11
11
  ******************************************************************************/
12
12
 
@@ -135,7 +135,7 @@ VALUE
135
135
  ImageList_append(VALUE self, VALUE stack_arg)
136
136
  {
137
137
  Image *images, *new_image;
138
- unsigned int stack;
138
+ MagickBooleanType stack;
139
139
  ExceptionInfo *exception;
140
140
 
141
141
  // Convert the image array to an image sequence.
@@ -143,7 +143,7 @@ ImageList_append(VALUE self, VALUE stack_arg)
143
143
 
144
144
  // If stack == true, stack rectangular images top-to-bottom,
145
145
  // otherwise left-to-right.
146
- stack = RTEST(stack_arg);
146
+ stack = (MagickBooleanType)RTEST(stack_arg);
147
147
 
148
148
  exception = AcquireExceptionInfo();
149
149
  GVL_STRUCT_TYPE(AppendImages) args = { images, stack, exception };
@@ -260,20 +260,20 @@ VALUE ImageList_combine(int argc, VALUE *argv, VALUE self)
260
260
  {
261
261
  case 5:
262
262
  if (colorspace == CMYKColorspace)
263
- channel |= AlphaChannel;
263
+ channel = (ChannelType)(channel | AlphaChannel);
264
264
  else
265
265
  rb_raise(rb_eArgError, "invalid number of images in this image list");
266
266
  case 4:
267
267
  if (colorspace == CMYKColorspace)
268
- channel |= IndexChannel;
268
+ channel = (ChannelType)(channel | IndexChannel);
269
269
  else
270
- channel |= AlphaChannel;
270
+ channel = (ChannelType)(channel | AlphaChannel);
271
271
  case 3:
272
- channel |= GreenChannel;
273
- channel |= BlueChannel;
272
+ channel = (ChannelType)(channel | GreenChannel);
273
+ channel = (ChannelType)(channel | BlueChannel);
274
274
  break;
275
275
  case 2:
276
- channel |= AlphaChannel;
276
+ channel = (ChannelType)(channel | AlphaChannel);
277
277
  break;
278
278
  case 1:
279
279
  break;
@@ -311,10 +311,10 @@ VALUE ImageList_combine(int argc, VALUE *argv, VALUE self)
311
311
  * @overload composite_layers(images)
312
312
  * @param images [Magick::ImageList] the source images
313
313
  *
314
- * @overload composite_layers(images, operator)
314
+ * @overload composite_layers(images, composite_op)
315
315
  * - Default operator is {Magick::OverCompositeOp}
316
316
  * @param images [Magick::ImageList] the source images
317
- * @param operator [Magick::CompositeOperator] the operator
317
+ * @param composite_op [Magick::CompositeOperator] the operator
318
318
  *
319
319
  * @return [Magick::ImageList] a new imagelist
320
320
  */
@@ -324,13 +324,13 @@ ImageList_composite_layers(int argc, VALUE *argv, VALUE self)
324
324
  VALUE source_images;
325
325
  Image *dest, *source, *new_images;
326
326
  RectangleInfo geometry;
327
- CompositeOperator operator = OverCompositeOp;
327
+ CompositeOperator composite_op = OverCompositeOp;
328
328
  ExceptionInfo *exception;
329
329
 
330
330
  switch (argc)
331
331
  {
332
332
  case 2:
333
- VALUE_TO_ENUM(argv[1], operator, CompositeOperator);
333
+ VALUE_TO_ENUM(argv[1], composite_op, CompositeOperator);
334
334
  case 1:
335
335
  source_images = argv[0];
336
336
  break;
@@ -356,7 +356,7 @@ ImageList_composite_layers(int argc, VALUE *argv, VALUE self)
356
356
  new_images->gravity, &geometry);
357
357
 
358
358
  exception = AcquireExceptionInfo();
359
- GVL_STRUCT_TYPE(CompositeLayers) args = { new_images, operator, source, geometry.x, geometry.y, exception };
359
+ GVL_STRUCT_TYPE(CompositeLayers) args = { new_images, composite_op, source, geometry.x, geometry.y, exception };
360
360
  CALL_FUNC_WITHOUT_GVL(GVL_FUNC(CompositeLayers), &args);
361
361
  rm_split(source);
362
362
  rm_check_exception(exception, new_images, DestroyOnError);
@@ -532,16 +532,16 @@ ImageList_morph(VALUE self, VALUE nimages)
532
532
  {
533
533
  Image *images, *new_images;
534
534
  ExceptionInfo *exception;
535
- long number_images;
535
+ size_t number_images;
536
536
 
537
537
 
538
538
  // Use a signed long so we can test for a negative argument.
539
- number_images = NUM2LONG(nimages);
540
- if (number_images <= 0)
539
+ if (NUM2LONG(nimages) <= 0)
541
540
  {
542
541
  rb_raise(rb_eArgError, "number of intervening images must be > 0");
543
542
  }
544
543
 
544
+ number_images = NUM2LONG(nimages);
545
545
  images = images_from_imagelist(self);
546
546
  exception = AcquireExceptionInfo();
547
547
  GVL_STRUCT_TYPE(MorphImages) args = { images, number_images, exception };
@@ -970,7 +970,7 @@ ImageList_quantize(int argc, VALUE *argv, VALUE self)
970
970
  if (rb_obj_is_kind_of(argv[2], Class_DitherMethod))
971
971
  {
972
972
  VALUE_TO_ENUM(argv[2], quantize_info.dither_method, DitherMethod);
973
- quantize_info.dither = quantize_info.dither_method != NoDitherMethod;
973
+ quantize_info.dither = (MagickBooleanType)(quantize_info.dither_method != NoDitherMethod);
974
974
  }
975
975
  else
976
976
  {
@@ -1155,7 +1155,7 @@ ImageList_to_blob(VALUE self)
1155
1155
  return Qnil;
1156
1156
  }
1157
1157
 
1158
- blob_str = rb_str_new(blob, (long)length);
1158
+ blob_str = rb_str_new((const char *)blob, (long)length);
1159
1159
  magick_free((void*)blob);
1160
1160
 
1161
1161
  RB_GC_GUARD(info_obj);
@@ -1193,7 +1193,9 @@ ImageList_write(VALUE self, VALUE file)
1193
1193
 
1194
1194
  // Ensure file is open - raise error if not
1195
1195
  GetOpenFile(file, fptr);
1196
- add_format_prefix(info, fptr->pathv);
1196
+ rb_io_check_writable(fptr);
1197
+
1198
+ add_format_prefix(info, rm_io_path(file));
1197
1199
  #if defined(_WIN32)
1198
1200
  SetImageInfoFile(info, NULL);
1199
1201
  #else