rmagick 1.9.3 → 1.10.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.

Potentially problematic release.


This version of rmagick might be problematic. Click here for more details.

Files changed (62) hide show
  1. data/ChangeLog +18 -0
  2. data/README.html +12 -12
  3. data/README.txt +10 -10
  4. data/configure +728 -367
  5. data/configure.ac +134 -69
  6. data/doc/comtasks.html +11 -3
  7. data/doc/constants.html +162 -40
  8. data/doc/draw.html +2 -2
  9. data/doc/ex/crop_resized.rb +10 -0
  10. data/doc/ex/get_type_metrics.rb +26 -22
  11. data/doc/ex/vignette.rb +19 -0
  12. data/doc/ilist.html +0 -5
  13. data/doc/image1.html +219 -49
  14. data/doc/image2.html +115 -47
  15. data/doc/image3.html +105 -23
  16. data/doc/imageattrs.html +4 -23
  17. data/doc/imusage.html +1 -1
  18. data/doc/index.html +8 -9
  19. data/doc/info.html +23 -3
  20. data/doc/magick.html +1 -1
  21. data/doc/rvg.html +1 -1
  22. data/doc/rvgclip.html +1 -1
  23. data/doc/rvggroup.html +1 -1
  24. data/doc/rvgimage.html +1 -1
  25. data/doc/rvgpattern.html +1 -1
  26. data/doc/rvgshape.html +1 -1
  27. data/doc/rvgstyle.html +1 -1
  28. data/doc/rvgtext.html +3 -3
  29. data/doc/rvgtspan.html +1 -1
  30. data/doc/rvgtut.html +119 -101
  31. data/doc/rvguse.html +1 -1
  32. data/doc/rvgxform.html +1 -1
  33. data/doc/struct.html +17 -11
  34. data/doc/usage.html +22 -4
  35. data/examples/histogram.rb +48 -12
  36. data/examples/spinner.rb +49 -0
  37. data/ext/RMagick/MANIFEST +4 -1
  38. data/ext/RMagick/rmagick.h +62 -33
  39. data/ext/RMagick/rmagick_config.h.in +28 -31
  40. data/ext/RMagick/rmdraw.c +14 -6
  41. data/ext/RMagick/rmfill.c +2 -2
  42. data/ext/RMagick/rmilist.c +8 -36
  43. data/ext/RMagick/rmimage.c +370 -97
  44. data/ext/RMagick/rminfo.c +6 -6
  45. data/ext/RMagick/rmmain.c +114 -25
  46. data/ext/RMagick/rmutil.c +98 -35
  47. data/lib/RMagick.rb +17 -2
  48. data/lib/rvg/clippath.rb +2 -2
  49. data/lib/rvg/container.rb +2 -2
  50. data/lib/rvg/describable.rb +2 -2
  51. data/lib/rvg/embellishable.rb +2 -2
  52. data/lib/rvg/misc.rb +3 -3
  53. data/lib/rvg/paint.rb +2 -2
  54. data/lib/rvg/pathdata.rb +2 -2
  55. data/lib/rvg/rvg.rb +2 -2
  56. data/lib/rvg/stretchable.rb +2 -2
  57. data/lib/rvg/stylable.rb +2 -2
  58. data/lib/rvg/text.rb +2 -2
  59. data/lib/rvg/transformable.rb +2 -2
  60. data/lib/rvg/units.rb +2 -2
  61. data/rmagick.gemspec +1 -1
  62. metadata +362 -353
