2007-11-05  Juan Manuel Guerrero  <juan.guerrero@gmx.de>

	* src/cmsnamed.c [__DJGPP__]: For DJGPP use pathconf to determinate
	at runtime the max path length.

	* src/cmsio1.c [__DJGPP__]: For DJGPP use pathconf to determinate
	at runtime the max path length.

	* src/cmsio0.c [__DJGPP__]: For DJGPP use pathconf to determinate
	at runtime the max path length.

	* src/cmscgats.c [__DJGPP__]: For DJGPP use pathconf to determinate
	at runtime the max path length.
	(isabsolutepath) [__DJGPP__]: Check if path is DOS absolute.

	* samples/icctrans.c [__DJGPP__]: For DJGPP use pathconf to determinate
	at runtime the max path length.

	* include/lcms.h [MAX_PATH]: For DJGPP use 260 as default for MAX_PATH.

	* src/cmscgats.c [__DJGPP__]: Include declarations of djgpp's CVS
	versions of snprintf and vsnprintf.

	* src/cmserr.c [__DJGPP__]: Ditto.

	* src/cmsps.c [__DJGPP__]: Ditto.


2007-08-13  Juan Manuel Guerrero  <juan.guerrero@gmx.de>

	* include/icc34.h.in [__DJGPP__]: Select a sane default for
	different size types.

	* testbed/testcms.c (GetInfoTest): Change illicit hard coded name
	to a clean SFN.
	(Test_sRGB): Ditto
	(RealProfilesTest): Ditto
	(TestDeviceLinkGeneration): Ditto
	(SpeedTest): Ditto
	(SpeedTest2): Ditto
	(TestPostScript): Ditto




diff -aprNU5 lcms-1.17.orig/include/icc34.h.in lcms-1.17/include/icc34.h.in
--- lcms-1.17.orig/include/icc34.h.in	2007-05-25 14:04:02 +0000
+++ lcms-1.17/include/icc34.h.in	2007-11-05 18:54:04 +0000
@@ -204,11 +204,11 @@ typedef short           icInt16Number;
 typedef __int32_t       icInt32Number;
 typedef __int32_t       icInt64Number[2];
 
 
 #else   
-#if defined(__GNUC__) || defined(__unix__) || defined(__unix)
+#if (defined(__GNUC__) || defined(__unix__) || defined(__unix)) && !defined(__DJGPP__)
 
 #include <sys/types.h>
 
 #if defined(__sun) || defined(__hpux) || defined (__MINGW) || defined(__MINGW32__)
 
diff -aprNU5 lcms-1.17.orig/include/lcms.h lcms-1.17/include/lcms.h
--- lcms-1.17.orig/include/lcms.h	2007-07-27 10:00:00 +0000
+++ lcms-1.17/include/lcms.h	2007-11-05 21:35:04 +0000
@@ -211,11 +211,15 @@ typedef void *LPVOID;
 
 #define LOWORD(l)    ((WORD)(l))
 #define HIWORD(l)    ((WORD)((DWORD)(l) >> 16))
 
 #ifndef MAX_PATH
+# ifdef __DJGPP__
+#       define MAX_PATH     (260)  /*  Max value from pathconf.  */
+# else
 #       define MAX_PATH     (256)
+# endif
 #endif
 
 #define cdecl
 #endif
 
diff -aprNU5 lcms-1.17.orig/samples/icctrans.c lcms-1.17/samples/icctrans.c
--- lcms-1.17.orig/samples/icctrans.c	2007-07-27 10:00:00 +0000
+++ lcms-1.17/samples/icctrans.c	2007-11-05 21:36:26 +0000
@@ -83,10 +83,15 @@ static cmsCIELab Lab;
 
 static LPcmsNAMEDCOLORLIST InputColorant = NULL;
 static LPcmsNAMEDCOLORLIST OutputColorant = NULL;
 
 
+#ifdef __DJGPP__
+# undef  MAX_PATH
+# define MAX_PATH  (pathconf(NULL, _PC_NAME_MAX))
+#endif
+
 // isatty replacement
 
 #ifdef _MSC_VER
 #define xisatty(x) _isatty( _fileno( (x) ) )
 #else
diff -aprNU5 lcms-1.17.orig/src/cmscgats.c lcms-1.17/src/cmscgats.c
--- lcms-1.17.orig/src/cmscgats.c	2007-07-27 10:00:00 +0000
+++ lcms-1.17/src/cmscgats.c	2007-11-05 22:41:28 +0000
@@ -20,10 +20,14 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 // 
 // IT8.7 / CGATS.17-200x handling
 
+#ifdef __DJGPP__
+#include "../djgpp/stdio.h"
+#endif
+
 #include "lcms.h"
 
 
 LCMSAPI LCMSHANDLE      LCMSEXPORT cmsIT8Alloc(void);
 LCMSAPI void            LCMSEXPORT cmsIT8Free(LCMSHANDLE IT8);
