diff --git a/MagickCore/MagickCore.h b/MagickCore/MagickCore.h
index e38dc64..4621d76 100644
--- a/MagickCore/MagickCore.h
+++ b/MagickCore/MagickCore.h
@@ -87,6 +87,7 @@
#include "MagickCore/deprecate.h"
#include "MagickCore/display.h"
#include "MagickCore/distort.h"
+#include "MagickCore/distribute-cache.h"
#include "MagickCore/draw.h"
#include "MagickCore/effect.h"
#include "MagickCore/enhance.h"
diff --git a/MagickCore/Makefile.am b/MagickCore/Makefile.am
index 473b7b6..16e919e 100644
--- a/MagickCore/Makefile.am
+++ b/MagickCore/Makefile.am
@@ -123,6 +123,9 @@
MagickCore/display-private.h \
MagickCore/distort.c \
MagickCore/distort.h \
+ MagickCore/distribute-cache.c \
+ MagickCore/distribute-cache.h \
+ MagickCore/distribute-cache-private.h \
MagickCore/draw.c \
MagickCore/draw.h \
MagickCore/draw-private.h \
@@ -332,6 +335,7 @@
MagickCore/deprecate.h \
MagickCore/display.h \
MagickCore/distort.h \
+ MagickCore/distribute-cache.h \
MagickCore/draw.h \
MagickCore/effect.h \
MagickCore/enhance.h \
@@ -416,6 +420,7 @@
MagickCore/delegate-private.h \
MagickCore/delegate-private.h \
MagickCore/display-private.h \
+ MagickCore/distribute-cache-private.h \
MagickCore/draw-private.h \
MagickCore/exception-private.h \
MagickCore/fx-private.h \
diff --git a/MagickCore/cache-private.h b/MagickCore/cache-private.h
index cb2b3ec..6ebe155 100644
--- a/MagickCore/cache-private.h
+++ b/MagickCore/cache-private.h
@@ -24,13 +24,13 @@
#include <time.h>
#include "MagickCore/cache.h"
+#include "MagickCore/distribute-cache.h"
+#include "MagickCore/distribute-cache-private.h"
#include "MagickCore/pixel.h"
#include "MagickCore/random_.h"
#include "MagickCore/thread-private.h"
#include "MagickCore/semaphore.h"
-#define MaxNumberDistributedCacheClients 32
-
typedef void
*Cache;
@@ -102,17 +102,6 @@
destroy_pixel_handler;
} CacheMethods;
-typedef struct _DistributedCacheInfo
-{
-#if defined(MAGICKCORE_HAVE_SOCKET)
- int
- server;
-#endif
-
- size_t
- session;
-} DistributedCacheInfo;
-
typedef struct _NexusInfo
NexusInfo;
@@ -190,7 +179,7 @@
ssize_t
number_connections;
- DistributedCacheInfo
+ DistributeCacheInfo
connection[MaxNumberDistributedCacheClients];
MagickBooleanType
diff --git a/MagickCore/cache.c b/MagickCore/cache.c
index c4aac1d..0a44b11 100644
--- a/MagickCore/cache.c
+++ b/MagickCore/cache.c
@@ -1112,131 +1112,6 @@
% %
% %
% %
-+ D i s t r i b u t e d P i x e l C a c h e %
-% %
-% %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% DistributedPixelCache() waits on the specified port for commands to
-% create, read, update, or destroy a pixel cache.
-%
-% The format of the DistributedPixelCache() method is:
-%
-% void DistributedPixelCache(const size_t port)
-%
-% A description of each parameter follows:
-%
-% o port: connect the distributed pixel cache at this port.
-%
-*/
-MagickExport void DistributedPixelCache(const size_t port)
-{
-#if defined(MAGICKCORE_HAVE_SOCKET)
- char
- buffer[MaxTextExtent];
-
- int
- cache_socket,
- cache_client,
- status;
-
- socklen_t
- length,
- one;
-
- ssize_t
- count;
-
- struct sockaddr_in
- address;
-
- cache_socket=socket(AF_INET,SOCK_STREAM,0);
- if (cache_socket == -1)
- {
- perror("Distributed pixel cache: server socket");
- exit(1);
- }
- one=1;
- status=setsockopt(cache_socket,SOL_SOCKET,SO_REUSEADDR,&one,(socklen_t)
- sizeof(one));
- if (status == -1)
- {
- perror("Distributed pixel cache: server setsockopt");
- exit(1);
- }
- (void) ResetMagickMemory(&address,0,sizeof(address));
- address.sin_family=AF_INET;
- address.sin_port=htons(port);
- address.sin_addr.s_addr=INADDR_ANY;
- status=bind(cache_socket,(struct sockaddr *) &address,(socklen_t)
- sizeof(address));
- if (status == -1)
- {
- perror("Distributed pixel cache: server bind");
- exit(1);
- }
- status=listen(cache_socket,5);
- if (status == -1)
- {
- perror("Distributed pixel cache: server listen");
- exit(1);
- }
- (void) fprintf(stdout,
- "Distributed pixel cache server: waiting for client on port %d\n",(int)
- port);
- (void) fflush(stdout);
- for ( ; ; )
- {
- length=(socklen_t) sizeof(address);
- cache_client=accept(cache_socket,(struct sockaddr *) &address,&length);
- (void) fprintf(stdout,"Connection from (%s, %d)\n",
- inet_ntoa(address.sin_addr),(int) ntohs(address.sin_port));
- count=recv(cache_client,buffer,1,0);
- buffer[count]='\0';
- switch (*buffer)
- {
- case 'c':
- {
- /*
- Create cache.
- */
- break;
- }
- case 'r':
- {
- /*
- Rad cache.
- */
- break;
- }
- case 'u':
- {
- /*
- Update cache.
- */
- break;
- }
- case 'd':
- {
- /*
- Delete cache.
- */
- break;
- }
- }
- }
-#else
- (void) ThrowMagickException(exception,GetMagickModule(),MissingDelegateError,
- "DelegateLibrarySupportNotBuiltIn","'%s' (socket)",image_info->filename);
-#endif
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% %
-% %
+ D e s t r o y I m a g e P i x e l C a c h e %
% %
% %
diff --git a/MagickCore/cache.h b/MagickCore/cache.h
index c2f5ad6..8c2311c 100644
--- a/MagickCore/cache.h
+++ b/MagickCore/cache.h
@@ -67,7 +67,6 @@
const size_t,ExceptionInfo *) magick_hot_spot;
extern MagickExport void
- DistributedPixelCache(const size_t),
*GetAuthenticMetacontent(const Image *);
#if defined(__cplusplus) || defined(c_plusplus)
diff --git a/MagickCore/distribute-cache-private.h b/MagickCore/distribute-cache-private.h
new file mode 100644
index 0000000..fc87da6
--- /dev/null
+++ b/MagickCore/distribute-cache-private.h
@@ -0,0 +1,38 @@
+/*
+ Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization
+ dedicated to making software imaging solutions freely available.
+
+ You may not use this file except in compliance with the License.
+ obtain a copy of the License at
+
+ http://www.imagemagick.org/script/license.php
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ MagickCore distributed cache private methods.
+*/
+#ifndef _MAGICKCORE_DISTRIBUTE_CACHE_PRIVATE_H
+#define _MAGICKCORE_DISTRIBUTE_CACHE_PRIVATE_H
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+#define MaxNumberDistributedCacheClients 32
+
+typedef struct _DistributeCacheInfo
+{
+#if defined(MAGICKCORE_HAVE_SOCKET)
+ int
+ server;
+#endif
+
+ size_t
+ session;
+} DistributeCacheInfo;
+
+#endif
diff --git a/MagickCore/distribute-cache.c b/MagickCore/distribute-cache.c
new file mode 100644
index 0000000..15a2011
--- /dev/null
+++ b/MagickCore/distribute-cache.c
@@ -0,0 +1,185 @@
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% DDDD IIIII SSSSS TTTTT RRRR IIIII BBBB U U TTTTT EEEEE %
+% D D I SS T R R I B B U U T E %
+% D D I SSS T RRRR I BBBB U U T EEE %
+% D D I SS T R R I B B U U T E %
+% DDDDA IIIII SSSSS T R R IIIII BBBB UUU T EEEEE %
+% %
+% CCCC AAA CCCC H H EEEEE %
+% C A A C H H E %
+% C AAAAA C HHHHH EEE %
+% C A A C H H E %
+% CCCC A A CCCC H H EEEEE %
+% %
+% %
+% MagickCore Distributed Pixel Cache Methods %
+% %
+% Software Design %
+% John Cristy %
+% January 2013 %
+% %
+% %
+% Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization %
+% dedicated to making software imaging solutions freely available. %
+% %
+% You may not use this file except in compliance with the License. You may %
+% obtain a copy of the License at %
+% %
+% http://www.imagemagick.org/script/license.php %
+% %
+% Unless required by applicable law or agreed to in writing, software %
+% distributed under the License is distributed on an "AS IS" BASIS, %
+% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %
+% See the License for the specific language governing permissions and %
+% limitations under the License. %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% A distributed pixel cache is an extension of the traditional pixel cache
+% available on a single host. The distributed pixel cache may span multiple
+% servers so that it can grow in size and transactional capacity to support
+% very large images. Start up the pixel cache server on one or more machines.
+% When you read or operate on an image and the local pixel cache resources are
+% exhausted, ImageMagick contacts one or more of these remote pixel servers to
+% store or retrieve pixels.
+%
+*/
+
+/*
+ Include declarations.
+*/
+#include "MagickCore/studio.h"
+#include "MagickCore/memory_.h"
+#if defined(MAGICKCORE_HAVE_SOCKET)
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#endif
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
++ P i x e l C a c h e S e r v e r %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PixelCacheServer() waits on the specified port for commands to create, read,
+% update, or destroy a pixel cache.
+%
+% The format of the PixelCacheServer() method is:
+%
+% void PixelCacheServer(const size_t port)
+%
+% A description of each parameter follows:
+%
+% o port: connect the distributed pixel cache at this port.
+%
+*/
+MagickExport void PixelCacheServer(const size_t port)
+{
+#if defined(MAGICKCORE_HAVE_SOCKET)
+ char
+ buffer[MaxTextExtent];
+
+ int
+ cache_socket,
+ cache_client,
+ status;
+
+ socklen_t
+ length,
+ one;
+
+ ssize_t
+ count;
+
+ struct sockaddr_in
+ address;
+
+ cache_socket=socket(AF_INET,SOCK_STREAM,0);
+ if (cache_socket == -1)
+ {
+ perror("Distributed pixel cache: server socket");
+ exit(1);
+ }
+ one=1;
+ status=setsockopt(cache_socket,SOL_SOCKET,SO_REUSEADDR,&one,(socklen_t)
+ sizeof(one));
+ if (status == -1)
+ {
+ perror("Distributed pixel cache: server setsockopt");
+ exit(1);
+ }
+ (void) ResetMagickMemory(&address,0,sizeof(address));
+ address.sin_family=AF_INET;
+ address.sin_port=htons(port);
+ address.sin_addr.s_addr=INADDR_ANY;
+ status=bind(cache_socket,(struct sockaddr *) &address,(socklen_t)
+ sizeof(address));
+ if (status == -1)
+ {
+ perror("Distributed pixel cache: server bind");
+ exit(1);
+ }
+ status=listen(cache_socket,5);
+ if (status == -1)
+ {
+ perror("Distributed pixel cache: server listen");
+ exit(1);
+ }
+ (void) fprintf(stdout,
+ "Distributed pixel cache server: waiting for client on port %d\n",(int)
+ port);
+ (void) fflush(stdout);
+ for ( ; ; )
+ {
+ length=(socklen_t) sizeof(address);
+ cache_client=accept(cache_socket,(struct sockaddr *) &address,&length);
+ (void) fprintf(stdout,"Connection from (%s, %d)\n",
+ inet_ntoa(address.sin_addr),(int) ntohs(address.sin_port));
+ count=recv(cache_client,buffer,1,0);
+ buffer[count]='\0';
+ switch (*buffer)
+ {
+ case 'c':
+ {
+ /*
+ Create cache.
+ */
+ break;
+ }
+ case 'r':
+ {
+ /*
+ Read cache.
+ */
+ break;
+ }
+ case 'u':
+ {
+ /*
+ Update cache.
+ */
+ break;
+ }
+ case 'd':
+ {
+ /*
+ Delete cache.
+ */
+ break;
+ }
+ }
+ }
+#else
+ (void) ThrowMagickException(exception,GetMagickModule(),MissingDelegateError,
+ "DelegateLibrarySupportNotBuiltIn","'%s' (socket)",image_info->filename);
+#endif
+}
diff --git a/MagickCore/distribute-cache.h b/MagickCore/distribute-cache.h
new file mode 100644
index 0000000..6838e4d
--- /dev/null
+++ b/MagickCore/distribute-cache.h
@@ -0,0 +1,32 @@
+/*
+ Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization
+ dedicated to making software imaging solutions freely available.
+
+ You may not use this file except in compliance with the License.
+ obtain a copy of the License at
+
+ http://www.imagemagick.org/script/license.php
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ MagickCore distributed cache methods.
+*/
+#ifndef _MAGICKCORE_DISTRIBUTE_CACHE_H
+#define _MAGICKCORE_DISTRIBUTE_CACHE_H
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+extern MagickExport void
+ PixelCacheServer(const size_t);
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
+#endif
diff --git a/MagickCore/magick-baseconfig.h b/MagickCore/magick-baseconfig.h
index 7903457..77969af 100644
--- a/MagickCore/magick-baseconfig.h
+++ b/MagickCore/magick-baseconfig.h
@@ -1524,6 +1524,9 @@
/* Define to appropriate substitue if compiler does not have __func__ */
/* #undef __func__ */
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
/* Define to `int' if <sys/types.h> doesn't define. */
/* #undef gid_t */
diff --git a/MagickCore/version.h b/MagickCore/version.h
index 8847b22..bfc731c 100644
--- a/MagickCore/version.h
+++ b/MagickCore/version.h
@@ -27,7 +27,7 @@
*/
#define MagickPackageName "ImageMagick"
#define MagickCopyright "Copyright (C) 1999-2013 ImageMagick Studio LLC"
-#define MagickSVNRevision "10535:10562"
+#define MagickSVNRevision "10572:10583M"
#define MagickLibVersion 0x700
#define MagickLibVersionText "7.0.0"
#define MagickLibVersionNumber 8,0,0
diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c
index 2414829..0d3ebe3 100644
--- a/MagickWand/mogrify.c
+++ b/MagickWand/mogrify.c
@@ -46,8 +46,8 @@
*/
#include "MagickWand/studio.h"
#include "MagickWand/MagickWand.h"
-#include "MagickCore/image-private.h"
#include "MagickWand/mogrify-private.h"
+#include "MagickCore/image-private.h"
#include "MagickCore/monitor-private.h"
#include "MagickCore/string-private.h"
#include "MagickCore/thread-private.h"
@@ -152,7 +152,7 @@
(void) SetLogEventMask(argv[++i]);
if (LocaleCompare("-distribute-cache",option) == 0)
{
- DistributedPixelCache(StringToUnsignedLong(argv[++i]));
+ PixelCacheServer(StringToUnsignedLong(argv[++i]));
exit(0);
}
if (LocaleCompare("-duration",option) == 0)
diff --git a/Makefile.in b/Makefile.in
index 24d043a..12354e9 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -432,7 +432,9 @@
MagickCore/delegate-private.h MagickCore/deprecate.c \
MagickCore/deprecate.h MagickCore/display.c \
MagickCore/display.h MagickCore/display-private.h \
- MagickCore/distort.c MagickCore/distort.h MagickCore/draw.c \
+ MagickCore/distort.c MagickCore/distort.h \
+ MagickCore/distribute-cache.c MagickCore/distribute-cache.h \
+ MagickCore/distribute-cache-private.h MagickCore/draw.c \
MagickCore/draw.h MagickCore/draw-private.h \
MagickCore/effect.c MagickCore/effect.h MagickCore/enhance.c \
MagickCore/enhance.h MagickCore/exception.c \
@@ -561,6 +563,7 @@
MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-deprecate.lo \
MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-display.lo \
MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distort.lo \
+ MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo \
MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.lo \
MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-effect.lo \
MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-enhance.lo \
@@ -4077,6 +4080,9 @@
MagickCore/display-private.h \
MagickCore/distort.c \
MagickCore/distort.h \
+ MagickCore/distribute-cache.c \
+ MagickCore/distribute-cache.h \
+ MagickCore/distribute-cache-private.h \
MagickCore/draw.c \
MagickCore/draw.h \
MagickCore/draw-private.h \
@@ -4281,6 +4287,7 @@
MagickCore/deprecate.h \
MagickCore/display.h \
MagickCore/distort.h \
+ MagickCore/distribute-cache.h \
MagickCore/draw.h \
MagickCore/effect.h \
MagickCore/enhance.h \
@@ -4365,6 +4372,7 @@
MagickCore/delegate-private.h \
MagickCore/delegate-private.h \
MagickCore/display-private.h \
+ MagickCore/distribute-cache-private.h \
MagickCore/draw-private.h \
MagickCore/exception-private.h \
MagickCore/fx-private.h \
@@ -5343,6 +5351,9 @@
MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distort.lo: \
MagickCore/$(am__dirstamp) \
MagickCore/$(DEPDIR)/$(am__dirstamp)
+MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo: \
+ MagickCore/$(am__dirstamp) \
+ MagickCore/$(DEPDIR)/$(am__dirstamp)
MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.lo: \
MagickCore/$(am__dirstamp) \
MagickCore/$(DEPDIR)/$(am__dirstamp)
@@ -6740,6 +6751,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-deprecate.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-display.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distort.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-effect.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-enhance.Plo@am__quote@
@@ -7285,6 +7297,13 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distort.lo `test -f 'MagickCore/distort.c' || echo '$(srcdir)/'`MagickCore/distort.c
+MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo: MagickCore/distribute-cache.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo -MD -MP -MF MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.Tpo -c -o MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo `test -f 'MagickCore/distribute-cache.c' || echo '$(srcdir)/'`MagickCore/distribute-cache.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.Tpo MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='MagickCore/distribute-cache.c' object='MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo `test -f 'MagickCore/distribute-cache.c' || echo '$(srcdir)/'`MagickCore/distribute-cache.c
+
MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.lo: MagickCore/draw.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.lo -MD -MP -MF MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.Tpo -c -o MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.lo `test -f 'MagickCore/draw.c' || echo '$(srcdir)/'`MagickCore/draw.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.Tpo MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.Plo
diff --git a/config/config.h.in b/config/config.h.in
index 4bc3873..f3b4e1c 100644
--- a/config/config.h.in
+++ b/config/config.h.in
@@ -1043,6 +1043,9 @@
/* Define to appropriate substitue if compiler does not have __func__ */
#undef __func__
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
/* Define to `int' if <sys/types.h> doesn't define. */
#undef gid_t
diff --git a/configure b/configure
index cfe36e4..235a684 100755
--- a/configure
+++ b/configure
@@ -3650,7 +3650,7 @@
MAGICK_LIBRARY_VERSION_INFO=$MAGICK_LIBRARY_CURRENT:$MAGICK_LIBRARY_REVISION:$MAGICK_LIBRARY_AGE
-MAGICK_SVN_REVISION=10535:10562
+MAGICK_SVN_REVISION=10572:10583M
@@ -21884,9 +21884,123 @@
interpval=$ac_cv_sys_interpreter
-# If the C compiler supports the keyword inline, do nothing. Otherwise
-# define inline to __inline__ or __inline if it accepts one of those,
-# otherwise define inline to be empty.
+#
+# Checks for language qualifiers and semantics.
+#
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether char is unsigned" >&5
+$as_echo_n "checking whether char is unsigned... " >&6; }
+if ${ac_cv_c_char_unsigned+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((char) -1) < 0)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_char_unsigned=no
+else
+ ac_cv_c_char_unsigned=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5
+$as_echo "$ac_cv_c_char_unsigned" >&6; }
+if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
+ $as_echo "#define __CHAR_UNSIGNED__ 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
+$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
+if ${ac_cv_c_const+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this sort of thing. */
+ typedef int charset[2];
+ const charset cs = { 0, 0 };
+ /* SunOS 4.1.1 cc rejects this. */
+ char const *const *pcpcc;
+ char **ppc;
+ /* NEC SVR4.0.2 mips cc rejects this. */
+ struct point {int x, y;};
+ static struct point const zero = {0,0};
+ /* AIX XL C 1.02.0.0 rejects this.
+ It does not let you subtract one const X* pointer from another in
+ an arm of an if-expression whose if-part is not a constant
+ expression */
+ const char *g = "string";
+ pcpcc = &g + (g ? g-g : 0);
+ /* HPUX 7.0 cc rejects these. */
+ ++pcpcc;
+ ppc = (char**) pcpcc;
+ pcpcc = (char const *const *) ppc;
+ { /* SCO 3.2v4 cc rejects this sort of thing. */
+ char tx;
+ char *t = &tx;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+ if (s) return 0;
+ }
+ { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
+ int x[] = {25, 17};
+ const int *foo = &x[0];
+ ++foo;
+ }
+ { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+ typedef const int *iptr;
+ iptr p = 0;
+ ++p;
+ }
+ { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; } bx;
+ struct s *b = &bx; b->j = 5;
+ }
+ { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+ if (!foo) return 0;
+ }
+ return !cs[0] && !zero.x;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_const=yes
+else
+ ac_cv_c_const=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
+$as_echo "$ac_cv_c_const" >&6; }
+if test $ac_cv_c_const = no; then
+
+$as_echo "#define const /**/" >>confdefs.h
+
+fi
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
$as_echo_n "checking for inline... " >&6; }
if ${ac_cv_c_inline+:} false; then :
@@ -21929,10 +22043,6 @@
;;
esac
-
-# If the C compiler supports the keyword restrict, do nothing. Otherwise
-# define restrict to __restrict__ or __restrict if it accepts one of those,
-# otherwise define restrict to be empty.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
$as_echo_n "checking for C/C++ restrict keyword... " >&6; }
if ${ac_cv_c_restrict+:} false; then :
@@ -21979,6 +22089,40 @@
;;
esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5
+$as_echo_n "checking for working volatile... " >&6; }
+if ${ac_cv_c_volatile+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+volatile int x;
+int * volatile y = (int *) 0;
+return !x && !y;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_volatile=yes
+else
+ ac_cv_c_volatile=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5
+$as_echo "$ac_cv_c_volatile" >&6; }
+if test $ac_cv_c_volatile = no; then
+
+$as_echo "#define volatile /**/" >>confdefs.h
+
+fi
+
# If words are stored with the most significant byte first (like
# Motorola and SPARC CPUs), define `WORDS_BIGENDIAN'.
@@ -22866,42 +23010,6 @@
fi
-# If the C type char is unsigned, define __CHAR_UNSIGNED__, unless the
-# C compiler predefines it.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether char is unsigned" >&5
-$as_echo_n "checking whether char is unsigned... " >&6; }
-if ${ac_cv_c_char_unsigned+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((char) -1) < 0)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_c_char_unsigned=no
-else
- ac_cv_c_char_unsigned=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5
-$as_echo "$ac_cv_c_char_unsigned" >&6; }
-if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
- $as_echo "#define __CHAR_UNSIGNED__ 1" >>confdefs.h
-
-fi
-
-
# Float_t and double_t are intended to be the the most efficient type.
ac_fn_c_check_type "$LINENO" "float_t" "ac_cv_type_float_t" "#include <math.h>
"