@@ -1,6 +1,6 @@
1
- /* $Id: rminfo.c,v 1.33 2005/06/19 20:26:34 rmagick Exp $ */
1
+ /* $Id: rminfo.c,v 1.36 2006/01/18 00:23:03 rmagick Exp $ */
2
2
  /*============================================================================\
3
- | Copyright (C) 2005 by Timothy P. Hunter
3
+ | Copyright (C) 2006 by Timothy P. Hunter
4
4
  | Name: rminfo.c
5
5
  | Author: Tim Hunter
6
6
  | Purpose: Info class method definitions for RMagick.
@@ -177,7 +177,7 @@ VALUE
177
177
  Info_authenticate_eq(VALUE self, VALUE passwd)
178
178
  {
179
179
  Info *info;
180
- char *passwd_p;
180
+ char *passwd_p = NULL;
181
181
  long passwd_len = 0;
182
182
 
183
183
  Data_Get_Struct(self, Info, info);
@@ -1227,7 +1227,7 @@ Info_number_scenes_eq(VALUE self, VALUE nscenes)
1227
1227
  VALUE
1228
1228
  Info_orientation(VALUE self)
1229
1229
  {
1230
- #if defined(HAVE_IMAGE_ORIENTATION)
1230
+ #if defined(HAVE_IMAGEINFO_ORIENTATION)
1231
1231
  Info *info;
1232
1232
 
1233
1233
  Data_Get_Struct(self, Info, info);
@@ -1247,7 +1247,7 @@ Info_orientation(VALUE self)
1247
1247
  VALUE
1248
1248
  Info_orientation_eq(VALUE self, VALUE inter)
1249
1249
  {
1250
- #if defined(HAVE_IMAGE_ORIENTATION)
1250
+ #if defined(HAVE_IMAGEINFO_ORIENTATION)
1251
1251
  Info *info;
1252
1252
 
1253
1253
  Data_Get_Struct(self, Info, info);
@@ -1338,7 +1338,7 @@ VALUE
1338
1338
  Info_sampling_factor_eq(VALUE self, VALUE sampling_factor)
1339
1339
  {
1340
1340
  Info *info;
1341
- char *sampling_factor_p;
1341
+ char *sampling_factor_p = NULL;
1342
1342
  long sampling_factor_len = 0;
1343
1343
 
1344
1344
  Data_Get_Struct(self, Info, info);
@@ -1,6 +1,6 @@
1
- /* $Id: rmmain.c,v 1.99 2005/10/13 23:01:29 rmagick Exp $ */
1
+ /* $Id: rmmain.c,v 1.110 2006/01/20 23:59:46 rmagick Exp $ */
2
2
  /*============================================================================\
3
- | Copyright (C) 2005 by Timothy P. Hunter
3
+ | Copyright (C) 2006 by Timothy P. Hunter
4
4
  | Name: rmmain.c
5
5
  | Author: Tim Hunter
6
6
  | Purpose: Contains all module, class, method declarations.
@@ -10,12 +10,14 @@
10
10
 
11
11
  #define MAIN // Define external variables
12
12
  #include "rmagick.h"
13
+ #include "magick/version.h"
13
14
 
14
15
  /*----------------------------------------------------------------------------\
15
16
  | External declarations
16
17
  \----------------------------------------------------------------------------*/
17
18
  void Init_RMagick(void);
18
19
 
20
+ static void test_Magick_version(void);
19
21
  static void version_constants(void);
20
22
 
21
23
 
@@ -406,7 +408,7 @@ Magick_set_monitor(VALUE class, VALUE monitor)
406
408
  // available, use the 3-parm version of rb_cvar_set.
407
409
  RUBY18(rb_cvar_set(Module_Magick, Magick_Monitor, monitor, 0);)
408
410
  RUBY16(rb_cvar_set(Module_Magick, Magick_Monitor, monitor);)
409
- (void) SetMonitorHandler(&monitor_handler);
411
+ (void) SetMonitorHandler((MonitorHandler)&monitor_handler);
410
412
  }
411
413
 
412
414
  return class;
@@ -470,13 +472,8 @@ Magick_set_log_event_mask(int argc, VALUE *argv, VALUE class)
470
472
  static VALUE
471
473
  Magick_set_log_format(VALUE class, VALUE format)