@@ -416,21 +420,27 @@ LCMSBOOL isabsolutepath(const char *path
 		return FALSE;
 	
     if(path[0] == DIR_CHAR)
 		return TRUE;
 
-#ifndef	NON_WINDOWS
+#if !defined(NON_WINDOWS) || defined(__DJGPP__)
 	if(isalpha(path[0]) && path[1] == ':')
 		return TRUE;
 #endif
 	return FALSE;
 }
 
 // Makes a file path based on a given reference path
 // NOTE: buffer is assumed to point to at least MAX_PATH bytes
 // NOTE: both relPath and basePath are assumed to be no more than MAX_PATH characters long (including the null terminator!)
 // NOTE: this function doesn't check if the path exists or even if it's legal
+
+#ifdef __DJGPP__
+# undef  MAX_PATH
+# define MAX_PATH  (pathconf(NULL, _PC_NAME_MAX))
+#endif
+
 static 
 LCMSBOOL _cmsMakePath(const char *relPath, const char *basePath, char *buffer)
 {
 	if (!isabsolutepath(relPath)) {
 
diff -aprNU5 lcms-1.17.orig/src/cmserr.c lcms-1.17/src/cmserr.c
--- lcms-1.17.orig/src/cmserr.c	2007-07-27 10:00:00 +0000
+++ lcms-1.17/src/cmserr.c	2007-11-05 18:54:04 +0000
@@ -19,10 +19,14 @@
 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 
+#ifdef __DJGPP__
+#include "../djgpp/stdio.h"
+#endif
+
 #include "lcms.h"
 
 
 // As a rule, only the functions visible from API can signal
 // errors.
diff -aprNU5 lcms-1.17.orig/src/cmsio0.c lcms-1.17/src/cmsio0.c
--- lcms-1.17.orig/src/cmsio0.c	2007-07-27 10:00:02 +0000
+++ lcms-1.17/src/cmsio0.c	2007-11-05 21:46:38 +0000
@@ -26,10 +26,16 @@
 
 
 #include "lcms.h"
 
 
+#ifdef __DJGPP__
+# undef  MAX_PATH
+# define MAX_PATH  (pathconf(NULL, _PC_NAME_MAX))
+#endif
+
+
 // Memory-based stream ---------------------------------------------------
 
 typedef struct {
                 LPBYTE Block;           // Points to allocated memory
                 size_t Size;            // Size of allocated memory
diff -aprNU5 lcms-1.17.orig/src/cmsio1.c lcms-1.17/src/cmsio1.c
--- lcms-1.17.orig/src/cmsio1.c	2007-07-27 10:00:02 +0000
+++ lcms-1.17/src/cmsio1.c	2007-11-05 21:46:38 +0000
@@ -23,10 +23,16 @@
 // ICC profile serialization
 
 
 #include "lcms.h"
 
+#ifdef __DJGPP__
+# undef  MAX_PATH
+# define MAX_PATH  (pathconf(NULL, _PC_NAME_MAX))
+#endif
+
+
 // ----------------------------------------------------------------- Tag Serialization
 
 // Alignment of ICC file format uses 4 bytes DWORD
 
 #define ALIGNLONG(x) (((x)+3) & ~(3))         // Aligns to DWORD boundary
diff -aprNU5 lcms-1.17.orig/src/cmsnamed.c lcms-1.17/src/cmsnamed.c
--- lcms-1.17.orig/src/cmsnamed.c	2007-07-27 10:00:02 +0000
+++ lcms-1.17/src/cmsnamed.c	2007-11-05 21:46:36 +0000
@@ -23,10 +23,15 @@
 
 // Named color support
 
 #include "lcms.h"
 
+#ifdef __DJGPP__
+# undef  MAX_PATH
+# define MAX_PATH  (pathconf(NULL, _PC_NAME_MAX))
+#endif
+
 
 
 static
 LPcmsNAMEDCOLORLIST GrowNamedColorList(LPcmsNAMEDCOLORLIST v, int ByElements)
 {           
diff -aprNU5 lcms-1.17.orig/src/cmsps2.c lcms-1.17/src/cmsps2.c
--- lcms-1.17.orig/src/cmsps2.c	2007-07-27 10:00:02 +0000
+++ lcms-1.17/src/cmsps2.c	2007-11-05 18:54:04 +0000
@@ -23,10 +23,14 @@
 
 // Postscript level 2 operators
 
 
 
+#ifdef __DJGPP__
+#include "../djgpp/stdio.h"
+#endif
+
 #include "lcms.h"
 #include <time.h>
 #include <stdarg.h>
 
 // PostScript ColorRenderingDictionary and ColorSpaceArray
diff -aprNU5 lcms-1.17.orig/testbed/testcms.c lcms-1.17/testbed/testcms.c
--- lcms-1.17.orig/testbed/testcms.c	2007-07-27 10:00:02 +0000
+++ lcms-1.17/testbed/testcms.c	2007-11-05 18:54:04 +0000
@@ -1208,11 +1208,11 @@ int GetInfoTest(void)
     const char* Product;
     LPGAMMATABLE Shapes[3];
 
 
     printf("Testing profile decoding (sRGB)");
-    hProfile = cmsOpenProfileFromFile("sRGB Color Space Profile.icm", "rb");
+    hProfile = cmsOpenProfileFromFile("sRGB_Color_Space_Profile.icm", "rb");
     cmsTakeMediaWhitePoint(&WhitePoint, hProfile);
 
     Dot();
     if (!CheckXYZ(&WhitePoint, 0.95045, 1.0, 1.08905)) {
         printf("White point read failed!\n");
@@ -1272,11 +1272,11 @@ int Test_sRGB(void)
        cmsHTRANSFORM xform1, xform2;
        int nMaxErr;
 
        printf("Testing sRGB built-in space");
        
-       In1   = cmsOpenProfileFromFile("sRGB Color Space Profile.icm", "rb");
+       In1   = cmsOpenProfileFromFile("sRGB_Color_Space_Profile.icm", "rb");
        Out1  = cmsCreateXYZProfile();
 
        In2   = cmsCreate_sRGBProfile();
        Out2  = cmsCreateXYZProfile();
 
@@ -1312,11 +1312,11 @@ int RealProfilesTest(void)
 
        // Using LAB identity as output profile, I'm forcing an
        // implicit XYZ => L*a*b conversion in xform1.
        // xform2 is 8 bits - LUT based, and PCS is L*a*b
 
-       In1   = cmsOpenProfileFromFile("sRGB Color Space Profile.icm", "rb");
+       In1   = cmsOpenProfileFromFile("sRGB_Color_Space_Profile.icm", "rb");
        Out1  = cmsCreateXYZProfile();
 
        In2   = cmsOpenProfileFromFile("sRGBSpac.icm", "rb");
        Out2  = cmsCreateXYZProfile();
 
@@ -1516,11 +1516,11 @@ int TestDeviceLinkGeneration()
     int nMaxErr;
 
 
     printf("Testing devicelink generation");
 
-    hsRGB     = cmsOpenProfileFromFile("sRGB Color Space Profile.icm", "r");
+    hsRGB     = cmsOpenProfileFromFile("sRGB_Color_Space_Profile.icm", "r");
     hIdentity = cmsCreateTransform(hsRGB, TYPE_RGBA_16, hsRGB, TYPE_RGBA_16, INTENT_RELATIVE_COLORIMETRIC, 0);
     hDevLink  = cmsTransform2DeviceLink(hIdentity, 0);
     _cmsSaveProfile(hDevLink, "devicelink.icm");
 
     cmsCloseProfile(hDevLink);
@@ -1840,11 +1840,11 @@ void SpeedTest(void)
     cmsHPROFILE hlcmsProfileIn, hlcmsProfileOut;
     cmsHTRANSFORM hlcmsxform;
     Scanline_rgb0 *In;
 	size_t Mb;
    	
-    hlcmsProfileIn  = cmsOpenProfileFromFile("sRGB Color Space Profile.icm", "r");
+    hlcmsProfileIn  = cmsOpenProfileFromFile("sRGB_Color_Space_Profile.icm", "r");
     hlcmsProfileOut = cmsOpenProfileFromFile("sRGBSpac.icm", "r");
 
     hlcmsxform  = cmsCreateTransform(hlcmsProfileIn, TYPE_RGB_16, hlcmsProfileOut, TYPE_RGB_16, INTENT_PERCEPTUAL, cmsFLAGS_NOTCACHE);
 
 	Mb = 256*256*256*sizeof(Scanline_rgb0);
@@ -1896,11 +1896,11 @@ void SpeedTest2(void)
     cmsHTRANSFORM hlcmsxform;
     Scanline_rgb8 *In;
 	size_t Mb;
    
    
-    hlcmsProfileIn  = cmsOpenProfileFromFile("sRGB Color Space Profile.icm", "r");
+    hlcmsProfileIn  = cmsOpenProfileFromFile("sRGB_Color_Space_Profile.icm", "r");
     hlcmsProfileOut = cmsOpenProfileFromFile("sRGBSpac.icm", "r");
 
     hlcmsxform  = cmsCreateTransform(hlcmsProfileIn, TYPE_RGB_8, hlcmsProfileOut, TYPE_RGB_8, INTENT_PERCEPTUAL, cmsFLAGS_NOTCACHE);
 
 	Mb = 256*256*256*sizeof(Scanline_rgb8);
@@ -2263,12 +2263,12 @@ void GenerateCRD(const char* cOutProf)
 }
 
 static 
 int TestPostScript()
 {
-	GenerateCSA("sRGB Color Space Profile.icm");
-	GenerateCRD("sRGB Color Space Profile.icm");
+	GenerateCSA("sRGB_Color_Space_Profile.icm");
+	GenerateCRD("sRGB_Color_Space_Profile.icm");
 	GenerateCSA(NULL);
 	GenerateCRD(NULL);
 
 	return 1;
 }
