]> granicus.if.org Git - imagemagick/blobdiff - MagickCore/resource.c
(no commit message)
[imagemagick] / MagickCore / resource.c
index ae10d221ac23049e054547b771fc286ef1f3d2b4..b28af7d478f17b56e901d770ded5ff4e9658cefa 100644 (file)
@@ -365,9 +365,6 @@ MagickExport MagickBooleanType GetPathTemplate(char *path)
   MagickBooleanType
     status;
 
-  register char
-    *p;
-
   struct stat
     attributes;
 
@@ -417,9 +414,24 @@ MagickExport MagickBooleanType GetPathTemplate(char *path)
     (void) FormatLocaleString(path,MaxTextExtent,"%smagick-%.20gXXXXXXXXXXXX",
       directory,(double) getpid());
   else
-    (void) FormatLocaleString(path,MaxTextExtent,"%s%smagick-%.20gXXXXXXXXXXXX",
-      directory,DirectorySeparator,(double) getpid());
+    (void) FormatLocaleString(path,MaxTextExtent,
+      "%s%smagick-%.20gXXXXXXXXXXXX",directory,DirectorySeparator,
+      (double) getpid());
   directory=DestroyString(directory);
+#if defined(MAGICKCORE_WINDOWS_SUPPORT)
+  {
+    register char
+      *p;
+
+    /*
+      Ghostscript does not like backslashes so we need to replace them. The
+      forward slash also works under Windows.
+    */
+    for (p=(path[1] == *DirectorySeparator ? path+2 : path); *p != '\0'; p++)
+      if (*p == *DirectorySeparator)
+        *p='/';
+  }
+#endif
   return(MagickTrue);
 }
 
@@ -955,7 +967,8 @@ MagickPrivate MagickBooleanType ResourceComponentGenesis(void)
   /*
     Set Magick resource limits.
   */
-  resource_semaphore=AcquireSemaphoreInfo();
+  if (resource_semaphore == (SemaphoreInfo *) NULL)
+    resource_semaphore=AcquireSemaphoreInfo();
   pagesize=GetMagickPageSize();
   pages=(-1);
 #if defined(MAGICKCORE_HAVE_SYSCONF) && defined(_SC_PHYS_PAGES)