472
474
  {
473
- #ifdef HAVE_SETLOGFORMAT
474
475
  SetLogFormat(STRING_PTR(format));
475
476
  return class;
476
- #else
477
- rm_not_implemented();
478
- return (VALUE)0;
479
- #endif
480
477
  }
481
478
 
482
479
 
@@ -494,6 +491,7 @@ Init_RMagick(void)
494
491
  volatile VALUE observable;
495
492
 
496
493
  InitializeMagick("RMagick");
494
+ test_Magick_version();
497
495
 
498
496
  Module_Magick = rb_define_module("Magick");
499
497
 
@@ -627,6 +625,7 @@ Init_RMagick(void)
627
625
 
628
626
  rb_define_method(Class_Image, "adaptive_threshold", Image_adaptive_threshold, -1);
629
627
  rb_define_method(Class_Image, "add_noise", Image_add_noise, 1);
628
+ rb_define_method(Class_Image, "add_noise_channel", Image_add_noise_channel, -1);
630
629
  rb_define_method(Class_Image, "affine_transform", Image_affine_transform, 1);
631
630
  rb_define_method(Class_Image, "[]", Image_aref, 1);
632
631
  rb_define_method(Class_Image, "[]=", Image_aset, 2);
@@ -679,7 +678,8 @@ Init_RMagick(void)
679
678
  rb_define_method(Class_Image, "enhance", Image_enhance, 0);
680
679
  rb_define_method(Class_Image, "equalize", Image_equalize, 0);
681
680
  rb_define_method(Class_Image, "erase!", Image_erase_bang, 0);
682
- rb_define_method(Class_Image, "export_pixels", Image_export_pixels, 5);
681
+ rb_define_method(Class_Image, "export_pixels", Image_export_pixels, -1);
682
+ rb_define_method(Class_Image, "export_pixels_to_str", Image_export_pixels_to_str, -1);
683
683
  rb_define_method(Class_Image, "flip", Image_flip, 0);
684
684
  rb_define_method(Class_Image, "flip!", Image_flip_bang, 0);
685
685
  rb_define_method(Class_Image, "flop", Image_flop, 0);
@@ -716,7 +716,7 @@ Init_RMagick(void)
716
716
  rb_define_method(Class_Image, "oil_paint", Image_oil_paint, -1);
717
717
  rb_define_method(Class_Image, "opaque", Image_opaque, 2);
718
718
  rb_define_method(Class_Image, "opaque?", Image_opaque_q, 0);
719
- rb_define_method(Class_Image, "ordered_dither", Image_ordered_dither, 0);
719
+ rb_define_method(Class_Image, "ordered_dither", Image_ordered_dither, -1);
720
720
  rb_define_method(Class_Image, "palette?", Image_palette_q, 0);
721
721
  rb_define_method(Class_Image, "pixel_color", Image_pixel_color, -1);
722
722
  rb_define_method(Class_Image, "posterize", Image_posterize, -1);
@@ -773,6 +773,7 @@ Init_RMagick(void)
773
773
  rb_define_method(Class_Image, "trim!", Image_trim_bang, 0);
774
774
  rb_define_method(Class_Image, "unsharp_mask", Image_unsharp_mask, -1);
775
775
  rb_define_method(Class_Image, "unsharp_mask_channel", Image_unsharp_mask_channel, -1);
776
+ rb_define_method(Class_Image, "vignette", Image_vignette, -1);
776
777
  rb_define_method(Class_Image, "wave", Image_wave, -1);
777
778
  rb_define_method(Class_Image, "white_threshold", Image_white_threshold, -1);
778
779
  rb_define_method(Class_Image, "write", Image_write, 1);
@@ -875,6 +876,13 @@ Init_RMagick(void)
875
876
  DCL_ATTR_ACCESSOR(Pixel, blue)
876
877
  DCL_ATTR_ACCESSOR(Pixel, opacity)
877
878
 
879
+ // Define the CMYK attributes
880
+ DCL_ATTR_ACCESSOR(Pixel, cyan)
881
+ DCL_ATTR_ACCESSOR(Pixel, magenta)
882
+ DCL_ATTR_ACCESSOR(Pixel, yellow)
883
+ DCL_ATTR_ACCESSOR(Pixel, black)
884
+
885
+
878
886
  // Define the instance methods
879
887
  rb_define_method(Class_Pixel, "<=>", Pixel_spaceship, 1);
880
888
  rb_define_method(Class_Pixel, "===", Pixel_case_eq, 1);
@@ -1113,14 +1121,31 @@ Init_RMagick(void)
1113
1121
  , rm_enum_new(Class_ColorspaceType
1114
1122
  , ID2SYM(rb_intern("SRGBColorspace"))
1115
1123
  , INT2FIX(sRGBColorspace)));
1116
- #if defined(HAVE_HSLCOLORSPACE)
1117
- ENUMERATOR(HSLColorspace) // 5.5.7
1124
+ ENUMERATOR(HSLColorspace)
1125
+ ENUMERATOR(HWBColorspace)
1126
+ #if defined(HAVE_HSBCOLORSPACE)
1127
+ ENUMERATOR(HSBColorspace) // IM 6.0.0
1118
1128
  #endif
1119
- #if defined(HAVE_HWBCOLORSPACE)
1120
- ENUMERATOR(HWBColorspace) // 5.5.7
1129
+ #if defined(HAVE_CINEONLOGRGBCOLORSPACE)
1130
+ ENUMERATOR(CineonLogRGBColorspace) // GM 1.2
1121
1131
  #endif
1122
- #if defined(HAVE_HSBCOLORSPACE)
1123
- ENUMERATOR(HSBColorspace) // 6.0.0
1132
+ #if defined(HAVE_LABCOLORSPACE)
1133
+ ENUMERATOR(LABColorspace) // GM 1.2
1134
+ #endif
1135
+ #if defined(HAVE_REC601LUMACOLORSPACE)
1136
+ ENUMERATOR(Rec601LumaColorspace) // GM 1.2 && IM 6.2.2
1137
+ #endif
1138
+ #if defined(HAVE_REC601YCBCRCOLORSPACE)
1139
+ ENUMERATOR(Rec601YCbCrColorspace) // GM 1.2 && IM 6.2.2
1140
+ #endif
1141
+ #if defined(HAVE_REC709LUMACOLORSPACE)
1142
+ ENUMERATOR(Rec709LumaColorspace) // GM 1.2 && IM 6.2.2
1143
+ #endif
1144
+ #if defined(HAVE_REC709YCBCRCOLORSPACE)
1145
+ ENUMERATOR(Rec709YCbCrColorspace) // GM 1.2 && IM 6.2.2
1146
+ #endif
1147
+ #if defined(HAVE_LOGCOLORSPACE)
1148
+ ENUMERATOR(LogColorspace) // IM 6.2.3
1124
1149
  #endif
1125
1150
  END_ENUM
1126
1151
 
@@ -1134,9 +1159,7 @@ Init_RMagick(void)
1134
1159
  , ID2SYM(rb_intern("AllCompliance"))
1135
1160
  , INT2FIX(SVGCompliance|X11Compliance|XPMCompliance)));
1136
1161
 
1137
- #if defined(HAVE_NOCOMPLIANCE)
1138
1162
  ENUMERATOR(NoCompliance)
1139
- #endif
1140
1163
  ENUMERATOR(SVGCompliance)
1141
1164
  ENUMERATOR(X11Compliance)
1142
1165
  ENUMERATOR(XPMCompliance)
@@ -1236,15 +1259,13 @@ Init_RMagick(void)
1236
1259
  ENUMERATOR(LineThroughDecoration)
1237
1260
  END_ENUM
1238
1261
 
1239
- #if defined(HAVE_DISPOSETYPE)
1240
- // DisposeType constants (5.5.1)
1262
+ // DisposeType constants
1241
1263
  DEF_ENUM(DisposeType)
1242
1264
  ENUMERATOR(UndefinedDispose)
1243
1265
  ENUMERATOR(BackgroundDispose)
1244
1266
  ENUMERATOR(NoneDispose)
1245
1267
  ENUMERATOR(PreviousDispose)
1246
1268
  END_ENUM
1247
- #endif
1248
1269
 
1249
1270
  DEF_ENUM(EndianType)
1250
1271
  ENUMERATOR(UndefinedEndian)
@@ -1561,6 +1582,64 @@ Init_RMagick(void)
1561
1582
 
1562
1583
  }
1563
1584
 
1585
+
1586
+
1587
+
1588
+ /*
1589
+ * Static: test_Magick_version
1590
+ * Purpose: Ensure the version of ImageMagick we're running with matches
1591
+ * the version we were compiled with.
1592
+ * Notes: Bypass the test by defining the constant RMAGICK_BYPASS_VERSION_TEST
1593
+ * to 'true' at the top level, before requiring 'RMagick'
1594
+ */
1595
+ static void test_Magick_version(void)
1596
+ {
1597
+ unsigned long version_number;
1598
+ const char *version_str;
1599
+ const char *web_site =
1600
+ #if defined(MagickHomeURL)
1601
+ MagickHomeURL
1602
+ #else
1603
+ MagickWebSite
1604
+ #endif
1605
+ ;
1606
+ int x, n;
1607
+ ID bypass = rb_intern("RMAGICK_BYPASS_VERSION_TEST");
1608
+
1609
+ if (RTEST(rb_const_defined(rb_cObject, bypass)) && RTEST(rb_const_get(rb_cObject, bypass)))
1610
+ {
1611
+ return;
1612
+ }
1613
+
1614
+ version_str = GetMagickVersion(&version_number);
1615
+ if (version_number != MagickLibVersion)
1616
+ {
1617
+ // Extract the string "ImageMagick X.Y.Z"
1618
+ n = 0;
1619
+ for (x = 0; version_str[x] != '\0'; x++)
1620
+ {
1621
+ if (version_str[x] == ' ' && ++n == 2)
1622
+ {
1623
+ break;
1624
+ }
1625
+ }
1626
+
1627
+ rb_raise(rb_eRuntimeError,
1628
+ "This version of RMagick was created to run with %s %s\n"
1629
+ "but %.*s is installed on this system. You should either\n"
1630
+ " 1) refer to the RMagick README file to learn how to create\n"
1631
+ " a version of RMagick for %.*s, or\n"
1632
+ " 2) download %s %s from %s and install it." ,
1633
+ MagickPackageName, MagickLibVersionText, x, version_str, x, version_str,
1634
+ MagickPackageName, MagickLibVersionText, web_site);
1635
+ }
1636
+
1637
+ }
1638
+
1639
+
1640
+
1641
+
1642
+
1564
1643
  /*
1565
1644
  Static: version_constants
1566
1645
  Purpose: create Version, Magick_version, and Version_long constants.
@@ -1568,19 +1647,29 @@ Init_RMagick(void)
1568
1647
  static void version_constants(void)
1569
1648
  {
1570
1649
  const char *mgk_version;
1650
+ volatile VALUE str;
1571
1651
  char long_version[1000];
1572
1652
 
1573
1653
  mgk_version = GetMagickVersion(NULL);
1574
- rb_define_const(Module_Magick, "Magick_version", rb_str_new2(mgk_version));
1575
1654
 
1576
- rb_define_const(Module_Magick, "Version", rb_str_new2(PACKAGE_STRING));
1655
+ str = rb_str_new2(mgk_version);
1656
+ rb_obj_freeze(str);
1657
+ rb_define_const(Module_Magick, "Magick_version", str);
1658
+
1659
+ str = rb_str_new2(PACKAGE_STRING);
1660
+ rb_obj_freeze(str);
1661
+ rb_define_const(Module_Magick, "Version", str);
1662
+
1577
1663
  sprintf(long_version,
1578
- "This is %s ($Date: 2005/10/13 23:01:29 $) Copyright (C) 2005 by Timothy P. Hunter\n"
1664
+ "This is %s ($Date: 2006/01/20 23:59:46 $) Copyright (C) 2006 by Timothy P. Hunter\n"
1579
1665
  "Built with %s\n"
1580
1666
  "Built for %s\n"
1581
1667
  "Web page: http://rmagick.rubyforge.org\n"
1582
1668
  "Email: rmagick@rubyforge.org\n",
1583
1669
  PACKAGE_STRING, mgk_version, RUBY_VERSION_STRING);
1584
- rb_define_const(Module_Magick, "Long_version", rb_str_new2(long_version));
1670
+
1671
+ str = rb_str_new2(long_version);
1672
+ rb_obj_freeze(str);
1673
+ rb_define_const(Module_Magick, "Long_version", str);
1585
1674
 
1586
1675
  }
@@ -1,6 +1,6 @@
1
- /* $Id: rmutil.c,v 1.60 2005/10/13 23:01:29 rmagick Exp $ */
1
+ /* $Id: rmutil.c,v 1.66 2006/01/20 23:59:46 rmagick Exp $ */
2
2
  /*============================================================================\
3
- | Copyright (C) 2005 by Timothy P. Hunter
3
+ | Copyright (C) 2006 by Timothy P. Hunter
4
4
  | Name: rmutil.c
5
5
  | Author: Tim Hunter
6
6
  | Purpose: Utility functions for RMagick
@@ -130,6 +130,28 @@ char *rm_string_value_ptr_len(volatile VALUE *ptr, long *len)
130
130
  }
131
131
 
132
132
 
133
+ /*
134
+ * Extern: rm_strcasecmp(s1, s2)
135
+ * Purpose: compare s1 and s2 ignoring case
136
+ * Returns: same as strcmp(3)
137
+ */
138
+ int
139
+ rm_strcasecmp(const char *s1, const char *s2)
140
+ {
141
+ while (*s1 && *s2)
142
+ {
143
+ if (toupper(*s1) != toupper(*s2))
144
+ {
145
+ break;
146
+ }
147
+ s1 += 1;
148
+ s2 += 1;
149
+ }
150
+ return (int)(*s1 - *s2);
151
+ }
152
+
153
+
154
+
133
155
  /*
134
156
  * Extern: rm_check_ary_len(ary, len)
135
157
  * Purpose: raise exception if array too short
@@ -523,8 +545,6 @@ Pixel_from_HSL(VALUE class, VALUE hsl)
523
545
  /*
524
546
  Method: Pixel#fcmp(other[, fuzz[, colorspace]])
525
547
  Purpose: Compare pixel values for equality
526
- Notes: The colorspace value is ignored < 5.5.5
527
- and > 5.5.7.
528
548
  */
529
549
  VALUE
530
550
  Pixel_fcmp(int argc, VALUE *argv, VALUE self)
@@ -556,7 +576,7 @@ Pixel_fcmp(int argc, VALUE *argv, VALUE self)
556
576
  Data_Get_Struct(self, Pixel, this);
557
577
  Data_Get_Struct(argv[0], Pixel, that);
558
578
 
559
- #if defined(HAVE_FUZZYCOLORCOMPARE)
579
+ #if defined(HAVE_FUZZYCOLORCOMPARE) || defined(HAVE_ISCOLORSIMILAR)
560
580
  // The FuzzyColorCompare function expects to get the
561
581
  // colorspace and fuzz parameters from an Image structure.
562
582
 
@@ -576,7 +596,11 @@ Pixel_fcmp(int argc, VALUE *argv, VALUE self)
576
596
  image->colorspace = colorspace;
577
597
  image->fuzz = fuzz;
578
598
 
599
+ #if defined(HAVE_ISCOLORSIMILAR)
600
+ equal = IsColorSimilar(image, this, that);
601
+ #else
579
602
  equal = FuzzyColorCompare(image, this, that);
603
+ #endif
580
604
  DestroyImage(image);
581
605
 
582
606
  #else
@@ -623,6 +647,20 @@ DEF_PIXEL_CHANNEL_WRITER(blue)
623
647
  DEF_PIXEL_CHANNEL_WRITER(opacity)
624
648
 
625
649
 
650
+ /*
651
+ Methods: Pixel CMYK attribute accessors
652
+ Purpose: Get/set Pixel attributes
653
+ Note: Pixel is Observable. Setters call changed, notify_observers
654
+ Note: Setters return their argument values for backward compatibility
655
+ to when Pixel was a Struct class.
656
+ */
657
+ DEF_PIXEL_CMYK_CHANNEL_ACCESSOR(cyan, red)
658
+ DEF_PIXEL_CMYK_CHANNEL_ACCESSOR(magenta, green)
659
+ DEF_PIXEL_CMYK_CHANNEL_ACCESSOR(yellow, blue)
660
+ DEF_PIXEL_CMYK_CHANNEL_ACCESSOR(black, opacity)
661
+
662
+
663
+
626
664
  /*
627
665
  Method: Pixel#<=>
628
666
  Purpose: Support Comparable mixin
@@ -1001,6 +1039,19 @@ ColorspaceType_new(ColorspaceType cs)
1001
1039
  {
1002
1040
  const char *name;
1003
1041
 
1042
+ #if defined(HAVE_REC601YCBCRCOLORSPACE)
1043
+ // GM 1.2 defines this symbol to be equal to YCbCrColorspace, so we
1044
+ // can't use it as a case label. GM wants the string version of this
1045
+ // enumerator to be Rec601YCbCrColorspace (see ColorspaceTypeToString
1046
+ // in colorspace.c) so that's what we return for both versions of the
1047
+ // enumerator.
1048
+ if (cs == Rec601YCbCrColorspace)
1049
+ {
1050
+ return rm_enum_new(Class_ColorspaceType
1051
+ , ID2SYM(rb_intern("Rec601YCbCrColorspace")), INT2FIX(cs));
1052
+ }
1053
+ #endif
1054
+
1004
1055
  switch(cs)
1005
1056
  {
1006
1057
  default:
@@ -1043,15 +1094,46 @@ ColorspaceType_new(ColorspaceType cs)
1043
1094
  case sRGBColorspace:
1044
1095
  name = "sRGBColorspace";
1045
1096
  break;
1046
- #if defined(HAVE_HSLCOLORSPACE)
1047
1097
  case HSLColorspace:
1048
1098
  name = "HSLColorspace";
1049
1099
  break;
1050
- #endif
1051
- #if defined(HAVE_HWBCOLORSPACE)
1052
1100
  case HWBColorspace:
1053
1101
  name = "HWBColorspace";
1054
1102
  break;
1103
+ #if defined(HAVE_HSBCOLORSPACE)
1104
+ case HSBColorspace:
1105
+ name = "HSBColorspace";
1106
+ break;
1107
+ #endif
1108
+ #if defined(HAVE_LABCOLORSPACE)
1109
+ case LABColorspace:
1110
+ name = "LABColorspace";
1111
+ break;
1112
+ #endif
1113
+ #if defined(HAVE_CINEONLOGRGBCOLORSPACE)
1114
+ case CineonLogRGBColorspace:
1115
+ name = "CineonLogRGBColorspace";
1116
+ break;
1117
+ #endif
1118
+ #if defined(HAVE_REC601LUMACOLORSPACE)
1119
+ case Rec601LumaColorspace:
1120
+ name = "Rec601LumaColorspace";
1121
+ break;
1122
+ #endif
1123
+ #if defined(HAVE_REC709LUMACOLORSPACE)
1124
+ case Rec709LumaColorspace:
1125
+ name = "Rec709LumaColorspace";
1126
+ break;
1127
+ #endif
1128
+ #if defined(HAVE_REC709YCBCRCOLORSPACE)
1129
+ case Rec709YCbCrColorspace:
1130
+ name = "Rec709YCbCrColorspace";
1131
+ break;
1132
+ #endif
1133
+ #if defined(HAVE_LOGCOLORSPACE)
1134
+ case LogColorspace:
1135
+ name = "LogColorspace";
1136
+ break;
1055
1137
  #endif
1056
1138
  }
1057
1139
 
@@ -2426,27 +2508,16 @@ Compliance_name(ComplianceType *c)
2426
2508
  *c = XPMCompliance;
2427
2509
  return "XPMCompliance";
2428
2510
  }
2429
- #if defined(HAVE_NOCOMPLIANCE)
2430
- else if (*c != NoCompliance)
2431
- {
2432
- return "unknown";
2433
- }
2434
- else
2511
+ else if (*c == NoCompliance)
2435
2512
  {
2436
2513
  *c = NoCompliance;
2437
2514
  return "NoCompliance";
2438
2515
  }
2439
- #else
2440
- else if (*c != UnknownCompliance)
2441
- {
2442
- return "unknown";
2443
- }
2444
2516
  else
2445
2517
  {
2446
- *c = UnknownCompliance;
2447
- return "UnknownCompliance";
2518
+ *c = UndefinedCompliance;
2519
+ return "UndefinedCompliance";
2448
2520
  }
2449
- #endif
2450
2521
  }
2451
2522
 
2452
2523
 
@@ -2763,9 +2834,9 @@ magick_error_handler(
2763
2834
  sprintf(msg,
2764
2835
  #endif
2765
2836
  "%s%s%s",
2766
- GET_MSG(severity, reason),
2837
+ GetLocaleExceptionMessage(severity, reason),
2767
2838
  description ? ": " : "",
2768
- description ? GET_MSG(severity, description) : "");
2839
+ description ? GetLocaleExceptionMessage(severity, description) : "");
2769
2840
 
2770
2841
  #if defined(HAVE_EXCEPTIONINFO_MODULE)
2771
2842
  {
@@ -2790,9 +2861,9 @@ magick_error_handler(
2790
2861
  sprintf(msg,
2791
2862
  #endif
2792
2863
  "RMagick: %s%s%s",
2793
- GET_MSG(severity, reason),
2864
+ GetLocaleExceptionMessage(severity, reason),
2794
2865
  description ? ": " : "",
2795
- description ? GET_MSG(severity, description) : "");
2866
+ description ? GetLocaleExceptionMessage(severity, description) : "");
2796
2867
  rb_warning(msg);
2797
2868
  }
2798
2869
  }
@@ -2897,7 +2968,7 @@ void rm_handle_all_errors(Image *seq)
2897
2968
  badboy = image;
2898
2969
  }
2899
2970
  }
2900
- image = GET_NEXT_IMAGE(image);
2971
+ image = GetNextImageInList(image);
2901
2972
  }
2902
2973
 
2903
2974
  if (badboy)
@@ -2958,14 +3029,6 @@ rm_split(Image *image)
2958
3029
  }
2959
3030
  while (image)
2960
3031
  {
2961
- #if HAVE_REMOVEFIRSTIMAGEFROMLIST
2962
3032
  (void) RemoveFirstImageFromList(&image);
2963
- #else
2964
- Image *next;
2965
-
2966
- next = GET_NEXT_IMAGE(image);
2967
- image->previous = image->next = NULL;
2968
- image = next;
2969
- #endif
2970
3033
  }
2971
3034
  }