1--- misc/SampleICC-1.3.2/configure Mon Aug 20 22:10:59 2007 2+++ misc/build/SampleICC-1.3.2/configure Fri Jan 25 14:23:09 2008 3@@ -19991,7 +19991,7 @@ 4 5 6 7- ac_config_files="$ac_config_files Makefile IccProfLib/Makefile Tools/Makefile Tools/CmdLine/Makefile Tools/CmdLine/IccApplyNamedCmm/Makefile Tools/CmdLine/IccApplyProfiles/Makefile Tools/CmdLine/IccDumpProfile/Makefile Tools/CmdLine/IccProfLibTest/Makefile Tools/CmdLine/IccStripUnknownTags/Makefile Tools/CmdLine/IccV4ToMPE/Makefile Contrib/Makefile Contrib/CmdLine/Makefile Contrib/CmdLine/create_CLUT_profile/Makefile Contrib/CmdLine/create_CLUT_profile_from_probe/Makefile Contrib/CmdLine/create_display_profile/Makefile Contrib/ICC_utils/Makefile Contrib/Mac_OS_X/Makefile Contrib/Mac_OS_X/create_probe/Makefile Contrib/Mac_OS_X/extract_probe_data/Makefile Contrib/examples/Makefile Contrib/examples/RSR/Makefile Contrib/tests/Makefile Contrib/tests/flatten_AToB_tag/Makefile Contrib/tests/generate_device_codes/Makefile Contrib/tests/reconstruct_measurements/Makefile Contrib/tests/round_trip_PCS_LAB/Makefile" 8+ ac_config_files="$ac_config_files Makefile IccProfLib/Makefile Tools/Makefile Tools/CmdLine/Makefile Tools/CmdLine/IccDumpProfile/Makefile Tools/CmdLine/IccProfLibTest/Makefile Tools/CmdLine/IccStripUnknownTags/Makefile Tools/CmdLine/IccV4ToMPE/Makefile Contrib/Makefile Contrib/CmdLine/Makefile Contrib/ICC_utils/Makefile Contrib/CmdLine/create_sRGB_profile/Makefile" 9 cat >confcache <<\_ACEOF 10 # This file is a shell script that caches the results of configure 11 # tests run on this system so they can be shared between configure 12@@ -20571,8 +20571,6 @@ 13 "IccProfLib/Makefile" ) CONFIG_FILES="$CONFIG_FILES IccProfLib/Makefile" ;; 14 "Tools/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/Makefile" ;; 15 "Tools/CmdLine/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/Makefile" ;; 16- "Tools/CmdLine/IccApplyNamedCmm/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccApplyNamedCmm/Makefile" ;; 17- "Tools/CmdLine/IccApplyProfiles/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccApplyProfiles/Makefile" ;; 18 "Tools/CmdLine/IccDumpProfile/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccDumpProfile/Makefile" ;; 19 "Tools/CmdLine/IccProfLibTest/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccProfLibTest/Makefile" ;; 20 "Tools/CmdLine/IccStripUnknownTags/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccStripUnknownTags/Makefile" ;; 21@@ -20579,20 +20577,8 @@ 22 "Tools/CmdLine/IccV4ToMPE/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccV4ToMPE/Makefile" ;; 23 "Contrib/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/Makefile" ;; 24 "Contrib/CmdLine/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/Makefile" ;; 25- "Contrib/CmdLine/create_CLUT_profile/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/create_CLUT_profile/Makefile" ;; 26- "Contrib/CmdLine/create_CLUT_profile_from_probe/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/create_CLUT_profile_from_probe/Makefile" ;; 27- "Contrib/CmdLine/create_display_profile/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/create_display_profile/Makefile" ;; 28+ "Contrib/CmdLine/create_sRGB_profile/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/create_sRGB_profile/Makefile" ;; 29 "Contrib/ICC_utils/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/ICC_utils/Makefile" ;; 30- "Contrib/Mac_OS_X/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/Mac_OS_X/Makefile" ;; 31- "Contrib/Mac_OS_X/create_probe/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/Mac_OS_X/create_probe/Makefile" ;; 32- "Contrib/Mac_OS_X/extract_probe_data/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/Mac_OS_X/extract_probe_data/Makefile" ;; 33- "Contrib/examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/examples/Makefile" ;; 34- "Contrib/examples/RSR/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/examples/RSR/Makefile" ;; 35- "Contrib/tests/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/tests/Makefile" ;; 36- "Contrib/tests/flatten_AToB_tag/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/tests/flatten_AToB_tag/Makefile" ;; 37- "Contrib/tests/generate_device_codes/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/tests/generate_device_codes/Makefile" ;; 38- "Contrib/tests/reconstruct_measurements/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/tests/reconstruct_measurements/Makefile" ;; 39- "Contrib/tests/round_trip_PCS_LAB/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/tests/round_trip_PCS_LAB/Makefile" ;; 40 "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; 41 *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 42 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} 43--- misc/SampleICC-1.3.2/Contrib/Makefile.in Mon Aug 20 22:10:37 2007 44+++ misc/build/SampleICC-1.3.2/Contrib/Makefile.in Fri Jan 25 14:23:09 2008 45@@ -103,18 +103,12 @@ 46 47 SUBDIRS = \ 48 ICC_utils \ 49- CmdLine \ 50- examples \ 51- Mac_OS_X \ 52- tests 53+ CmdLine 54 55 56 DIST_SUBDIRS = \ 57 ICC_utils \ 58- CmdLine \ 59- examples \ 60- Mac_OS_X \ 61- tests 62+ CmdLine 63 64 subdir = Contrib 65 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 66--- misc/SampleICC-1.3.2/Contrib/CmdLine/Makefile.in Mon Aug 20 22:10:34 2007 67+++ misc/build/SampleICC-1.3.2/Contrib/CmdLine/Makefile.in Fri Jan 25 14:23:09 2008 68@@ -102,15 +102,11 @@ 69 install_sh = @install_sh@ 70 71 SUBDIRS = \ 72- create_CLUT_profile \ 73- create_CLUT_profile_from_probe \ 74- create_display_profile 75+ create_sRGB_profile 76 77 78 DIST_SUBDIRS = \ 79- create_CLUT_profile \ 80- create_CLUT_profile_from_probe \ 81- create_display_profile 82+ create_sRGB_profile 83 84 subdir = Contrib/CmdLine 85 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs 86--- misc/SampleICC-1.3.2/Contrib/ICC_utils/Makefile.in Mon Aug 20 22:10:35 2007 87+++ misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Makefile.in Fri Jan 25 14:23:09 2008 88@@ -133,7 +133,7 @@ 89 CONFIG_CLEAN_FILES = 90 LTLIBRARIES = $(lib_LTLIBRARIES) 91 92-libICC_utils_la_LIBADD = 93+libICC_utils_la_LIBADD = $(LDADD) 94 am_libICC_utils_la_OBJECTS = Stubs.lo CAT.lo CLUT.lo CLUT_stuffer.lo \ 95 ICC_tool_exception.lo Vetters.lo 96 libICC_utils_la_OBJECTS = $(am_libICC_utils_la_OBJECTS) 97--- misc/SampleICC-1.3.2/Contrib/ICC_utils/Stubs.h Mon Aug 20 22:04:53 2007 98+++ misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Stubs.h Fri Jan 25 14:23:09 2008 99@@ -130,7 +130,7 @@ 100 101 // use one of these to force desired sort order in assoc. containers of DPX 102 bool 103- DPX::operator<(const DPX& p) const 104+ operator<(const DPX& p) const 105 { 106 return (r_ != p.r_) ? (r_ < p.r_) : ((g_ != p.g_) ? (g_ < p.g_) : (b_ < p.b_)); 107 } 108--- misc/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.cpp Mon Aug 20 22:04:54 2007 109+++ misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.cpp Fri Jan 25 14:57:06 2008 110@@ -1,322 +1,329 @@ 111-/* 112- File: Vetters.cpp 113- 114- Contains: Utility functions to handle common argument-checking tasks, in a 115- way that hides platform-specific details from higher-level code. 116- 117- Version: V1 118- 119- Copyright: © see below 120- */ 121- 122-/* 123- * The ICC Software License, Version 0.1 124- * 125- * 126- * Copyright (c) 2003-2006 The International Color Consortium. All rights 127- * reserved. 128- * 129- * Redistribution and use in source and binary forms, with or without 130- * modification, are permitted provided that the following conditions 131- * are met: 132- * 133- * 1. Redistributions of source code must retain the above copyright 134- * notice, this list of conditions and the following disclaimer. 135- * 136- * 2. Redistributions in binary form must reproduce the above copyright 137- * notice, this list of conditions and the following disclaimer in 138- * the documentation and/or other materials provided with the 139- * distribution. 140- * 141- * 3. The end-user documentation included with the redistribution, 142- * if any, must include the following acknowledgment: 143- * "This product includes software developed by the 144- * The International Color Consortium (www.color.org)" 145- * Alternately, this acknowledgment may appear in the software itself, 146- * if and wherever such third-party acknowledgments normally appear. 147- * 148- * 4. The names "ICC" and "The International Color Consortium" must 149- * not be used to imply that the ICC organization endorses or 150- * promotes products derived from this software without prior 151- * written permission. For written permission, please see 152- * <http://www.color.org/>. 153- * 154- * 155- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 156- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 157- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 158- * DISCLAIMED. IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR 159- * ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 160- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 161- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 162- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 163- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 164- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 165- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 166- * SUCH DAMAGE. 167- * ==================================================================== 168- * 169- * This software consists of voluntary contributions made by many 170- * individuals on behalf of the The International Color Consortium. 171- * 172- * 173- * Membership in the ICC is encouraged when this software is used for 174- * commercial purposes. 175- * 176- * 177- * For more information on The International Color Consortium, please 178- * see <http://www.color.org/>. 179- * 180- * 181- */ 182- 183-////////////////////////////////////////////////////////////////////// 184-// HISTORY: 185-// 186-// -Initial implementation by Joseph Goldstone sumer 2007 187-// 188-////////////////////////////////////////////////////////////////////// 189- 190-#include "Vetters.h" 191- 192-#include <sstream> 193-using namespace std; 194- 195-#ifndef WIN32 196-#include <sys/errno.h> 197-#else 198-#include <string.h> 199-int strerror_r(int errnum, char *str, int strsize) 200-{ 201- const char *errstr = strerror(errnum); 202- 203- if (errstr) { 204- strncpy(str, errstr, strsize); 205- return 0; 206- } 207- 208- return -1; 209-} 210-#define stat _stat 211-#endif 212- 213-#include "ICC_tool_exception.h" 214- 215-const char* 216-path_tail(const char* const s) 217-{ 218- const char* tail = strdup(s); 219- const char* last_slash = strrchr(tail, '/'); 220- if (last_slash != NULL) 221- tail = last_slash + 1; 222- return tail; 223-} 224- 225-void 226-vet_as_int(const char* const s, const string& name, 227- const string& description) 228-{ 229- istringstream ss(s); 230- int i; 231- ss >> i; 232- if (ss.fail()) 233- { 234- ostringstream oss; 235- oss << "The " << name << " argument given, `" << s << "', cannot be parsed as" 236- << " an integer. It should be an integer representing " 237- << description << "."; 238- throw ICC_tool_exception(oss.str()); 239- } 240-} 241- 242-void 243-vet_as_float(const char* const s, const string& name, 244- const string& description) 245-{ 246- istringstream ss(s); 247- float i; 248- ss >> i; 249- if (ss.fail()) 250- { 251- ostringstream oss; 252- oss << "The " << name << " argument given, `" << s << "', cannot be parsed as" 253- << " a floating-point number. It should be a floating-point number" 254- << " representing " << description << "."; 255- throw ICC_tool_exception(oss.str()); 256- } 257-} 258- 259-#define STRERROR_BUF_SIZE 256 260-off_t 261-get_size(const char* const s) 262-{ 263- struct stat sb; 264- int stat_returned = stat(s, &sb); 265- if (stat_returned < 0) 266- { 267- int stat_errno = errno; 268- char strerror_buf[STRERROR_BUF_SIZE]; 269- strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE); 270- ostringstream oss; 271- oss << "Could not access information for file `" << s << "': " 272- << strerror_buf; 273- throw ICC_tool_exception(oss.str()); 274- } 275- return sb.st_size; 276-} 277- 278-bool 279-check_mode(const char* const s, mode_t mode) 280-{ 281- struct stat sb; 282- int stat_returned = stat(s, &sb); 283- if (stat_returned < 0) 284- { 285- int stat_errno = errno; 286- char strerror_buf[STRERROR_BUF_SIZE]; 287- strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE); 288- ostringstream oss; 289- oss << "Could not access information for file `" << s << "': " 290- << strerror_buf; 291- throw ICC_tool_exception(oss.str()); 292- } 293- return (sb.st_mode & mode) != 0; 294-} 295- 296-bool 297-is_existent_file_pathname(const char* const s) 298-{ 299- struct stat sb; 300- return stat(s, &sb) == 0; 301-} 302- 303-bool 304-is_plain_file_pathname(const char* const s) 305-{ 306- return check_mode(s, S_IFREG); 307-} 308- 309-bool 310-is_directory(const char* const s) 311-{ 312- return check_mode(s, S_IFDIR); 313-} 314- 315-const char* const 316-containing_directory(const char* const s) 317-{ 318- if (strlen(s) == 0) 319- throw ICC_tool_exception("name of directory passed to containing_directory" 320- " function was zero-length."); 321- char* tmp = strdup(s); 322- // lop off any trailing seperator 323- if (tmp[strlen(tmp) - 1] == '/') 324- tmp[strlen(tmp) - 1] = 0; 325- if (strlen(tmp) == 0) 326- throw ICC_tool_exception("root directory (which has no containing" 327- " directory) passed to containing_directory" 328- " function"); 329- char* idx = strrchr(tmp, '/'); 330- if (idx != NULL) 331- { 332- *idx = 0; 333- return tmp; 334- } 335- char* current_directory = getenv("PWD"); 336- if (current_directory == NULL) 337- throw ICC_tool_exception("pathname passed to containing_directory has no" 338- " embedded seperator, and there is no value for" 339- " PWD defined in the environment"); 340- return strdup(current_directory); 341-} 342- 343-bool 344-is_readable_pathname(const char* const s) 345-{ 346- return check_mode(s, S_IRUSR) 347- || check_mode(s, S_IRGRP) 348- || check_mode(s, S_IROTH); 349-} 350- 351-bool 352-is_writable_pathname(const char* const s) 353-{ 354- return check_mode(s, S_IWUSR) 355- || check_mode(s, S_IWGRP) 356- || check_mode(s, S_IWOTH); 357-} 358- 359-bool 360-is_pathname_of_empty_file(const char* const s) 361-{ 362- return get_size(s) > 0; 363-} 364- 365-void 366-vet_input_file_pathname(const char* const s, const string& name, 367- const string& description) 368-{ 369- if (! is_plain_file_pathname(s)) 370- { 371- ostringstream oss; 372- oss << "The " << name << " argument given, `" << s << "', is not the pathname" 373- << " of a plain file (i.e. it is the pathname of a directory, or of a" 374- << " symbolic link, or of some other sort of special file.) It should be" 375- << " " << description << "."; 376- throw ICC_tool_exception(oss.str()); 377- } 378- if (! is_readable_pathname(s)) 379- { 380- ostringstream oss; 381- oss << "The " << name << " argument given, `" << s << "', is not the pathname" 382- << " of a readable file (i.e. you do not have permission to read that" 383- << " file, or you do not have permission to read some directory" 384- << " containing that file."; 385- throw ICC_tool_exception(oss.str()); 386- } 387- if (! is_pathname_of_empty_file(s)) 388- { 389- ostringstream oss; 390- oss << "The " << name << " argument given, `" << s << "', is not the pathname" 391- << " of an existing readable file, but that file is of zero length." 392- << " The argument should be " << description << "."; 393- throw ICC_tool_exception(oss.str()); 394- } 395-} 396- 397-void 398-vet_output_file_pathname(const char* const s, const string& name, 399- const string& description, 400- bool silent_overwrite_OK) 401-{ 402- const char* const container = containing_directory(s); 403- if (! is_writable_pathname(container)) 404- { 405- ostringstream oss; 406- oss << "The " << name << " argument given, `" << s << "', has a directory" 407- << " component which is not writable." 408- << " The argument should be " << description << "."; 409- throw ICC_tool_exception(oss.str()); 410- } 411- if (is_existent_file_pathname(s)) 412- { 413- if (is_plain_file_pathname(s)) 414- if (is_writable_pathname(s)) 415- { 416- if (! silent_overwrite_OK) 417- { 418- ostringstream oss; 419- oss << "The " << name << " argument given, `" << s << "' is of an existing" 420- << " file." 421- << " The argument should be " << description << "."; 422- throw ICC_tool_exception(oss.str()); 423- } 424- } else { 425- ostringstream oss; 426- oss << "The " << name << " argument given, `" << s << "' is of an existing" 427- << " file which is not writable." 428- << " The argument should be " << description << "."; 429- throw ICC_tool_exception(oss.str()); 430- } 431- } 432-} 433+/* 434+ File: Vetters.cpp 435+ 436+ Contains: Utility functions to handle common argument-checking tasks, in a 437+ way that hides platform-specific details from higher-level code. 438+ 439+ Version: V1 440+ 441+ Copyright: © see below 442+ */ 443+ 444+/* 445+ * The ICC Software License, Version 0.1 446+ * 447+ * 448+ * Copyright (c) 2003-2006 The International Color Consortium. All rights 449+ * reserved. 450+ * 451+ * Redistribution and use in source and binary forms, with or without 452+ * modification, are permitted provided that the following conditions 453+ * are met: 454+ * 455+ * 1. Redistributions of source code must retain the above copyright 456+ * notice, this list of conditions and the following disclaimer. 457+ * 458+ * 2. Redistributions in binary form must reproduce the above copyright 459+ * notice, this list of conditions and the following disclaimer in 460+ * the documentation and/or other materials provided with the 461+ * distribution. 462+ * 463+ * 3. The end-user documentation included with the redistribution, 464+ * if any, must include the following acknowledgment: 465+ * "This product includes software developed by the 466+ * The International Color Consortium (www.color.org)" 467+ * Alternately, this acknowledgment may appear in the software itself, 468+ * if and wherever such third-party acknowledgments normally appear. 469+ * 470+ * 4. The names "ICC" and "The International Color Consortium" must 471+ * not be used to imply that the ICC organization endorses or 472+ * promotes products derived from this software without prior 473+ * written permission. For written permission, please see 474+ * <http://www.color.org/>. 475+ * 476+ * 477+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 478+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 479+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 480+ * DISCLAIMED. IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR 481+ * ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 482+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 483+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 484+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 485+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 486+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 487+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 488+ * SUCH DAMAGE. 489+ * ==================================================================== 490+ * 491+ * This software consists of voluntary contributions made by many 492+ * individuals on behalf of the The International Color Consortium. 493+ * 494+ * 495+ * Membership in the ICC is encouraged when this software is used for 496+ * commercial purposes. 497+ * 498+ * 499+ * For more information on The International Color Consortium, please 500+ * see <http://www.color.org/>. 501+ * 502+ * 503+ */ 504+ 505+////////////////////////////////////////////////////////////////////// 506+// HISTORY: 507+// 508+// -Initial implementation by Joseph Goldstone sumer 2007 509+// 510+////////////////////////////////////////////////////////////////////// 511+ 512+#include "Vetters.h" 513+ 514+#include <sstream> 515+using namespace std; 516+ 517+#ifndef WIN32 518+#ifdef sun 519+#include <errno.h> 520+#else 521+#include <sys/errno.h> 522+#endif 523+#else 524+#include <string.h> 525+#define stat _stat 526+#endif 527+ 528+#if defined WIN32 || defined sun 529+int strerror_r(int errnum, char *str, int strsize) 530+{ 531+ const char *errstr = strerror(errnum); 532+ 533+ if (errstr) { 534+ strncpy(str, errstr, strsize); 535+ return 0; 536+ } 537+ 538+ return -1; 539+} 540+#endif 541+ 542+#include "ICC_tool_exception.h" 543+ 544+const char* 545+path_tail(const char* const s) 546+{ 547+ const char* tail = strdup(s); 548+ const char* last_slash = strrchr(tail, '/'); 549+ if (last_slash != NULL) 550+ tail = last_slash + 1; 551+ return tail; 552+} 553+ 554+void 555+vet_as_int(const char* const s, const string& name, 556+ const string& description) 557+{ 558+ istringstream ss(s); 559+ int i; 560+ ss >> i; 561+ if (ss.fail()) 562+ { 563+ ostringstream oss; 564+ oss << "The " << name << " argument given, `" << s << "', cannot be parsed as" 565+ << " an integer. It should be an integer representing " 566+ << description << "."; 567+ throw ICC_tool_exception(oss.str()); 568+ } 569+} 570+ 571+void 572+vet_as_float(const char* const s, const string& name, 573+ const string& description) 574+{ 575+ istringstream ss(s); 576+ float i; 577+ ss >> i; 578+ if (ss.fail()) 579+ { 580+ ostringstream oss; 581+ oss << "The " << name << " argument given, `" << s << "', cannot be parsed as" 582+ << " a floating-point number. It should be a floating-point number" 583+ << " representing " << description << "."; 584+ throw ICC_tool_exception(oss.str()); 585+ } 586+} 587+ 588+#define STRERROR_BUF_SIZE 256 589+off_t 590+get_size(const char* const s) 591+{ 592+ struct stat sb; 593+ int stat_returned = stat(s, &sb); 594+ if (stat_returned < 0) 595+ { 596+ int stat_errno = errno; 597+ char strerror_buf[STRERROR_BUF_SIZE]; 598+ strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE); 599+ ostringstream oss; 600+ oss << "Could not access information for file `" << s << "': " 601+ << strerror_buf; 602+ throw ICC_tool_exception(oss.str()); 603+ } 604+ return sb.st_size; 605+} 606+ 607+bool 608+check_mode(const char* const s, mode_t mode) 609+{ 610+ struct stat sb; 611+ int stat_returned = stat(s, &sb); 612+ if (stat_returned < 0) 613+ { 614+ int stat_errno = errno; 615+ char strerror_buf[STRERROR_BUF_SIZE]; 616+ strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE); 617+ ostringstream oss; 618+ oss << "Could not access information for file `" << s << "': " 619+ << strerror_buf; 620+ throw ICC_tool_exception(oss.str()); 621+ } 622+ return (sb.st_mode & mode) != 0; 623+} 624+ 625+bool 626+is_existent_file_pathname(const char* const s) 627+{ 628+ struct stat sb; 629+ return stat(s, &sb) == 0; 630+} 631+ 632+bool 633+is_plain_file_pathname(const char* const s) 634+{ 635+ return check_mode(s, S_IFREG); 636+} 637+ 638+bool 639+is_directory(const char* const s) 640+{ 641+ return check_mode(s, S_IFDIR); 642+} 643+ 644+const char* const 645+containing_directory(const char* const s) 646+{ 647+ if (strlen(s) == 0) 648+ throw ICC_tool_exception("name of directory passed to containing_directory" 649+ " function was zero-length."); 650+ char* tmp = strdup(s); 651+ // lop off any trailing seperator 652+ if (tmp[strlen(tmp) - 1] == '/') 653+ tmp[strlen(tmp) - 1] = 0; 654+ if (strlen(tmp) == 0) 655+ throw ICC_tool_exception("root directory (which has no containing" 656+ " directory) passed to containing_directory" 657+ " function"); 658+ char* idx = strrchr(tmp, '/'); 659+ if (idx != NULL) 660+ { 661+ *idx = 0; 662+ return tmp; 663+ } 664+ char* current_directory = getenv("PWD"); 665+ if (current_directory == NULL) 666+ throw ICC_tool_exception("pathname passed to containing_directory has no" 667+ " embedded seperator, and there is no value for" 668+ " PWD defined in the environment"); 669+ return strdup(current_directory); 670+} 671+ 672+bool 673+is_readable_pathname(const char* const s) 674+{ 675+ return check_mode(s, S_IRUSR) 676+ || check_mode(s, S_IRGRP) 677+ || check_mode(s, S_IROTH); 678+} 679+ 680+bool 681+is_writable_pathname(const char* const s) 682+{ 683+ return check_mode(s, S_IWUSR) 684+ || check_mode(s, S_IWGRP) 685+ || check_mode(s, S_IWOTH); 686+} 687+ 688+bool 689+is_pathname_of_empty_file(const char* const s) 690+{ 691+ return get_size(s) > 0; 692+} 693+ 694+void 695+vet_input_file_pathname(const char* const s, const string& name, 696+ const string& description) 697+{ 698+ if (! is_plain_file_pathname(s)) 699+ { 700+ ostringstream oss; 701+ oss << "The " << name << " argument given, `" << s << "', is not the pathname" 702+ << " of a plain file (i.e. it is the pathname of a directory, or of a" 703+ << " symbolic link, or of some other sort of special file.) It should be" 704+ << " " << description << "."; 705+ throw ICC_tool_exception(oss.str()); 706+ } 707+ if (! is_readable_pathname(s)) 708+ { 709+ ostringstream oss; 710+ oss << "The " << name << " argument given, `" << s << "', is not the pathname" 711+ << " of a readable file (i.e. you do not have permission to read that" 712+ << " file, or you do not have permission to read some directory" 713+ << " containing that file."; 714+ throw ICC_tool_exception(oss.str()); 715+ } 716+ if (! is_pathname_of_empty_file(s)) 717+ { 718+ ostringstream oss; 719+ oss << "The " << name << " argument given, `" << s << "', is not the pathname" 720+ << " of an existing readable file, but that file is of zero length." 721+ << " The argument should be " << description << "."; 722+ throw ICC_tool_exception(oss.str()); 723+ } 724+} 725+ 726+void 727+vet_output_file_pathname(const char* const s, const string& name, 728+ const string& description, 729+ bool silent_overwrite_OK) 730+{ 731+ const char* const container = containing_directory(s); 732+ if (! is_writable_pathname(container)) 733+ { 734+ ostringstream oss; 735+ oss << "The " << name << " argument given, `" << s << "', has a directory" 736+ << " component which is not writable." 737+ << " The argument should be " << description << "."; 738+ throw ICC_tool_exception(oss.str()); 739+ } 740+ if (is_existent_file_pathname(s)) 741+ { 742+ if (is_plain_file_pathname(s)) 743+ if (is_writable_pathname(s)) 744+ { 745+ if (! silent_overwrite_OK) 746+ { 747+ ostringstream oss; 748+ oss << "The " << name << " argument given, `" << s << "' is of an existing" 749+ << " file." 750+ << " The argument should be " << description << "."; 751+ throw ICC_tool_exception(oss.str()); 752+ } 753+ } else { 754+ ostringstream oss; 755+ oss << "The " << name << " argument given, `" << s << "' is of an existing" 756+ << " file which is not writable." 757+ << " The argument should be " << description << "."; 758+ throw ICC_tool_exception(oss.str()); 759+ } 760+ } 761+} 762--- misc/SampleICC-1.3.2/IccProfLib/IccIO.cpp Mon Aug 20 22:05:00 2007 763+++ misc/build/SampleICC-1.3.2/IccProfLib/IccIO.cpp Fri Jan 25 14:23:09 2008 764@@ -78,7 +78,7 @@ 765 #include "IccIO.h" 766 #include "IccUtil.h" 767 #include <stdlib.h> 768-#include <memory.h> 769+#include <memory> 770 #include <string.h> 771 772 #ifndef __max 773--- misc/SampleICC-1.3.2/IccProfLib/IccIO.h Mon Aug 20 22:05:00 2007 774+++ misc/build/SampleICC-1.3.2/IccProfLib/IccIO.h Fri Jan 25 14:23:09 2008 775@@ -79,6 +79,7 @@ 776 #define _ICCIO_H 777 778 #include "IccDefs.h" 779+#include "memory" 780 #include "stdio.h" 781 782 #ifdef USESAMPLEICCNAMESPACE 783--- misc/SampleICC-1.3.2/IccProfLib/IccMpeACS.cpp Mon Aug 20 22:05:00 2007 784+++ misc/build/SampleICC-1.3.2/IccProfLib/IccMpeACS.cpp Fri Jan 25 14:23:09 2008 785@@ -136,17 +136,17 @@ 786 icChar sigBuf[30]; 787 788 if (GetBAcsSig()) 789- sDescription += "ELEM_bACS\r\n"; 790+ sDescription += "ELEM_bACS\n"; 791 else 792- sDescription += "ELEM_eACS\r\n"; 793+ sDescription += "ELEM_eACS\n"; 794 795 icGetSig(sigBuf, m_signature); 796 sDescription += " Signature = "; 797 sDescription += sigBuf; 798- sDescription += "\r\n"; 799+ sDescription += "\n"; 800 801 if (m_pData) { 802- sDescription += "\r\nData Follows:\r\n"; 803+ sDescription += "\nData Follows:\n"; 804 805 icMemDump(sDescription, m_pData, m_nDataSize); 806 } 807--- misc/SampleICC-1.3.2/IccProfLib/IccMpeBasic.cpp Mon Aug 20 22:05:00 2007 808+++ misc/build/SampleICC-1.3.2/IccProfLib/IccMpeBasic.cpp Fri Jan 25 14:23:09 2008 809@@ -218,32 +218,32 @@ 810 sprintf(buf, "%.8f", m_endPoint); 811 sDescription += buf; 812 } 813- sprintf(buf, "]\r\nFunctionType: %04Xh\r\n", m_nFunctionType); 814+ sprintf(buf, "]\nFunctionType: %04Xh\n", m_nFunctionType); 815 sDescription += buf; 816 817 switch(m_nFunctionType) { 818 case 0x0000: 819 if (m_params[1]==0.0 && m_params[2]==0.0) 820- sprintf(buf, "Y = %.8f\r\n\r\n", m_params[3]); 821+ sprintf(buf, "Y = %.8f\n\n", m_params[3]); 822 else if (m_params[0]==1.0 && m_params[1]==1.0 && m_params[2]==0.0 && m_params[3]==0.0) 823- sprintf(buf, "Y = X\r\n\r\n"); 824+ sprintf(buf, "Y = X\n\n"); 825 else if (m_params[0]==1.0 && m_params[2]==0.0) 826- sprintf(buf, "Y = %.8f * X + %.8f\r\n\r\n", 827+ sprintf(buf, "Y = %.8f * X + %.8f\n\n", 828 m_params[1], m_params[3]); 829 else 830- sprintf(buf, "Y = (%.8f * X + %.8f)^%.4f + %.8f\r\n\r\n", 831+ sprintf(buf, "Y = (%.8f * X + %.8f)^%.4f + %.8f\n\n", 832 m_params[1], m_params[2], m_params[0], m_params[3]); 833 sDescription += buf; 834 return; 835 836 case 0x0001: 837- sprintf(buf, "Y = %.8f * log (%.8f * (X ^ %.8f) + %.8f) + %.8f\r\n\r\n", 838+ sprintf(buf, "Y = %.8f * log (%.8f * (X ^ %.8f) + %.8f) + %.8f\n\n", 839 m_params[1], m_params[2], m_params[0], m_params[3], m_params[4]); 840 sDescription += buf; 841 return; 842 843 case 0x0002: 844- sprintf(buf, "Y = %.8f * (%.8f ^ (%.8f * X + %.8f)) + %.8f\r\n\r\n", 845+ sprintf(buf, "Y = %.8f * (%.8f ^ (%.8f * X + %.8f)) + %.8f\n\n", 846 m_params[0], m_params[1], m_params[2], m_params[3], m_params[4]); 847 sDescription += buf; 848 return; 849@@ -250,11 +250,11 @@ 850 851 default: 852 int i; 853- sprintf(buf, "Unknown Function with %d parameters:\r\n\r\n", m_nParameters); 854+ sprintf(buf, "Unknown Function with %d parameters:\n\n", m_nParameters); 855 sDescription += buf; 856 857 for (i=0; i<m_nParameters; i++) { 858- sprintf(buf, "Param[%d] = %.8lf\r\n\r\n", i, m_params[i]); 859+ sprintf(buf, "Param[%d] = %.8lf\n\n", i, m_params[i]); 860 sDescription += buf; 861 } 862 } 863@@ -496,7 +496,7 @@ 864 if (m_nReserved || m_nReserved2) { 865 sReport += icValidateWarningMsg; 866 sReport += sSigName; 867- sReport += " formula curve has non zero reserved data.\r\n"; 868+ sReport += " formula curve has non zero reserved data.\n"; 869 rv = icValidateWarning; 870 } 871 872@@ -505,13 +505,13 @@ 873 if (!m_params || m_nParameters<4) { 874 sReport += icValidateCriticalErrorMsg; 875 sReport += sSigName; 876- sReport += " formula curve has Invalid formulaCurveSegment parameters.\r\n"; 877+ sReport += " formula curve has Invalid formulaCurveSegment parameters.\n"; 878 rv = icValidateCriticalError; 879 } 880 else if (m_nParameters > 4) { 881 sReport += icValidateWarningMsg; 882 sReport += sSigName; 883- sReport += " formula curve has too many formulaCurveSegment parameters.\r\n"; 884+ sReport += " formula curve has too many formulaCurveSegment parameters.\n"; 885 rv = icValidateWarning; 886 } 887 break; 888@@ -520,13 +520,13 @@ 889 if (!m_params || m_nParameters<5) { 890 sReport += icValidateCriticalErrorMsg; 891 sReport += sSigName; 892- sReport += " formula curve has Invalid formulaCurveSegment parameters.\r\n"; 893+ sReport += " formula curve has Invalid formulaCurveSegment parameters.\n"; 894 rv = icValidateCriticalError; 895 } 896 else if (m_nParameters > 5) { 897 sReport += icValidateWarningMsg; 898 sReport += sSigName; 899- sReport += " formula curve has too many formulaCurveSegment parameters.\r\n"; 900+ sReport += " formula curve has too many formulaCurveSegment parameters.\n"; 901 rv = icValidateWarning; 902 } 903 break; 904@@ -535,13 +535,13 @@ 905 if (!m_params || m_nParameters<5) { 906 sReport += icValidateCriticalErrorMsg; 907 sReport += sSigName; 908- sReport += " formula curve has Invalid formulaCurveSegment parameters.\r\n"; 909+ sReport += " formula curve has Invalid formulaCurveSegment parameters.\n"; 910 rv = icValidateCriticalError; 911 } 912 else if (m_nParameters > 5) { 913 sReport += icValidateWarningMsg; 914 sReport += sSigName; 915- sReport += " formula curve has too many formulaCurveSegment parameters.\r\n"; 916+ sReport += " formula curve has too many formulaCurveSegment parameters.\n"; 917 rv = icValidateWarning; 918 } 919 break; 920@@ -551,7 +551,7 @@ 921 icChar buf[128]; 922 sReport += icValidateCriticalErrorMsg; 923 sReport += sSigName; 924- sprintf(buf, " formula curve uses unknown formulaCurveSegment function type %d\r\n", m_nFunctionType); 925+ sprintf(buf, " formula curve uses unknown formulaCurveSegment function type %d\n", m_nFunctionType); 926 sReport += buf; 927 rv = icValidateCriticalError; 928 } 929@@ -727,7 +727,7 @@ 930 sDescription += buf; 931 } 932 933- sprintf(buf, "]\r\n"); 934+ sprintf(buf, "]\n"); 935 sDescription += buf; 936 } 937 else { 938@@ -744,9 +744,9 @@ 939 sprintf(buf, "%.8f", m_endPoint); 940 sDescription += buf; 941 } 942- sprintf(buf, "]\r\n"); 943+ sprintf(buf, "]\n"); 944 sDescription += buf; 945- sDescription += "IN OUT\r\n"; 946+ sDescription += "IN OUT\n"; 947 948 icUInt32Number i; 949 950@@ -754,11 +754,11 @@ 951 icFloatNumber last = (icFloatNumber)(m_nCount-1); 952 953 for (i=0; i<m_nCount; i++) { 954- sprintf(buf, "%.8f %.8f\r\n", m_startPoint + (icFloatNumber)i*range/last, m_pSamples[i]); 955+ sprintf(buf, "%.8f %.8f\n", m_startPoint + (icFloatNumber)i*range/last, m_pSamples[i]); 956 sDescription += buf; 957 } 958 } 959- sDescription += "\r\n"; 960+ sDescription += "\n"; 961 } 962 963 /** 964@@ -910,7 +910,7 @@ 965 if (m_nReserved) { 966 sReport += icValidateWarningMsg; 967 sReport += sSigName; 968- sReport += " sampled curve has non zero reserved data.\r\n"; 969+ sReport += " sampled curve has non zero reserved data.\n"; 970 rv = icValidateWarning; 971 } 972 973@@ -917,13 +917,13 @@ 974 if (m_nCount<2) { 975 sReport += icValidateCriticalErrorMsg; 976 sReport += sSigName; 977- sReport += " sampled curve has too few sample points.\r\n"; 978+ sReport += " sampled curve has too few sample points.\n"; 979 rv = icValidateCriticalError; 980 } 981 else if (m_endPoint-m_startPoint == 0.0) { 982 sReport += icValidateWarningMsg; 983 sReport += sSigName; 984- sReport += " sampled curve has a range of zero.\r\n"; 985+ sReport += " sampled curve has a range of zero.\n"; 986 rv = icMaxStatus(rv, icValidateWarning); 987 } 988 989@@ -1054,7 +1054,7 @@ 990 { 991 CIccCurveSegmentList::iterator i; 992 993- sDescription += "BEGIN_CURVE\r\n"; 994+ sDescription += "BEGIN_CURVE\n"; 995 for (i=m_list->begin(); i!=m_list->end(); i++) { 996 (*i)->Describe(sDescription); 997 } 998@@ -1342,7 +1342,7 @@ 999 if (m_nReserved1 || m_nReserved2) { 1000 sReport += icValidateWarningMsg; 1001 sReport += sSigName; 1002- sReport += " Segmented curve has non zero reserved data.\r\n"; 1003+ sReport += " Segmented curve has non zero reserved data.\n"; 1004 rv = icValidateWarning; 1005 } 1006 1007@@ -1349,7 +1349,7 @@ 1008 if (m_list->size()==0) { 1009 sReport += icValidateCriticalErrorMsg; 1010 sReport += sSigName; 1011- sReport += " Has Empty CurveSegment!\r\n"; 1012+ sReport += " Has Empty CurveSegment!\n"; 1013 return icValidateCriticalError; 1014 } 1015 1016@@ -1599,11 +1599,11 @@ 1017 icChar buf[81]; 1018 int i; 1019 1020- sprintf(buf, "BEGIN_CURVE_SET %d\r\n", m_nInputChannels); 1021+ sprintf(buf, "BEGIN_CURVE_SET %d\n", m_nInputChannels); 1022 sDescription += buf; 1023 1024 for (i=0; i<m_nInputChannels; i++) { 1025- sprintf(buf, "Curve %d of %d\r\n", i+1, m_nInputChannels); 1026+ sprintf(buf, "Curve %d of %d\n", i+1, m_nInputChannels); 1027 sDescription += buf; 1028 if (m_curve[i]) { 1029 m_curve[i]->Describe(sDescription); 1030@@ -1877,7 +1877,7 @@ 1031 sReport += " - Element "; 1032 sSigName = Info.GetSigName(GetType()); 1033 sReport += sSigName; 1034- sReport += " Has Empty Curve Element(s)!\r\n"; 1035+ sReport += " Has Empty Curve Element(s)!\n"; 1036 return icValidateCriticalError; 1037 } 1038 1039@@ -2042,7 +2042,7 @@ 1040 int i, j; 1041 icFloatNumber *data = m_pMatrix; 1042 1043- sprintf(buf, "BEGIN_ELEM_MATRIX %d %d\r\n", m_nInputChannels, m_nOutputChannels); 1044+ sprintf(buf, "BEGIN_ELEM_MATRIX %d %d\n", m_nInputChannels, m_nOutputChannels); 1045 sDescription += buf; 1046 1047 for (j=0; j<m_nOutputChannels; j++) { 1048@@ -2052,7 +2052,7 @@ 1049 sprintf(buf, "%12.8lf", data[i]); 1050 sDescription += buf; 1051 } 1052- sprintf(buf, " + %12.8lf\r\n", m_pConstants[j]); 1053+ sprintf(buf, " + %12.8lf\n", m_pConstants[j]); 1054 sDescription += buf; 1055 data += i; 1056 } 1057@@ -2273,7 +2273,7 @@ 1058 sReport += " - Element "; 1059 sSigName = Info.GetSigName(GetType()); 1060 sReport += sSigName; 1061- sReport += " Has Empty Matrix data!\r\n"; 1062+ sReport += " Has Empty Matrix data!\n"; 1063 return icValidateCriticalError; 1064 } 1065 1066@@ -2620,7 +2620,7 @@ 1067 sReport += " - Element "; 1068 sSigName = Info.GetSigName(GetType()); 1069 sReport += sSigName; 1070- sReport += " Has No CLUT!\r\n"; 1071+ sReport += " Has No CLUT!\n"; 1072 return icValidateCriticalError; 1073 } 1074 1075--- misc/SampleICC-1.3.2/IccProfLib/IccProfLibConf.h Mon Aug 20 22:05:00 2007 1076+++ misc/build/SampleICC-1.3.2/IccProfLib/IccProfLibConf.h Fri Jan 25 14:23:09 2008 1077@@ -107,20 +107,23 @@ 1078 1079 #else // non-PC, perhaps Mac or Linux 1080 1081- #define ICCUINT64 unsigned long long 1082- #define ICCINT64 long long 1083- #define ICUINT64TYPE unsigned long long 1084- #define ICINT64TYPE long long 1085- 1086- #if defined(__APPLE__) 1087- #if defined(__LITTLE_ENDIAN__) 1088- #define ICC_BYTE_ORDER_LITTLE_ENDIAN 1089- #else 1090- #define ICC_BYTE_ORDER_BIG_ENDIAN 1091- #endif 1092- #else 1093- #define ICC_BYTE_ORDER_LITTLE_ENDIAN 1094- #endif 1095+#include <sal/types.h> 1096+#include <osl/endian.h> 1097+ 1098+ #define ICCUINT64 sal_uInt64 1099+ #define ICCINT64 sal_Int64 1100+ #define ICUINT64TYPE sal_uInt64 1101+ #define ICINT64TYPE sal_Int64 1102+ #define ICINT32TYPE sal_Int32 1103+ #define ICUINT32TYPE sal_uInt32 1104+ 1105+#if defined(_LITTLE_ENDIAN) 1106+# define ICC_BYTE_ORDER_LITTLE_ENDIAN 1107+#elif defined(_BIG_ENDIAN) 1108+# define ICC_BYTE_ORDER_BIG_ENDIAN 1109+#else 1110+# error "ENDIAN unknown" 1111+#endif 1112 1113 #define ICCPROFLIB_API 1114 #define ICCPROFLIB_EXTERN 1115--- misc/SampleICC-1.3.2/IccProfLib/IccProfile.cpp Mon Aug 20 22:05:00 2007 1116+++ misc/build/SampleICC-1.3.2/IccProfLib/IccProfile.cpp Fri Jan 25 14:23:09 2008 1117@@ -567,7 +567,7 @@ 1118 1119 if (!ReadBasic(pIO)) { 1120 sReport += icValidateCriticalErrorMsg; 1121- sReport += " - Unable to read profile!**\r\n\tProfile has invalid structure!\r\n"; 1122+ sReport += " - Unable to read profile!**\n\tProfile has invalid structure!\n"; 1123 Cleanup(); 1124 1125 return icValidateCriticalError; 1126@@ -576,7 +576,7 @@ 1127 // Check profile header 1128 if (!CheckFileSize(pIO)) { 1129 sReport += icValidateNonCompliantMsg; 1130- sReport += "Bad Header File Size\r\n"; 1131+ sReport += "Bad Header File Size\n"; 1132 rv = icMaxStatus(rv, icValidateNonCompliant); 1133 } 1134 1135@@ -588,7 +588,7 @@ 1136 CalcProfileID(pIO, &profileID); 1137 if (strncmp((char*)profileID.ID8, (char*)m_Header.profileID.ID8, 16) != 0) { 1138 sReport += icValidateNonCompliantMsg; 1139- sReport += "Bad Profile ID\r\n"; 1140+ sReport += "Bad Profile ID\n"; 1141 1142 rv = icMaxStatus(rv, icValidateNonCompliant); 1143 } 1144@@ -601,7 +601,7 @@ 1145 sReport += icValidateCriticalErrorMsg; 1146 sReport += " - "; 1147 sReport += Info.GetTagSigName(i->TagInfo.sig); 1148- sReport += " - Tag has invalid structure!\r\n"; 1149+ sReport += " - Tag has invalid structure!\n"; 1150 1151 rv = icMaxStatus(rv, icValidateCriticalError); 1152 } 1153@@ -1026,7 +1026,7 @@ 1154 1155 default: 1156 sReport += icValidateCriticalErrorMsg; 1157- sprintf(buf, " - %s: Unknown profile class!\r\n", Info.GetProfileClassSigName(m_Header.deviceClass)); 1158+ sprintf(buf, " - %s: Unknown profile class!\n", Info.GetProfileClassSigName(m_Header.deviceClass)); 1159 sReport += buf; 1160 rv = icMaxStatus(rv, icValidateCriticalError); 1161 } 1162@@ -1033,7 +1033,7 @@ 1163 1164 if (!Info.IsValidSpace(m_Header.colorSpace)) { 1165 sReport += icValidateCriticalErrorMsg; 1166- sprintf(buf, " - %s: Unknown color space!\r\n", Info.GetColorSpaceSigName(m_Header.colorSpace)); 1167+ sprintf(buf, " - %s: Unknown color space!\n", Info.GetColorSpaceSigName(m_Header.colorSpace)); 1168 sReport += buf; 1169 rv = icMaxStatus(rv, icValidateCriticalError); 1170 } 1171@@ -1041,7 +1041,7 @@ 1172 if (m_Header.deviceClass==icSigLinkClass) { 1173 if (!Info.IsValidSpace(m_Header.pcs)) { 1174 sReport += icValidateCriticalErrorMsg; 1175- sprintf(buf, " - %s: Unknown pcs color space!\r\n", Info.GetColorSpaceSigName(m_Header.pcs)); 1176+ sprintf(buf, " - %s: Unknown pcs color space!\n", Info.GetColorSpaceSigName(m_Header.pcs)); 1177 sReport += buf; 1178 rv = icMaxStatus(rv, icValidateCriticalError); 1179 } 1180@@ -1049,7 +1049,7 @@ 1181 else { 1182 if (m_Header.pcs!=icSigXYZData && m_Header.pcs!=icSigLabData) { 1183 sReport += icValidateCriticalErrorMsg; 1184- sprintf(buf, " - %s: Invalid pcs color space!\r\n", Info.GetColorSpaceSigName(m_Header.pcs)); 1185+ sprintf(buf, " - %s: Invalid pcs color space!\n", Info.GetColorSpaceSigName(m_Header.pcs)); 1186 sReport += buf; 1187 rv = icMaxStatus(rv, icValidateCriticalError); 1188 } 1189@@ -1068,7 +1068,7 @@ 1190 1191 default: 1192 sReport += icValidateWarningMsg; 1193- sprintf(buf, " - %s: Unknown platform signature.\r\n", Info.GetPlatformSigName(m_Header.platform)); 1194+ sprintf(buf, " - %s: Unknown platform signature.\n", Info.GetPlatformSigName(m_Header.platform)); 1195 sReport += buf; 1196 rv = icMaxStatus(rv, icValidateWarning); 1197 } 1198@@ -1095,7 +1095,7 @@ 1199 1200 default: 1201 sReport += icValidateWarningMsg; 1202- sprintf(buf, " - %s: Unregisterd CMM signature.\r\n", Info.GetCmmSigName((icCmmSignature)m_Header.cmmId)); 1203+ sprintf(buf, " - %s: Unregisterd CMM signature.\n", Info.GetCmmSigName((icCmmSignature)m_Header.cmmId)); 1204 sReport += buf; 1205 rv = icMaxStatus(rv, icValidateWarning); 1206 } 1207@@ -1109,7 +1109,7 @@ 1208 1209 default: 1210 sReport += icValidateCriticalErrorMsg; 1211- sprintf(buf, " - %s: Unknown rendering intent!\r\n", Info.GetRenderingIntentName((icRenderingIntent)m_Header.renderingIntent)); 1212+ sprintf(buf, " - %s: Unknown rendering intent!\n", Info.GetRenderingIntentName((icRenderingIntent)m_Header.renderingIntent)); 1213 sReport += buf; 1214 rv = icMaxStatus(rv, icValidateCriticalError); 1215 } 1216@@ -1120,7 +1120,7 @@ 1217 icFloatNumber Z = icFtoD(m_Header.illuminant.Z); 1218 if (X<0.9640 || X>0.9644 || Y!=1.0 || Z<0.8247 || Z>0.8251) { 1219 sReport += icValidateNonCompliantMsg; 1220- sReport += " - Non D50 Illuminant XYZ values.\r\n"; 1221+ sReport += " - Non D50 Illuminant XYZ values.\n"; 1222 rv = icMaxStatus(rv, icValidateNonCompliant); 1223 } 1224 1225@@ -1130,7 +1130,7 @@ 1226 } 1227 if (sum) { 1228 sReport += icValidateNonCompliantMsg; 1229- sReport += " - Reserved value must be zero.\r\n"; 1230+ sReport += " - Reserved value must be zero.\n"; 1231 rv = icMaxStatus(rv, icValidateNonCompliant); 1232 } 1233 1234@@ -1163,7 +1163,7 @@ 1235 { 1236 sReport += icValidateWarningMsg; 1237 sReport += buf; 1238- sReport += " - Tag exclusion test failed.\r\n"; 1239+ sReport += " - Tag exclusion test failed.\n"; 1240 rv = false; 1241 } 1242 } 1243@@ -1177,7 +1177,7 @@ 1244 { 1245 sReport += icValidateWarningMsg; 1246 sReport += buf; 1247- sReport += " - Tag exclusion test failed.\r\n"; 1248+ sReport += " - Tag exclusion test failed.\n"; 1249 rv = false; 1250 } 1251 break; 1252@@ -1192,7 +1192,7 @@ 1253 { 1254 sReport += icValidateWarningMsg; 1255 sReport += buf; 1256- sReport += " - Tag exclusion test failed.\r\n"; 1257+ sReport += " - Tag exclusion test failed.\n"; 1258 rv = false; 1259 } 1260 break; 1261@@ -1234,7 +1234,7 @@ 1262 if (!IsTypeValid(tagsig, typesig)) { 1263 sReport += icValidateNonCompliantMsg; 1264 sReport += buf; 1265- sprintf(buf," - %s: Invalid tag type (Might be critical!).\r\n", Info.GetTagTypeSigName(typesig)); 1266+ sprintf(buf," - %s: Invalid tag type (Might be critical!).\n", Info.GetTagTypeSigName(typesig)); 1267 sReport += buf; 1268 rv = icMaxStatus(rv, icValidateNonCompliant); 1269 } 1270@@ -1477,7 +1477,7 @@ 1271 { 1272 if (m_Tags->size() <= 0) { 1273 sReport += icValidateCriticalErrorMsg; 1274- sReport += "No tags present.\r\n"; 1275+ sReport += "No tags present.\n"; 1276 return icValidateCriticalError; 1277 } 1278 1279@@ -1486,7 +1486,7 @@ 1280 if (!GetTag(icSigProfileDescriptionTag) || 1281 !GetTag(icSigCopyrightTag)) { 1282 sReport += icValidateNonCompliantMsg; 1283- sReport += "Required tags missing.\r\n"; 1284+ sReport += "Required tags missing.\n"; 1285 rv = icMaxStatus(rv, icValidateNonCompliant); 1286 } 1287 1288@@ -1495,7 +1495,7 @@ 1289 if (sig != icSigLinkClass) { 1290 if (!GetTag(icSigMediaWhitePointTag)) { 1291 sReport += icValidateCriticalErrorMsg; 1292- sReport += "Media white point tag missing.\r\n"; 1293+ sReport += "Media white point tag missing.\n"; 1294 rv = icMaxStatus(rv, icValidateCriticalError); 1295 } 1296 } 1297@@ -1505,7 +1505,7 @@ 1298 if (m_Header.colorSpace == icSigGrayData) { 1299 if (!GetTag(icSigGrayTRCTag)) { 1300 sReport += icValidateCriticalErrorMsg; 1301- sReport += "Gray TRC tag missing.\r\n"; 1302+ sReport += "Gray TRC tag missing.\n"; 1303 rv = icMaxStatus(rv, icValidateCriticalError); 1304 } 1305 } 1306@@ -1515,7 +1515,7 @@ 1307 !GetTag(icSigBlueMatrixColumnTag) || !GetTag(icSigRedTRCTag) || 1308 !GetTag(icSigGreenTRCTag) || !GetTag(icSigBlueTRCTag)) { 1309 sReport += icValidateCriticalErrorMsg; 1310- sReport += "Critical tag(s) missing.\r\n"; 1311+ sReport += "Critical tag(s) missing.\n"; 1312 rv = icMaxStatus(rv, icValidateCriticalError); 1313 } 1314 } 1315@@ -1526,7 +1526,7 @@ 1316 if (m_Header.colorSpace == icSigGrayData) { 1317 if (!GetTag(icSigGrayTRCTag)) { 1318 sReport += icValidateCriticalErrorMsg; 1319- sReport += "Gray TRC tag missing.\r\n"; 1320+ sReport += "Gray TRC tag missing.\n"; 1321 rv = icMaxStatus(rv, icValidateCriticalError); 1322 } 1323 } 1324@@ -1536,7 +1536,7 @@ 1325 !GetTag(icSigBlueMatrixColumnTag) || !GetTag(icSigRedTRCTag) || 1326 !GetTag(icSigGreenTRCTag) || !GetTag(icSigBlueTRCTag)) { 1327 sReport += icValidateCriticalErrorMsg; 1328- sReport += "Critical tag(s) missing.\r\n"; 1329+ sReport += "Critical tag(s) missing.\n"; 1330 rv = icMaxStatus(rv, icValidateCriticalError); 1331 } 1332 } 1333@@ -1547,7 +1547,7 @@ 1334 if (m_Header.colorSpace == icSigGrayData) { 1335 if (!GetTag(icSigGrayTRCTag)) { 1336 sReport += icValidateCriticalErrorMsg; 1337- sReport += "Gray TRC tag missing.\r\n"; 1338+ sReport += "Gray TRC tag missing.\n"; 1339 rv = icMaxStatus(rv, icValidateCriticalError); 1340 } 1341 } 1342@@ -1556,13 +1556,13 @@ 1343 !GetTag(icSigAToB1Tag) || !GetTag(icSigBToA1Tag) || 1344 !GetTag(icSigAToB2Tag) || !GetTag(icSigBToA2Tag)) { 1345 sReport += icValidateCriticalErrorMsg; 1346- sReport += "Critical tag(s) missing.\r\n"; 1347+ sReport += "Critical tag(s) missing.\n"; 1348 rv = icMaxStatus(rv, icValidateCriticalError); 1349 } 1350 1351 if (!GetTag(icSigGamutTag)) { 1352 sReport += icValidateNonCompliantMsg; 1353- sReport += "Gamut tag missing.\r\n"; 1354+ sReport += "Gamut tag missing.\n"; 1355 rv = icMaxStatus(rv, icValidateNonCompliant); 1356 } 1357 1358@@ -1585,7 +1585,7 @@ 1359 case icSig16colorData: 1360 if (!GetTag(icSigColorantTableTag)) { 1361 sReport += icValidateNonCompliantMsg; 1362- sReport += "xCLR output profile is missing colorantTableTag\r\n"; 1363+ sReport += "xCLR output profile is missing colorantTableTag\n"; 1364 rv = icMaxStatus(rv, icValidateNonCompliant); 1365 } 1366 1367@@ -1599,7 +1599,7 @@ 1368 case icSigLinkClass: 1369 if (!GetTag(icSigAToB0Tag) || !GetTag(icSigProfileSequenceDescTag)) { 1370 sReport += icValidateCriticalErrorMsg; 1371- sReport += "Critical tag(s) missing.\r\n"; 1372+ sReport += "Critical tag(s) missing.\n"; 1373 rv = icMaxStatus(rv, icValidateCriticalError); 1374 } 1375 1376@@ -1606,7 +1606,7 @@ 1377 if (icIsSpaceCLR(m_Header.colorSpace)) { 1378 if (!GetTag(icSigColorantTableTag)) { 1379 sReport += icValidateNonCompliantMsg; 1380- sReport += "Required tag(s) missing.\r\n"; 1381+ sReport += "Required tag(s) missing.\n"; 1382 rv = icMaxStatus(rv, icValidateNonCompliant); 1383 } 1384 } 1385@@ -1614,7 +1614,7 @@ 1386 if (icIsSpaceCLR(m_Header.pcs)) { 1387 if (!GetTag(icSigColorantTableOutTag)) { 1388 sReport += icValidateNonCompliantMsg; 1389- sReport += "Required tag(s) missing.\r\n"; 1390+ sReport += "Required tag(s) missing.\n"; 1391 rv = icMaxStatus(rv, icValidateNonCompliant); 1392 } 1393 } 1394@@ -1623,7 +1623,7 @@ 1395 case icSigColorSpaceClass: 1396 if (!GetTag(icSigAToB0Tag) || !GetTag(icSigBToA0Tag)) { 1397 sReport += icValidateCriticalErrorMsg; 1398- sReport += "Critical tag(s) missing.\r\n"; 1399+ sReport += "Critical tag(s) missing.\n"; 1400 rv = icMaxStatus(rv, icValidateCriticalError); 1401 } 1402 break; 1403@@ -1631,7 +1631,7 @@ 1404 case icSigAbstractClass: 1405 if (!GetTag(icSigAToB0Tag)) { 1406 sReport += icValidateCriticalErrorMsg; 1407- sReport += "Critical tag(s) missing.\r\n"; 1408+ sReport += "Critical tag(s) missing.\n"; 1409 rv = icMaxStatus(rv, icValidateCriticalError); 1410 } 1411 break; 1412@@ -1639,7 +1639,7 @@ 1413 case icSigNamedColorClass: 1414 if (!GetTag(icSigNamedColor2Tag)) { 1415 sReport += icValidateCriticalErrorMsg; 1416- sReport += "Critical tag(s) missing.\r\n"; 1417+ sReport += "Critical tag(s) missing.\n"; 1418 rv = icMaxStatus(rv, icValidateCriticalError); 1419 } 1420 1421@@ -1647,7 +1647,7 @@ 1422 1423 default: 1424 sReport += icValidateCriticalErrorMsg; 1425- sReport += "Unknown Profile Class.\r\n"; 1426+ sReport += "Unknown Profile Class.\n"; 1427 rv = icMaxStatus(rv, icValidateCriticalError); 1428 break; 1429 } 1430@@ -1724,7 +1724,7 @@ 1431 // Check for duplicate tags 1432 if (!AreTagsUnique()) { 1433 sReport += icValidateWarning; 1434- sReport += " - There are duplicate tags.\r\n"; 1435+ sReport += " - There are duplicate tags.\n"; 1436 rv =icMaxStatus(rv, icValidateWarning); 1437 } 1438 1439@@ -1979,7 +1979,7 @@ 1440 sReport = icValidateCriticalErrorMsg; 1441 sReport += " - "; 1442 sReport += szFilename; 1443- sReport += "- Invalid Filename\r\n"; 1444+ sReport += "- Invalid Filename\n"; 1445 delete pFileIO; 1446 return NULL; 1447 } 1448--- misc/SampleICC-1.3.2/IccProfLib/IccTagBasic.cpp Mon Aug 20 22:05:00 2007 1449+++ misc/build/SampleICC-1.3.2/IccProfLib/IccTagBasic.cpp Fri Jan 25 14:23:09 2008 1450@@ -166,7 +166,7 @@ 1451 CIccInfo Info; 1452 sReport += icValidateNonCompliantMsg; 1453 sReport += Info.GetSigName(sig); 1454- sReport += " - Reserved Value must be zero.\r\n"; 1455+ sReport += " - Reserved Value must be zero.\n"; 1456 1457 rv = icValidateNonCompliant; 1458 } 1459@@ -340,7 +340,7 @@ 1460 sprintf(buf, "%u Bytes.", m_nSize-4); 1461 sDescription += buf; 1462 1463- sDescription += "\r\n\r\nData Follows:\r\n"; 1464+ sDescription += "\n\nData Follows:\n"; 1465 1466 icMemDump(sDescription, m_pData+4, m_nSize-4); 1467 } 1468@@ -511,7 +511,7 @@ 1469 if (m_szText && *m_szText) 1470 sDescription += m_szText; 1471 1472- sDescription += "\"\r\n"; 1473+ sDescription += "\"\n"; 1474 } 1475 1476 1477@@ -629,7 +629,7 @@ 1478 if (m_nBufSize<7) { 1479 sReport += icValidateNonCompliantMsg; 1480 sReport += sSigName; 1481- sReport += " - Tag must have at least seven text characters.\r\n"; 1482+ sReport += " - Tag must have at least seven text characters.\n"; 1483 rv = icMaxStatus(rv, icValidateNonCompliant); 1484 } 1485 break; 1486@@ -636,7 +636,7 @@ 1487 default: 1488 sReport += icValidateWarningMsg; 1489 sReport += sSigName; 1490- sReport += " - Unknown Tag.\r\n"; 1491+ sReport += " - Unknown Tag.\n"; 1492 rv = icMaxStatus(rv, icValidateWarning); 1493 } 1494 int i; 1495@@ -644,7 +644,7 @@ 1496 if (m_szText[i]&0x80) { 1497 sReport += icValidateWarning; 1498 sReport += sSigName; 1499- sReport += " - Text do not contain 7bit data.\r\n"; 1500+ sReport += " - Text do not contain 7bit data.\n"; 1501 } 1502 } 1503 } 1504@@ -651,7 +651,7 @@ 1505 else { 1506 sReport += icValidateWarningMsg; 1507 sReport += sSigName; 1508- sReport += " - Empty Tag.\r\n"; 1509+ sReport += " - Empty Tag.\n"; 1510 rv = icMaxStatus(rv, icValidateWarning); 1511 } 1512 1513@@ -941,7 +941,7 @@ 1514 if (m_szText && *m_szText) 1515 sDescription += m_szText; 1516 1517- sDescription += "\"\r\n"; 1518+ sDescription += "\"\n"; 1519 } 1520 1521 1522@@ -1101,7 +1101,7 @@ 1523 if (m_nScriptSize>67) { 1524 sReport += icValidateNonCompliantMsg; 1525 sReport += sSigName; 1526- sReport += " - ScriptCode count must not be greater than 67.\r\n"; 1527+ sReport += " - ScriptCode count must not be greater than 67.\n"; 1528 1529 rv =icMaxStatus(rv, icValidateNonCompliant); 1530 } 1531@@ -1260,7 +1260,7 @@ 1532 CIccInfo Fmt; 1533 1534 sDescription += Fmt.GetSigName(m_nSig); 1535- sDescription += "\r\n"; 1536+ sDescription += "\n"; 1537 } 1538 1539 1540@@ -1320,7 +1320,7 @@ 1541 { 1542 sReport += icValidateNonCompliantMsg; 1543 sReport += sSigName; 1544- sprintf(buf, " - %s: Unknown Technology.\r\n", Info.GetSigName(m_nSig)); 1545+ sprintf(buf, " - %s: Unknown Technology.\n", Info.GetSigName(m_nSig)); 1546 sReport += buf; 1547 rv = icMaxStatus(rv, icValidateNonCompliant); 1548 } 1549@@ -1336,7 +1336,7 @@ 1550 { 1551 sReport += icValidateNonCompliantMsg; 1552 sReport += sSigName; 1553- sprintf(buf, " - %s: Unknown Reference Medium Gamut.\r\n", Info.GetSigName(m_nSig)); 1554+ sprintf(buf, " - %s: Unknown Reference Medium Gamut.\n", Info.GetSigName(m_nSig)); 1555 sReport += buf; 1556 rv = icMaxStatus(rv, icValidateNonCompliant); 1557 } 1558@@ -1355,7 +1355,7 @@ 1559 { 1560 sReport += icValidateNonCompliantMsg; 1561 sReport += sSigName; 1562- sprintf(buf, " - %s: Unknown Colorimetric Intent Image State.\r\n", Info.GetSigName(m_nSig)); 1563+ sprintf(buf, " - %s: Unknown Colorimetric Intent Image State.\n", Info.GetSigName(m_nSig)); 1564 sReport += buf; 1565 rv = icMaxStatus(rv, icValidateNonCompliant); 1566 } 1567@@ -1686,7 +1686,7 @@ 1568 1569 sDescription.reserve(sDescription.size() + m_nSize*79); 1570 1571- sprintf(buf, "BEGIN_NAMED_COLORS flags=%08x %u %u\r\n", m_nVendorFlags, m_nSize, m_nDeviceCoords); 1572+ sprintf(buf, "BEGIN_NAMED_COLORS flags=%08x %u %u\n", m_nVendorFlags, m_nSize, m_nDeviceCoords); 1573 sDescription += buf; 1574 1575 for (i=0; i<m_nSize; i++) { 1576@@ -1717,7 +1717,7 @@ 1577 sDescription += buf; 1578 } 1579 } 1580- sDescription += "\r\n"; 1581+ sDescription += "\n"; 1582 1583 pNamedColor = (SIccNamedColorEntry*)((icChar*)pNamedColor + m_nColorEntrySize); 1584 } 1585@@ -2082,7 +2082,7 @@ 1586 if (!m_nSize) { 1587 sReport += icValidateWarningMsg; 1588 sReport += sSigName; 1589- sReport += " - Empty tag!\r\n"; 1590+ sReport += " - Empty tag!\n"; 1591 rv = icMaxStatus(rv, icValidateWarning); 1592 } 1593 1594@@ -2092,7 +2092,7 @@ 1595 if (m_nDeviceCoords != nCoords) { 1596 sReport += icValidateNonCompliantMsg; 1597 sReport += sSigName; 1598- sReport += " - Incorrect number of device co-ordinates.\r\n"; 1599+ sReport += " - Incorrect number of device co-ordinates.\n"; 1600 rv = icMaxStatus(rv, icValidateNonCompliant); 1601 } 1602 } 1603@@ -2099,7 +2099,7 @@ 1604 else { 1605 sReport += icValidateWarningMsg; 1606 sReport += sSigName; 1607- sReport += " - Tag validation incomplete: Pointer to profile unavailable.\r\n"; 1608+ sReport += " - Tag validation incomplete: Pointer to profile unavailable.\n"; 1609 rv = icMaxStatus(rv, icValidateWarning); 1610 } 1611 } 1612@@ -2285,7 +2285,7 @@ 1613 icChar buf[128]; 1614 1615 if (m_nSize == 1 ) { 1616- sprintf(buf, "X=%.4lf, Y=%.4lf, Z=%.4lf\r\n", icFtoD(m_XYZ[0].X), icFtoD(m_XYZ[0].Y), icFtoD(m_XYZ[0].Z)); 1617+ sprintf(buf, "X=%.4lf, Y=%.4lf, Z=%.4lf\n", icFtoD(m_XYZ[0].X), icFtoD(m_XYZ[0].Y), icFtoD(m_XYZ[0].Z)); 1618 sDescription += buf; 1619 } 1620 else { 1621@@ -2293,7 +2293,7 @@ 1622 sDescription.reserve(sDescription.size() + m_nSize*79); 1623 1624 for (i=0; i<m_nSize; i++) { 1625- sprintf(buf, "value[%u]: X=%.4lf, Y=%.4lf, Z=%.4lf\r\n", i, icFtoD(m_XYZ[i].X), icFtoD(m_XYZ[i].Y), icFtoD(m_XYZ[i].Z)); 1626+ sprintf(buf, "value[%u]: X=%.4lf, Y=%.4lf, Z=%.4lf\n", i, icFtoD(m_XYZ[i].X), icFtoD(m_XYZ[i].Y), icFtoD(m_XYZ[i].Z)); 1627 sDescription += buf; 1628 } 1629 } 1630@@ -2347,7 +2347,7 @@ 1631 if (!m_nSize) { 1632 sReport += icValidateWarningMsg; 1633 sReport += sSigName; 1634- sReport += " - Empty tag.\r\n"; 1635+ sReport += " - Empty tag.\n"; 1636 1637 rv = icMaxStatus(rv, icValidateWarning); 1638 return rv; 1639@@ -2553,14 +2553,14 @@ 1640 1641 icUInt32Number i; 1642 //sDescription.reserve(sDescription.size() + m_nChannels*79); 1643- sprintf(buf, "Number of Channels : %u\r\n", m_nChannels); 1644+ sprintf(buf, "Number of Channels : %u\n", m_nChannels); 1645 sDescription += buf; 1646 1647- sprintf(buf, "Colorant Encoding : %s\r\n", Fmt.GetColorantEncoding((icColorantEncoding)m_nColorantType)); 1648+ sprintf(buf, "Colorant Encoding : %s\n", Fmt.GetColorantEncoding((icColorantEncoding)m_nColorantType)); 1649 sDescription += buf; 1650 1651 for (i=0; i<m_nChannels; i++) { 1652- sprintf(buf, "value[%u]: x=%.3lf, y=%.3lf\r\n", i, icUFtoD(m_xy[i].x), icUFtoD(m_xy[i].y)); 1653+ sprintf(buf, "value[%u]: x=%.3lf, y=%.3lf\n", i, icUFtoD(m_xy[i].x), icUFtoD(m_xy[i].y)); 1654 sDescription += buf; 1655 } 1656 1657@@ -2617,7 +2617,7 @@ 1658 if (m_nChannels!=3) { 1659 sReport += icValidateCriticalErrorMsg; 1660 sReport += sSigName; 1661- sReport += " - Number of device channels must be three.\r\n"; 1662+ sReport += " - Number of device channels must be three.\n"; 1663 rv = icMaxStatus(rv, icValidateCriticalError); 1664 } 1665 1666@@ -2629,7 +2629,7 @@ 1667 (m_xy[2].x != icDtoUF((icFloatNumber)0.150)) || (m_xy[2].y != icDtoUF((icFloatNumber)0.060)) ) { 1668 sReport += icValidateNonCompliantMsg; 1669 sReport += sSigName; 1670- sReport += " - Chromaticity data does not match specification.\r\n"; 1671+ sReport += " - Chromaticity data does not match specification.\n"; 1672 rv = icMaxStatus(rv, icValidateNonCompliant); 1673 } 1674 break; 1675@@ -2642,7 +2642,7 @@ 1676 (m_xy[2].x != icDtoUF((icFloatNumber)0.155)) || (m_xy[2].y != icDtoUF((icFloatNumber)0.070)) ) { 1677 sReport += icValidateNonCompliantMsg; 1678 sReport += sSigName; 1679- sReport += " - Chromaticity data does not match specification.\r\n"; 1680+ sReport += " - Chromaticity data does not match specification.\n"; 1681 rv = icMaxStatus(rv, icValidateNonCompliant); 1682 } 1683 break; 1684@@ -2655,7 +2655,7 @@ 1685 (m_xy[2].x != icDtoUF((icFloatNumber)0.15)) || (m_xy[2].y != icDtoUF((icFloatNumber)0.06)) ) { 1686 sReport += icValidateNonCompliantMsg; 1687 sReport += sSigName; 1688- sReport += " - Chromaticity data does not match specification.\r\n"; 1689+ sReport += " - Chromaticity data does not match specification.\n"; 1690 rv = icMaxStatus(rv, icValidateNonCompliant); 1691 } 1692 break; 1693@@ -2668,7 +2668,7 @@ 1694 (m_xy[2].x != icDtoUF((icFloatNumber)0.155)) || (m_xy[2].y != icDtoUF((icFloatNumber)0.070)) ) { 1695 sReport += icValidateNonCompliantMsg; 1696 sReport += sSigName; 1697- sReport += " - Chromaticity data does not match specification.\r\n"; 1698+ sReport += " - Chromaticity data does not match specification.\n"; 1699 rv = icMaxStatus(rv, icValidateNonCompliant); 1700 } 1701 break; 1702@@ -2678,7 +2678,7 @@ 1703 { 1704 sReport += icValidateNonCompliantMsg; 1705 sReport += sSigName; 1706- sReport += " - Invalid colorant type encoding.\r\n"; 1707+ sReport += " - Invalid colorant type encoding.\n"; 1708 rv = icMaxStatus(rv, icValidateNonCompliant); 1709 } 1710 } 1711@@ -2884,9 +2884,9 @@ 1712 1713 if (m_nSize == 1 ) { 1714 if (Tsig==icSigS15Fixed16ArrayType) 1715- sprintf(buf, "Value = %.4lf\r\n", icFtoD(m_Num[0])); 1716+ sprintf(buf, "Value = %.4lf\n", icFtoD(m_Num[0])); 1717 else 1718- sprintf(buf, "Value = %.4lf\r\n", icUFtoD(m_Num[0])); 1719+ sprintf(buf, "Value = %.4lf\n", icUFtoD(m_Num[0])); 1720 sDescription += buf; 1721 } 1722 else { 1723@@ -2893,18 +2893,18 @@ 1724 icUInt32Number i; 1725 1726 if (Tsig==icSigS15Fixed16ArrayType && m_nSize==9) { 1727- sDescription += "Matrix Form:\r\n"; 1728+ sDescription += "Matrix Form:\n"; 1729 icMatrixDump(sDescription, (icS15Fixed16Number*)m_Num); 1730 1731- sDescription += "\r\nArrayForm:\r\n"; 1732+ sDescription += "\nArrayForm:\n"; 1733 } 1734 sDescription.reserve(sDescription.size() + m_nSize*79); 1735 1736 for (i=0; i<m_nSize; i++) { 1737 if (Tsig==icSigS15Fixed16ArrayType) 1738- sprintf(buf, "Value[%u] = %.4lf\r\n", i, icFtoD(m_Num[i])); 1739+ sprintf(buf, "Value[%u] = %.4lf\n", i, icFtoD(m_Num[i])); 1740 else 1741- sprintf(buf, "Value[%u] = %.4lf\r\n", i, icUFtoD(m_Num[i])); 1742+ sprintf(buf, "Value[%u] = %.4lf\n", i, icUFtoD(m_Num[i])); 1743 sDescription += buf; 1744 } 1745 } 1746@@ -3172,7 +3172,7 @@ 1747 icChar buf[128]; 1748 1749 if (m_nSize == 1 ) { 1750- sprintf(buf, "Value = %u (0x%x)\r\n", m_Num[0], m_Num[0]); 1751+ sprintf(buf, "Value = %u (0x%x)\n", m_Num[0], m_Num[0]); 1752 sDescription += buf; 1753 } 1754 else { 1755@@ -3180,7 +3180,7 @@ 1756 sDescription.reserve(sDescription.size() + m_nSize*79); 1757 1758 for (i=0; i<m_nSize; i++) { 1759- sprintf(buf, "Value[%u] = %u (0x%x)\r\n", i, m_Num[i], m_Num[i]); 1760+ sprintf(buf, "Value[%u] = %u (0x%x)\n", i, m_Num[i], m_Num[i]); 1761 sDescription += buf; 1762 } 1763 } 1764@@ -3374,15 +3374,15 @@ 1765 CIccInfo Fmt; 1766 icChar buf[128]; 1767 1768- sDescription += Fmt.GetStandardObserverName(m_Data.stdObserver); sDescription += "\r\n"; 1769- sprintf(buf, "Backing measurement: X=%.4lf, Y=%.4lf, Z=%.4lf\r\n", 1770+ sDescription += Fmt.GetStandardObserverName(m_Data.stdObserver); sDescription += "\n"; 1771+ sprintf(buf, "Backing measurement: X=%.4lf, Y=%.4lf, Z=%.4lf\n", 1772 icFtoD(m_Data.backing.X), 1773 icFtoD(m_Data.backing.Y), 1774 icFtoD(m_Data.backing.Z)); 1775 sDescription += buf; 1776- sDescription += Fmt.GetMeasurementGeometryName(m_Data.geometry); sDescription += "\r\n"; 1777- sDescription += Fmt.GetMeasurementFlareName(m_Data.flare); sDescription += "\r\n"; 1778- sDescription += Fmt.GetIlluminantName(m_Data.illuminant); sDescription += "\r\n"; 1779+ sDescription += Fmt.GetMeasurementGeometryName(m_Data.geometry); sDescription += "\n"; 1780+ sDescription += Fmt.GetMeasurementFlareName(m_Data.flare); sDescription += "\n"; 1781+ sDescription += Fmt.GetIlluminantName(m_Data.illuminant); sDescription += "\n"; 1782 } 1783 1784 1785@@ -3416,7 +3416,7 @@ 1786 default: 1787 sReport += icValidateNonCompliantMsg; 1788 sReport += sSigName; 1789- sReport += " - Invalid standard observer encoding.\r\n"; 1790+ sReport += " - Invalid standard observer encoding.\n"; 1791 rv = icMaxStatus(rv, icValidateNonCompliant); 1792 } 1793 1794@@ -3429,7 +3429,7 @@ 1795 default: 1796 sReport += icValidateNonCompliantMsg; 1797 sReport += sSigName; 1798- sReport += " - Invalid measurement geometry encoding.\r\n"; 1799+ sReport += " - Invalid measurement geometry encoding.\n"; 1800 rv = icMaxStatus(rv, icValidateNonCompliant); 1801 } 1802 1803@@ -3448,7 +3448,7 @@ 1804 default: 1805 sReport += icValidateNonCompliantMsg; 1806 sReport += sSigName; 1807- sReport += " - Invalid standard illuminant encoding.\r\n"; 1808+ sReport += " - Invalid standard illuminant encoding.\n"; 1809 rv = icMaxStatus(rv, icValidateNonCompliant); 1810 } 1811 1812@@ -3902,9 +3902,9 @@ 1813 1814 for (i=m_Strings->begin(); i!=m_Strings->end(); i++) { 1815 if (i!=m_Strings->begin()) 1816- sDescription += "\r\n"; 1817+ sDescription += "\n"; 1818 1819- sprintf(szBuf, "Language = '%c%c', Region = '%c%c'\r\n", 1820+ sprintf(szBuf, "Language = '%c%c', Region = '%c%c'\n", 1821 i->m_nLanguageCode>>8, i->m_nLanguageCode, 1822 i->m_nCountryCode>>8, i->m_nCountryCode); 1823 1824@@ -3919,7 +3919,7 @@ 1825 i->GetAnsi(szBuf, nSize); 1826 sDescription += "\""; 1827 sDescription += szBuf; 1828- sDescription += "\"\r\n"; 1829+ sDescription += "\"\n"; 1830 } 1831 } 1832 1833@@ -3948,7 +3948,7 @@ 1834 if (!m_Strings->size()) { 1835 sReport += icValidateWarningMsg; 1836 sReport += sSigName; 1837- sReport += " - Empty tag!\r\n"; 1838+ sReport += " - Empty tag!\n"; 1839 rv = icMaxStatus(rv, icValidateWarning); 1840 } 1841 1842@@ -4246,15 +4246,15 @@ 1843 { 1844 icChar buf[128]; 1845 1846- sDescription = "\r\nData:\r\n"; 1847+ sDescription = "\nData:\n"; 1848 1849 if (IsTypeAscii()) { 1850- sprintf(buf, "%s\r\n", (icChar*)m_pData); 1851+ sprintf(buf, "%s\n", (icChar*)m_pData); 1852 sDescription += buf; 1853 } 1854 else 1855 for (int i = 0; i<(int)m_nSize; i++) { 1856- sprintf(buf, "%d\r\n", m_pData[i]); 1857+ sprintf(buf, "%d\n", m_pData[i]); 1858 sDescription += buf; 1859 } 1860 1861@@ -4312,7 +4312,7 @@ 1862 default: 1863 sReport += icValidateNonCompliantMsg; 1864 sReport += sSigName; 1865- sReport += " - Invalid data flag encoding.\r\n"; 1866+ sReport += " - Invalid data flag encoding.\n"; 1867 rv = icMaxStatus(rv, icValidateNonCompliant); 1868 } 1869 1870@@ -4477,11 +4477,11 @@ 1871 icChar buf[128]; 1872 1873 sDescription = "Date = "; 1874- sprintf(buf, "%u-%u-%u\r\n", m_DateTime.month, m_DateTime.day, m_DateTime.year); 1875+ sprintf(buf, "%u-%u-%u\n", m_DateTime.month, m_DateTime.day, m_DateTime.year); 1876 sDescription += buf; 1877 1878 sDescription += "Time = "; 1879- sprintf(buf, "%u:%u:%u\r\n", m_DateTime.hours, m_DateTime.minutes, m_DateTime.seconds); 1880+ sprintf(buf, "%u:%u:%u\n", m_DateTime.hours, m_DateTime.minutes, m_DateTime.seconds); 1881 sDescription += buf; 1882 } 1883 1884@@ -4697,12 +4697,12 @@ 1885 { 1886 icChar buf[128]; 1887 1888- sprintf(buf, "Colorant Count : %u\r\n", m_nCount); 1889+ sprintf(buf, "Colorant Count : %u\n", m_nCount); 1890 sDescription += buf; 1891- sDescription += "Order of Colorants:\r\n"; 1892+ sDescription += "Order of Colorants:\n"; 1893 1894 for (int i=0; i<(int)m_nCount; i++) { 1895- sprintf(buf, "%u\r\n", m_pData[i]); 1896+ sprintf(buf, "%u\n", m_pData[i]); 1897 sDescription += buf; 1898 } 1899 } 1900@@ -4757,7 +4757,7 @@ 1901 if (!pProfile) { 1902 sReport += icValidateWarningMsg; 1903 sReport += sSigName; 1904- sReport += " - Tag validation incomplete: Pointer to profile unavailable.\r\n"; 1905+ sReport += " - Tag validation incomplete: Pointer to profile unavailable.\n"; 1906 rv = icMaxStatus(rv, icValidateWarning); 1907 return rv; 1908 } 1909@@ -4765,7 +4765,7 @@ 1910 if (m_nCount != icGetSpaceSamples(pProfile->m_Header.colorSpace)) { 1911 sReport += icValidateNonCompliantMsg; 1912 sReport += sSigName; 1913- sReport += " - Incorrect number of colorants.\r\n"; 1914+ sReport += " - Incorrect number of colorants.\n"; 1915 rv = icMaxStatus(rv, icValidateNonCompliant); 1916 } 1917 1918@@ -4977,7 +4977,7 @@ 1919 icUInt32Number i, nLen, nMaxLen=0; 1920 icFloatNumber Lab[3]; 1921 1922- sprintf(buf, "BEGIN_COLORANTS %u\r\n", m_nCount); 1923+ sprintf(buf, "BEGIN_COLORANTS %u\n", m_nCount); 1924 sDescription += buf; 1925 1926 for (i=0; i<m_nCount; i++) { 1927@@ -4988,11 +4988,11 @@ 1928 sDescription += "# NAME "; 1929 1930 if (m_PCS == icSigXYZData) { 1931- sprintf(buf, "XYZ_X XYZ_Y XYZ_Z\r\n"); 1932+ sprintf(buf, "XYZ_X XYZ_Y XYZ_Z\n"); 1933 sDescription += buf; 1934 } 1935 else { 1936- sprintf(buf, "Lab_L Lab_a Lab_b\r\n"); 1937+ sprintf(buf, "Lab_L Lab_a Lab_b\n"); 1938 sDescription += buf; 1939 } 1940 for (i=0; i<m_nCount; i++) { 1941@@ -5003,7 +5003,7 @@ 1942 sDescription += buf; 1943 1944 if (m_PCS == icSigXYZData) { 1945- sprintf(buf, "%7.4lf %7.4lf %7.4lf\r\n", icUSFtoD(m_pData[i].data[0]), icUSFtoD(m_pData[i].data[1]), icUSFtoD(m_pData[i].data[2])); 1946+ sprintf(buf, "%7.4lf %7.4lf %7.4lf\n", icUSFtoD(m_pData[i].data[0]), icUSFtoD(m_pData[i].data[1]), icUSFtoD(m_pData[i].data[2])); 1947 sDescription += buf; 1948 } 1949 else { 1950@@ -5011,7 +5011,7 @@ 1951 Lab[1] = icU16toF(m_pData[i].data[1]); 1952 Lab[2] = icU16toF(m_pData[i].data[2]); 1953 icLabFromPcs(Lab); 1954- sprintf(buf, "%7.4lf %8.4lf %8.4lf\r\n", Lab[0], Lab[1], Lab[2]); 1955+ sprintf(buf, "%7.4lf %8.4lf %8.4lf\n", Lab[0], Lab[1], Lab[2]); 1956 sDescription += buf; 1957 } 1958 } 1959@@ -5066,7 +5066,7 @@ 1960 if (!pProfile) { 1961 sReport += icValidateWarningMsg; 1962 sReport += sSigName; 1963- sReport += " - Tag validation incomplete: Pointer to profile unavailable.\r\n"; 1964+ sReport += " - Tag validation incomplete: Pointer to profile unavailable.\n"; 1965 rv = icMaxStatus(rv, icValidateWarning); 1966 return rv; 1967 } 1968@@ -5076,7 +5076,7 @@ 1969 if (pProfile->m_Header.deviceClass!=icSigLinkClass) { 1970 sReport += icValidateNonCompliantMsg; 1971 sReport += sSigName; 1972- sReport += " - Use of this tag is allowed only in DeviceLink Profiles.\r\n"; 1973+ sReport += " - Use of this tag is allowed only in DeviceLink Profiles.\n"; 1974 rv = icMaxStatus(rv, icValidateNonCompliant); 1975 } 1976 } 1977@@ -5084,7 +5084,7 @@ 1978 if (m_nCount != icGetSpaceSamples(pProfile->m_Header.colorSpace)) { 1979 sReport += icValidateNonCompliantMsg; 1980 sReport += sSigName; 1981- sReport += " - Incorrect number of colorants.\r\n"; 1982+ sReport += " - Incorrect number of colorants.\n"; 1983 rv = icMaxStatus(rv, icValidateNonCompliant); 1984 } 1985 1986@@ -5261,13 +5261,13 @@ 1987 icChar buf[128]; 1988 CIccInfo Fmt; 1989 1990- sprintf(buf, "Illuminant Tristimulus values: X = %.4lf, Y = %.4lf, Z = %.4lf\r\n", 1991+ sprintf(buf, "Illuminant Tristimulus values: X = %.4lf, Y = %.4lf, Z = %.4lf\n", 1992 icFtoD(m_XYZIllum.X), 1993 icFtoD(m_XYZIllum.Y), 1994 icFtoD(m_XYZIllum.Z)); 1995 sDescription += buf; 1996 1997- sprintf(buf, "Surround Tristimulus values: X = %.4lf, Y = %.4lf, Z = %.4lf\r\n", 1998+ sprintf(buf, "Surround Tristimulus values: X = %.4lf, Y = %.4lf, Z = %.4lf\n", 1999 icFtoD(m_XYZSurround.X), 2000 icFtoD(m_XYZSurround.Y), 2001 icFtoD(m_XYZSurround.Z)); 2002@@ -5276,7 +5276,7 @@ 2003 sDescription += "Illuminant Type: "; 2004 2005 sDescription += Fmt.GetIlluminantName(m_illumType); 2006- sDescription += "\r\n"; 2007+ sDescription += "\n"; 2008 2009 } 2010 2011@@ -5800,32 +5800,32 @@ 2012 icChar buf[128], buf2[28]; 2013 icUInt32Number count=0; 2014 2015- sprintf(buf, "Number of Profile Description Structures: %u\r\n", m_Descriptions->size()); 2016+ sprintf(buf, "Number of Profile Description Structures: %u\n", m_Descriptions->size()); 2017 sDescription += buf; 2018 2019 for (i=m_Descriptions->begin(); i!=m_Descriptions->end(); i++, count++) { 2020- sDescription += "\r\n"; 2021+ sDescription += "\n"; 2022 2023- sprintf(buf, "Profile Description Structure Number [%u] follows:\r\n", count+1); 2024+ sprintf(buf, "Profile Description Structure Number [%u] follows:\n", count+1); 2025 sDescription += buf; 2026 2027- sprintf(buf, "Device Manufacturer Signature: %s\r\n", icGetSig(buf2, i->m_deviceMfg, false)); 2028+ sprintf(buf, "Device Manufacturer Signature: %s\n", icGetSig(buf2, i->m_deviceMfg, false)); 2029 sDescription += buf; 2030 2031- sprintf(buf, "Device Model Signature: %s\r\n", icGetSig(buf2, i->m_deviceModel, false)); 2032+ sprintf(buf, "Device Model Signature: %s\n", icGetSig(buf2, i->m_deviceModel, false)); 2033 sDescription += buf; 2034 2035- sprintf(buf, "Device Attributes: %08x%08x\r\n", (icUInt32Number)(i->m_attributes >> 32), (icUInt32Number)(i->m_attributes)); 2036+ sprintf(buf, "Device Attributes: %08x%08x\n", (icUInt32Number)(i->m_attributes >> 32), (icUInt32Number)(i->m_attributes)); 2037 sDescription += buf; 2038 2039- sprintf(buf, "Device Technology Signature: %s\r\n", icGetSig(buf2, i->m_technology, false)); 2040+ sprintf(buf, "Device Technology Signature: %s\n", icGetSig(buf2, i->m_technology, false)); 2041 sDescription += buf; 2042 2043- sprintf(buf, "Description of device manufacturer: \r\n"); 2044+ sprintf(buf, "Description of device manufacturer: \n"); 2045 sDescription += buf; 2046 i->m_deviceMfgDesc.Describe(sDescription); 2047 2048- sprintf(buf, "Description of device model: \r\n"); 2049+ sprintf(buf, "Description of device model: \n"); 2050 sDescription += buf; 2051 i->m_deviceModelDesc.Describe(sDescription); 2052 } 2053@@ -5886,7 +5886,7 @@ 2054 { 2055 sReport += icValidateNonCompliantMsg; 2056 sReport += sSigName; 2057- sprintf(buf, " - %s: Unknown Technology.\r\n", Info.GetSigName(i->m_technology)); 2058+ sprintf(buf, " - %s: Unknown Technology.\n", Info.GetSigName(i->m_technology)); 2059 sReport += buf; 2060 rv = icMaxStatus(rv, icValidateNonCompliant); 2061 } 2062@@ -5896,7 +5896,7 @@ 2063 sReport += icValidateNonCompliantMsg; 2064 sReport += sSigName; 2065 2066- sReport += " Contains non-aligned deviceMfgDesc text tag information\r\n"; 2067+ sReport += " Contains non-aligned deviceMfgDesc text tag information\n"; 2068 2069 rv = icMaxStatus(rv, icValidateNonCompliant); 2070 } 2071@@ -5905,7 +5905,7 @@ 2072 sReport += icValidateNonCompliantMsg; 2073 sReport += sSigName; 2074 2075- sReport += " Contains non-aligned deviceModelDesc text tag information\r\n"; 2076+ sReport += " Contains non-aligned deviceModelDesc text tag information\n"; 2077 2078 rv = icMaxStatus(rv, icValidateNonCompliant); 2079 } 2080@@ -6174,25 +6174,25 @@ 2081 CIccResponse16List::iterator j; 2082 2083 sDescription += "Measurement Unit: "; 2084- sDescription += Fmt.GetMeasurementUnit((icSignature)GetMeasurementType()); sDescription += "\r\n"; 2085+ sDescription += Fmt.GetMeasurementUnit((icSignature)GetMeasurementType()); sDescription += "\n"; 2086 2087 2088 for (int i=0; i<m_nChannels; i++) { 2089 nResponseList = m_Response16ListArray[i]; 2090 2091- sDescription += "\r\n"; 2092- sprintf(buf, "Maximum Colorant XYZ Measurement for Channel-%u : X=%.4lf, Y=%.4lf, Z=%.4lf\r\n", i+1, 2093+ sDescription += "\n"; 2094+ sprintf(buf, "Maximum Colorant XYZ Measurement for Channel-%u : X=%.4lf, Y=%.4lf, Z=%.4lf\n", i+1, 2095 icFtoD(m_maxColorantXYZ[i].X), icFtoD(m_maxColorantXYZ[i].Y), icFtoD(m_maxColorantXYZ[i].Z)); 2096 sDescription += buf; 2097 2098- sprintf(buf, "Number of Measurements for Channel-%u : %u\r\n", i+1, nResponseList.size()); 2099+ sprintf(buf, "Number of Measurements for Channel-%u : %u\n", i+1, nResponseList.size()); 2100 sDescription += buf; 2101 2102- sprintf(buf, "Measurement Data for Channel-%u follows:\r\n", i+1); 2103+ sprintf(buf, "Measurement Data for Channel-%u follows:\n", i+1); 2104 sDescription += buf; 2105 2106 for (j=nResponseList.begin(); j!=nResponseList.end(); j++) { 2107- sprintf(buf, "Device Value= %u : Measurement Value= %.4lf\r\n", j->deviceCode, icFtoD(j->measurementValue)); 2108+ sprintf(buf, "Device Value= %u : Measurement Value= %.4lf\n", j->deviceCode, icFtoD(j->measurementValue)); 2109 sDescription += buf; 2110 } 2111 } 2112@@ -6234,7 +6234,7 @@ 2113 default: 2114 sReport += icValidateNonCompliantMsg; 2115 sReport += sSigName; 2116- sReport += " - Unknown measurement unit signature.\r\n"; 2117+ sReport += " - Unknown measurement unit signature.\n"; 2118 rv = icMaxStatus(rv, icValidateNonCompliant); 2119 } 2120 2121@@ -6241,7 +6241,7 @@ 2122 if (!m_nChannels) { 2123 sReport += icValidateNonCompliantMsg; 2124 sReport += sSigName; 2125- sReport += " - Incorrect number of channels.\r\n"; 2126+ sReport += " - Incorrect number of channels.\n"; 2127 rv = icMaxStatus(rv, icValidateNonCompliant); 2128 return rv; 2129 } 2130@@ -6479,17 +6479,17 @@ 2131 CIccResponseCurveSet::iterator i; 2132 icChar buf[128]; 2133 2134- sprintf(buf, "Number of Channels: %u\r\n", m_nChannels); 2135+ sprintf(buf, "Number of Channels: %u\n", m_nChannels); 2136 sDescription += buf; 2137 2138- sprintf(buf, "Number of Measurement Types used: %u\r\n", m_ResponseCurves->size()); 2139+ sprintf(buf, "Number of Measurement Types used: %u\n", m_ResponseCurves->size()); 2140 sDescription += buf; 2141 2142 int count = 0; 2143 for (i=m_ResponseCurves->begin(); i!=m_ResponseCurves->end(); i++, count++) { 2144- sDescription += "\r\n"; 2145+ sDescription += "\n"; 2146 2147- sprintf(buf, "Response Curve for measurement type [%u] follows:\r\n", count+1); 2148+ sprintf(buf, "Response Curve for measurement type [%u] follows:\n", count+1); 2149 sDescription += buf; 2150 2151 i->Describe(sDescription); 2152@@ -6658,7 +6658,7 @@ 2153 if (!pProfile) { 2154 sReport += icValidateWarningMsg; 2155 sReport += sSigName; 2156- sReport += " - Tag validation incomplete: Pointer to profile unavailable.\r\n"; 2157+ sReport += " - Tag validation incomplete: Pointer to profile unavailable.\n"; 2158 rv = icMaxStatus(rv, icValidateWarning); 2159 return rv; 2160 } 2161@@ -6666,13 +6666,13 @@ 2162 if (m_nChannels!=icGetSpaceSamples(pProfile->m_Header.colorSpace)) { 2163 sReport += icValidateWarningMsg; 2164 sReport += sSigName; 2165- sReport += " - Incorrect number of channels.\r\n"; 2166+ sReport += " - Incorrect number of channels.\n"; 2167 } 2168 2169 if (!GetNumResponseCurveTypes()) { 2170 sReport += icValidateWarningMsg; 2171 sReport += sSigName; 2172- sReport += " - Empty Tag!.\r\n"; 2173+ sReport += " - Empty Tag!.\n"; 2174 rv = icMaxStatus(rv, icValidateWarning); 2175 } 2176 else { 2177--- misc/SampleICC-1.3.2/IccProfLib/IccTagLut.cpp Mon Aug 20 22:05:00 2007 2178+++ misc/build/SampleICC-1.3.2/IccProfLib/IccTagLut.cpp Fri Jan 25 14:23:09 2008 2179@@ -323,23 +323,23 @@ 2180 icChar buf[128], *ptr; 2181 2182 if (!m_nSize) { 2183- sprintf(buf, "BEGIN_CURVE In_Out\r\n"); 2184+ sprintf(buf, "BEGIN_CURVE In_Out\n"); 2185 sDescription += buf; 2186- sDescription += "Y = X\r\n"; 2187+ sDescription += "Y = X\n"; 2188 } 2189 else if (m_nSize==1) { 2190 icFloatNumber dGamma = (icFloatNumber)(m_Curve[0] * 256.0); 2191- sprintf(buf, "BEGIN_CURVE In_Out\r\n"); 2192+ sprintf(buf, "BEGIN_CURVE In_Out\n"); 2193 sDescription += buf; 2194- sprintf(buf, "Y = X ^ %.4lf\r\n", dGamma); 2195+ sprintf(buf, "Y = X ^ %.4lf\n", dGamma); 2196 sDescription += buf; 2197 } 2198 else { 2199 int i; 2200 2201- sprintf(buf, "BEGIN_LUT In_Out 1 1\r\n"); 2202+ sprintf(buf, "BEGIN_LUT In_Out 1 1\n"); 2203 sDescription += buf; 2204- sDescription += "IN OUT\r\n"; 2205+ sDescription += "IN OUT\n"; 2206 2207 for (i=0; i<(int)m_nSize; i++) { 2208 ptr = buf; 2209@@ -354,12 +354,12 @@ 2210 2211 ptr += strlen(ptr); 2212 2213- strcpy(ptr, "\r\n"); 2214+ strcpy(ptr, "\n"); 2215 2216 sDescription += buf; 2217 } 2218 } 2219- sDescription += "\r\n"; 2220+ sDescription += "\n"; 2221 } 2222 2223 2224@@ -383,23 +383,23 @@ 2225 icChar buf[128], *ptr; 2226 2227 if (!m_nSize) { 2228- sprintf(buf, "BEGIN_CURVE %s\r\n", szName); 2229+ sprintf(buf, "BEGIN_CURVE %s\n", szName); 2230 sDescription += buf; 2231- sDescription += "Y = X\r\n"; 2232+ sDescription += "Y = X\n"; 2233 } 2234 else if (m_nSize==1) { 2235 icFloatNumber dGamma = (icFloatNumber)(m_Curve[0] * 256.0); 2236- sprintf(buf, "BEGIN_CURVE %s\r\n", szName); 2237+ sprintf(buf, "BEGIN_CURVE %s\n", szName); 2238 sDescription += buf; 2239- sprintf(buf, "Y = X ^ %.4lf\r\n", dGamma); 2240+ sprintf(buf, "Y = X ^ %.4lf\n", dGamma); 2241 sDescription += buf; 2242 } 2243 else { 2244 int i; 2245 2246- sprintf(buf, "BEGIN_LUT %s 1 1\r\n", szName); 2247+ sprintf(buf, "BEGIN_LUT %s 1 1\n", szName); 2248 sDescription += buf; 2249- sDescription += "IN OUT\r\n"; 2250+ sDescription += "IN OUT\n"; 2251 2252 sDescription.reserve(sDescription.size() + m_nSize * 20); 2253 2254@@ -416,12 +416,12 @@ 2255 2256 ptr += strlen(ptr); 2257 2258- strcpy(ptr, "\r\n"); 2259+ strcpy(ptr, "\n"); 2260 2261 sDescription += buf; 2262 } 2263 } 2264- sDescription += "\r\n"; 2265+ sDescription += "\n"; 2266 } 2267 2268 2269@@ -614,7 +614,7 @@ 2270 if (m_Curve[0]>0.0 || m_Curve[m_nSize-1]<1.0) { 2271 sReport += icValidateWarningMsg; 2272 sReport += sSigName; 2273- sReport += " - Curve cannot be accurately inverted.\r\n"; 2274+ sReport += " - Curve cannot be accurately inverted.\n"; 2275 rv = icMaxStatus(rv, icValidateWarning); 2276 } 2277 } 2278@@ -822,56 +822,56 @@ 2279 { 2280 icChar buf[128]; 2281 2282- sprintf(buf, "FunctionType: %04Xh\r\n", m_nFunctionType); 2283+ sprintf(buf, "FunctionType: %04Xh\n", m_nFunctionType); 2284 sDescription += buf; 2285 2286 switch(m_nFunctionType) { 2287 case 0x0000: 2288- sprintf(buf, "Y = X ^ %.4lf\r\n", icFtoD(m_Param[0])); 2289+ sprintf(buf, "Y = X ^ %.4lf\n", icFtoD(m_Param[0])); 2290 sDescription += buf; 2291 return; 2292 2293 case 0x0001: 2294- sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf when (X >= %.4lf / %.4lf)\r\n", 2295+ sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf when (X >= %.4lf / %.4lf)\n", 2296 icFtoD(m_Param[1]), icFtoD(m_Param[2]), icFtoD(m_Param[0]), 2297 -icFtoD(m_Param[2]), icFtoD(m_Param[1])); 2298 sDescription += buf; 2299 2300- sprintf(buf, "Y = 0 when (X < %.4lf / %.4lf)\r\n", 2301+ sprintf(buf, "Y = 0 when (X < %.4lf / %.4lf)\n", 2302 -icFtoD(m_Param[2]), icFtoD(m_Param[1])); 2303 sDescription += buf; 2304 return; 2305 2306 case 0x0002: 2307- sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf + %.4lf when (X >= %.4lf / %.4lf)\r\n", 2308+ sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf + %.4lf when (X >= %.4lf / %.4lf)\n", 2309 icFtoD(m_Param[1]), icFtoD(m_Param[2]), icFtoD(m_Param[0]), 2310 icFtoD(m_Param[3]), 2311 -icFtoD(m_Param[2]), icFtoD(m_Param[1])); 2312 sDescription += buf; 2313 2314- sprintf(buf, "Y = %.4lf when (X < %.4lf / %.4lf)\r\n", icFtoD(m_Param[3]), 2315+ sprintf(buf, "Y = %.4lf when (X < %.4lf / %.4lf)\n", icFtoD(m_Param[3]), 2316 -icFtoD(m_Param[2]), icFtoD(m_Param[1])); 2317 sDescription += buf; 2318 return; 2319 2320 case 0x0003: 2321- sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf when (X >= %.4lf)\r\n", 2322+ sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf when (X >= %.4lf)\n", 2323 icFtoD(m_Param[1]), icFtoD(m_Param[2]), icFtoD(m_Param[0]), 2324 icFtoD(m_Param[4])); 2325 sDescription += buf; 2326 2327- sprintf(buf, "Y = %lf * X when (X < %.4lf)\r\n", 2328+ sprintf(buf, "Y = %lf * X when (X < %.4lf)\n", 2329 icFtoD(m_Param[3]), icFtoD(m_Param[4])); 2330 sDescription += buf; 2331 return; 2332 2333 case 0x0004: 2334- sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf + %.4lf when (X >= %.4lf)\r\n", 2335+ sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf + %.4lf when (X >= %.4lf)\n", 2336 icFtoD(m_Param[1]), icFtoD(m_Param[2]), icFtoD(m_Param[0]), 2337 icFtoD(m_Param[5]), icFtoD(m_Param[4])); 2338 sDescription += buf; 2339 2340- sprintf(buf, "Y = %lf * X + %.4lf when (X < %.4lf)\r\n", 2341+ sprintf(buf, "Y = %lf * X + %.4lf when (X < %.4lf)\n", 2342 icFtoD(m_Param[3]), icFtoD(m_Param[6]), icFtoD(m_Param[4])); 2343 sDescription += buf; 2344 return; 2345@@ -878,11 +878,11 @@ 2346 2347 default: 2348 int i; 2349- sprintf(buf, "Unknown Function with %d parameters:\r\n"); 2350+ sprintf(buf, "Unknown Function with %d parameters:\n", m_nNumParam); 2351 sDescription += buf; 2352 2353 for (i=0; i<m_nNumParam; i++) { 2354- sprintf(buf, "Param[%d] = %.4lf\r\n", i, icFtoD(m_Param[i])); 2355+ sprintf(buf, "Param[%d] = %.4lf\n", i, icFtoD(m_Param[i])); 2356 sDescription += buf; 2357 } 2358 } 2359@@ -907,10 +907,10 @@ 2360 { 2361 icChar buf[128]; 2362 2363- sprintf(buf, "BEGIN_CURVE %s\r\n", szName); 2364+ sprintf(buf, "BEGIN_CURVE %s\n", szName); 2365 sDescription += buf; 2366 Describe(sDescription); 2367- sDescription += "\r\n"; 2368+ sDescription += "\n"; 2369 } 2370 2371 2372@@ -1106,7 +1106,7 @@ 2373 if (m_nReserved2!=0) { 2374 sReport += icValidateNonCompliantMsg; 2375 sReport += sSigName; 2376- sReport += " - Reserved Value must be zero.\r\n"; 2377+ sReport += " - Reserved Value must be zero.\n"; 2378 2379 rv = icMaxStatus(rv, icValidateNonCompliant); 2380 } 2381@@ -1116,7 +1116,7 @@ 2382 if (m_nNumParam!=1) { 2383 sReport += icValidateCriticalErrorMsg; 2384 sReport += sSigName; 2385- sReport += " - Number of parameters inconsistent with function type.\r\n"; 2386+ sReport += " - Number of parameters inconsistent with function type.\n"; 2387 rv = icMaxStatus(rv, icValidateCriticalError); 2388 } 2389 break; 2390@@ -1125,7 +1125,7 @@ 2391 if (m_nNumParam!=3) { 2392 sReport += icValidateCriticalErrorMsg; 2393 sReport += sSigName; 2394- sReport += " - Number of parameters inconsistent with function type.\r\n"; 2395+ sReport += " - Number of parameters inconsistent with function type.\n"; 2396 rv = icMaxStatus(rv, icValidateCriticalError); 2397 } 2398 break; 2399@@ -1134,7 +1134,7 @@ 2400 if (m_nNumParam!=4) { 2401 sReport += icValidateCriticalErrorMsg; 2402 sReport += sSigName; 2403- sReport += " - Number of parameters inconsistent with function type.\r\n"; 2404+ sReport += " - Number of parameters inconsistent with function type.\n"; 2405 rv = icMaxStatus(rv, icValidateCriticalError); 2406 } 2407 break; 2408@@ -1143,7 +1143,7 @@ 2409 if (m_nNumParam!=5) { 2410 sReport += icValidateCriticalErrorMsg; 2411 sReport += sSigName; 2412- sReport += " - Number of parameters inconsistent with function type.\r\n"; 2413+ sReport += " - Number of parameters inconsistent with function type.\n"; 2414 rv = icMaxStatus(rv, icValidateCriticalError); 2415 } 2416 break; 2417@@ -1152,7 +1152,7 @@ 2418 if (m_nNumParam!=7) { 2419 sReport += icValidateCriticalErrorMsg; 2420 sReport += sSigName; 2421- sReport += " - Number of parameters inconsistent with function type.\r\n"; 2422+ sReport += " - Number of parameters inconsistent with function type.\n"; 2423 rv = icMaxStatus(rv, icValidateCriticalError); 2424 } 2425 break; 2426@@ -1160,7 +1160,7 @@ 2427 default: 2428 sReport += icValidateCriticalErrorMsg; 2429 sReport += sSigName; 2430- sReport += " - Unknown function type.\r\n"; 2431+ sReport += " - Unknown function type.\n"; 2432 rv = icMaxStatus(rv, icValidateCriticalError); 2433 } 2434 2435@@ -1170,7 +1170,7 @@ 2436 if (lval>0.0 || uval<1.0) { 2437 sReport += icValidateWarningMsg; 2438 sReport += sSigName; 2439- sReport += " - Curve cannot be accurately inverted.\r\n"; 2440+ sReport += " - Curve cannot be accurately inverted.\n"; 2441 rv = icMaxStatus(rv, icValidateWarning); 2442 } 2443 } 2444@@ -1255,32 +1255,32 @@ 2445 { 2446 icChar buf[128]; 2447 2448- sprintf(buf, "BEGIN_MATRIX %s\r\n", szName); 2449+ sprintf(buf, "BEGIN_MATRIX %s\n", szName); 2450 sDescription += buf; 2451 2452 if (!m_bUseConstants) { 2453- sprintf(buf, "%8.4lf %8.4lf %8.4lf\r\n", 2454+ sprintf(buf, "%8.4lf %8.4lf %8.4lf\n", 2455 m_e[0], m_e[1], m_e[2]); 2456 sDescription += buf; 2457- sprintf(buf, "%8.4lf %8.4lf %8.4lf\r\n", 2458+ sprintf(buf, "%8.4lf %8.4lf %8.4lf\n", 2459 m_e[3], m_e[4], m_e[5]); 2460 sDescription += buf; 2461- sprintf(buf, "%8.4lf %8.4lf %8.4lf\r\n", 2462+ sprintf(buf, "%8.4lf %8.4lf %8.4lf\n", 2463 m_e[6], m_e[7], m_e[8]); 2464 sDescription += buf; 2465 } 2466 else { 2467- sprintf(buf, "%8.4lf %8.4lf %8.4lf + %8.4lf\r\n", 2468+ sprintf(buf, "%8.4lf %8.4lf %8.4lf + %8.4lf\n", 2469 m_e[0], m_e[1], m_e[2], m_e[9]); 2470 sDescription += buf; 2471- sprintf(buf, "%8.4lf %8.4lf %8.4lf + %8.4lf\r\n", 2472+ sprintf(buf, "%8.4lf %8.4lf %8.4lf + %8.4lf\n", 2473 m_e[3], m_e[4], m_e[5], m_e[10]); 2474 sDescription += buf; 2475- sprintf(buf, "%8.4lf %8.4lf %8.4lf + %8.4lf\r\n", 2476+ sprintf(buf, "%8.4lf %8.4lf %8.4lf + %8.4lf\n", 2477 m_e[6], m_e[7], m_e[8], m_e[11]); 2478 sDescription += buf; 2479 } 2480- sDescription += "\r\n"; 2481+ sDescription += "\n"; 2482 } 2483 2484 /** 2485@@ -1377,7 +1377,7 @@ 2486 if (m_e[0]!=1.0 || m_e[4]!=1.0 || m_e[9]!=1.0 || sum!=3.0) { 2487 sReport += icValidateNonCompliantMsg; 2488 sReport += sSigName; 2489- sReport += " - Matrix must be identity.\r\n"; 2490+ sReport += " - Matrix must be identity.\n"; 2491 rv = icValidateNonCompliant; 2492 } 2493 } 2494@@ -1754,7 +1754,7 @@ 2495 2496 ptr += sprintf(ptr, " %s", m_pVal); 2497 } 2498- strcpy(ptr, "\r\n"); 2499+ strcpy(ptr, "\n"); 2500 sDescription += (const icChar*)m_pOutText; 2501 2502 } 2503@@ -1866,7 +1866,7 @@ 2504 icChar szOutText[2048], szColor[40]; 2505 int i, len; 2506 2507- sprintf(szOutText, "BEGIN_LUT %s %d %d\r\n", szName, m_nInput, m_nOutput); 2508+ sprintf(szOutText, "BEGIN_LUT %s %d %d\n", szName, m_nInput, m_nOutput); 2509 sDescription += szOutText; 2510 2511 for (i=0; i<m_nInput; i++) { 2512@@ -1883,7 +1883,7 @@ 2513 sDescription += szOutText; 2514 } 2515 2516- sDescription += "\r\n"; 2517+ sDescription += "\n"; 2518 2519 len = 0; 2520 for (i=0; i<m_nInput; i++) { 2521@@ -1907,7 +1907,7 @@ 2522 2523 Iterate(sDescription, 0, 0); 2524 2525- sDescription += "\r\n"; 2526+ sDescription += "\n"; 2527 } 2528 2529 2530@@ -2693,7 +2693,7 @@ 2531 if (m_nReserved2[0]!=0 || m_nReserved2[1]!=0 || m_nReserved2[2]!=0) { 2532 sReport += icValidateNonCompliantMsg; 2533 sReport += sSigName; 2534- sReport += " - Reserved Value must be zero.\r\n"; 2535+ sReport += " - Reserved Value must be zero.\n"; 2536 2537 rv = icValidateNonCompliant; 2538 } 2539@@ -2704,7 +2704,7 @@ 2540 if (m_GridPoints[i]<2) { 2541 sReport += icValidateCriticalErrorMsg; 2542 sReport += sSigName; 2543- sprintf(temp, " - CLUT: At least 2 grid points should be present in dimension %u.\r\n",i ); 2544+ sprintf(temp, " - CLUT: At least 2 grid points should be present in dimension %u.\n",i ); 2545 sReport += temp; 2546 rv = icMaxStatus(rv, icValidateCriticalError); 2547 } 2548@@ -3122,7 +3122,7 @@ 2549 if (!pProfile) { 2550 sReport += icValidateWarningMsg; 2551 sReport += sSigName; 2552- sReport += " - Tag validation incomplete: Pointer to profile unavailable.\r\n"; 2553+ sReport += " - Tag validation incomplete: Pointer to profile unavailable.\n"; 2554 rv = icMaxStatus(rv, icValidateWarning); 2555 return rv; 2556 } 2557@@ -3138,7 +3138,7 @@ 2558 if (m_nInput!=nInput) { 2559 sReport += icValidateCriticalErrorMsg; 2560 sReport += sSigName; 2561- sReport += " - Incorrect number of input channels.\r\n"; 2562+ sReport += " - Incorrect number of input channels.\n"; 2563 rv = icMaxStatus(rv, icValidateCriticalError); 2564 } 2565 2566@@ -3146,7 +3146,7 @@ 2567 if (m_nOutput!=nOutput) { 2568 sReport += icValidateCriticalErrorMsg; 2569 sReport += sSigName; 2570- sReport += " - Incorrect number of output channels.\r\n"; 2571+ sReport += " - Incorrect number of output channels.\n"; 2572 rv = icMaxStatus(rv, icValidateCriticalError); 2573 } 2574 2575@@ -3160,7 +3160,7 @@ 2576 if (m_nInput!=nInput) { 2577 sReport += icValidateCriticalErrorMsg; 2578 sReport += sSigName; 2579- sReport += " - Incorrect number of input channels.\r\n"; 2580+ sReport += " - Incorrect number of input channels.\n"; 2581 rv = icMaxStatus(rv, icValidateCriticalError); 2582 } 2583 2584@@ -3168,7 +3168,7 @@ 2585 if (m_nOutput!=nOutput) { 2586 sReport += icValidateCriticalErrorMsg; 2587 sReport += sSigName; 2588- sReport += " - Incorrect number of output channels.\r\n"; 2589+ sReport += " - Incorrect number of output channels.\n"; 2590 rv = icMaxStatus(rv, icValidateCriticalError); 2591 } 2592 2593@@ -3180,7 +3180,7 @@ 2594 if (m_nInput!=nInput) { 2595 sReport += icValidateCriticalErrorMsg; 2596 sReport += sSigName; 2597- sReport += " - Incorrect number of input channels.\r\n"; 2598+ sReport += " - Incorrect number of input channels.\n"; 2599 rv = icMaxStatus(rv, icValidateCriticalError); 2600 } 2601 2602@@ -3188,7 +3188,7 @@ 2603 if (m_nOutput!=nOutput) { 2604 sReport += icValidateCriticalErrorMsg; 2605 sReport += sSigName; 2606- sReport += " - Incorrect number of output channels.\r\n"; 2607+ sReport += " - Incorrect number of output channels.\n"; 2608 rv = icMaxStatus(rv, icValidateCriticalError); 2609 } 2610 2611@@ -3206,7 +3206,7 @@ 2612 if (!m_CLUT) { 2613 sReport += icValidateCriticalErrorMsg; 2614 sReport += sSigName; 2615- sReport += " - CLUT must be present.\r\n"; 2616+ sReport += " - CLUT must be present.\n"; 2617 rv = icMaxStatus(rv, icValidateCriticalError); 2618 } 2619 } 2620@@ -3748,7 +3748,7 @@ 2621 else { 2622 sReport += icValidateCriticalErrorMsg; 2623 sReport += sSigName; 2624- sReport += " - Incorrect number of B-curves.\r\n"; 2625+ sReport += " - Incorrect number of B-curves.\n"; 2626 rv = icMaxStatus(rv, icValidateCriticalError); 2627 } 2628 } 2629@@ -3762,7 +3762,7 @@ 2630 else { 2631 sReport += icValidateCriticalErrorMsg; 2632 sReport += sSigName; 2633- sReport += " - Incorrect number of M-curves.\r\n"; 2634+ sReport += " - Incorrect number of M-curves.\n"; 2635 rv = icMaxStatus(rv, icValidateCriticalError); 2636 } 2637 } 2638@@ -3772,7 +3772,7 @@ 2639 if (!m_CLUT) { 2640 sReport += icValidateNonCompliantMsg; 2641 sReport += sSigName; 2642- sReport += " - CLUT must be present if using A-curves.\r\n"; 2643+ sReport += " - CLUT must be present if using A-curves.\n"; 2644 2645 rv = icMaxStatus(rv, icValidateNonCompliant); 2646 } 2647@@ -3784,7 +3784,7 @@ 2648 else { 2649 sReport += icValidateCriticalErrorMsg; 2650 sReport += sSigName; 2651- sReport += " - Incorrect number of A-curves.\r\n"; 2652+ sReport += " - Incorrect number of A-curves.\n"; 2653 rv = icMaxStatus(rv, icValidateCriticalError); 2654 } 2655 } 2656@@ -3876,7 +3876,7 @@ 2657 if (!pProfile) { 2658 sReport += icValidateWarningMsg; 2659 sReport += sSigName; 2660- sReport += " - Tag validation incomplete: Pointer to profile unavailable.\r\n"; 2661+ sReport += " - Tag validation incomplete: Pointer to profile unavailable.\n"; 2662 rv = icMaxStatus(rv, icValidateCriticalError); 2663 return rv; 2664 } 2665@@ -3900,7 +3900,7 @@ 2666 if (m_nOutput!=nOutput) { 2667 sReport += icValidateCriticalErrorMsg; 2668 sReport += sSigName; 2669- sReport += " - Incorrect number of output channels.\r\n"; 2670+ sReport += " - Incorrect number of output channels.\n"; 2671 rv = icMaxStatus(rv, icValidateCriticalError); 2672 } 2673 2674@@ -3913,7 +3913,7 @@ 2675 else { 2676 sReport += icValidateCriticalErrorMsg; 2677 sReport += sSigName; 2678- sReport += " - Incorrect number of B-curves.\r\n"; 2679+ sReport += " - Incorrect number of B-curves.\n"; 2680 rv = icMaxStatus(rv, icValidateCriticalError); 2681 } 2682 } 2683@@ -3927,7 +3927,7 @@ 2684 else { 2685 sReport += icValidateCriticalErrorMsg; 2686 sReport += sSigName; 2687- sReport += " - Incorrect number of M-curves.\r\n"; 2688+ sReport += " - Incorrect number of M-curves.\n"; 2689 rv = icMaxStatus(rv, icValidateCriticalError); 2690 } 2691 } 2692@@ -3937,7 +3937,7 @@ 2693 if (!m_CLUT) { 2694 sReport += icValidateNonCompliantMsg; 2695 sReport += sSigName; 2696- sReport += " - CLUT must be present if using A-curves.\r\n"; 2697+ sReport += " - CLUT must be present if using A-curves.\n"; 2698 2699 rv = icMaxStatus(rv, icValidateNonCompliant); 2700 } 2701@@ -3949,7 +3949,7 @@ 2702 else { 2703 sReport += icValidateCriticalErrorMsg; 2704 sReport += sSigName; 2705- sReport += " - Incorrect number of A-curves.\r\n"; 2706+ sReport += " - Incorrect number of A-curves.\n"; 2707 rv = icMaxStatus(rv, icValidateCriticalError); 2708 } 2709 } 2710@@ -4311,7 +4311,7 @@ 2711 if (pTagCurve->GetSize()==1) { 2712 sReport += icValidateCriticalErrorMsg; 2713 sReport += sSigName; 2714- sReport += " - lut8Tags do not support single entry gamma curves.\r\n"; 2715+ sReport += " - lut8Tags do not support single entry gamma curves.\n"; 2716 rv = icMaxStatus(rv, icValidateCriticalError); 2717 } 2718 } 2719@@ -4319,7 +4319,7 @@ 2720 else { 2721 sReport += icValidateCriticalErrorMsg; 2722 sReport += sSigName; 2723- sReport += " - Incorrect number of B-curves.\r\n"; 2724+ sReport += " - Incorrect number of B-curves.\n"; 2725 rv = icMaxStatus(rv, icValidateCriticalError); 2726 } 2727 } 2728@@ -4336,7 +4336,7 @@ 2729 if (m_XYZMatrix[0]!=1.0 || m_XYZMatrix[4]!=1.0 || m_XYZMatrix[9]!=1.0 || sum!=3.0) { 2730 sReport += icValidateWarningMsg; 2731 sReport += sSigName; 2732- sReport += " - Matrix must be identity.\r\n"; 2733+ sReport += " - Matrix must be identity.\n"; 2734 rv = icMaxStatus(rv, icValidateWarning); 2735 } 2736 } 2737@@ -4351,7 +4351,7 @@ 2738 if (pTagCurve->GetSize()==1) { 2739 sReport += icValidateCriticalErrorMsg; 2740 sReport += sSigName; 2741- sReport += " - lut8Tags do not support single entry gamma curves.\r\n"; 2742+ sReport += " - lut8Tags do not support single entry gamma curves.\n"; 2743 rv = icMaxStatus(rv, icValidateCriticalError); 2744 } 2745 } 2746@@ -4359,7 +4359,7 @@ 2747 else { 2748 sReport += icValidateCriticalErrorMsg; 2749 sReport += sSigName; 2750- sReport += " - Incorrect number of A-curves.\r\n"; 2751+ sReport += " - Incorrect number of A-curves.\n"; 2752 rv = icMaxStatus(rv, icValidateCriticalError); 2753 } 2754 } 2755@@ -4721,7 +4721,7 @@ 2756 if (pTagCurve->GetSize()==1) { 2757 sReport += icValidateCriticalErrorMsg; 2758 sReport += sSigName; 2759- sReport += " - lut16Tags do not support single entry gamma curves.\r\n"; 2760+ sReport += " - lut16Tags do not support single entry gamma curves.\n"; 2761 rv = icMaxStatus(rv, icValidateCriticalError); 2762 } 2763 } 2764@@ -4729,7 +4729,7 @@ 2765 else { 2766 sReport += icValidateCriticalErrorMsg; 2767 sReport += sSigName; 2768- sReport += " - Incorrect number of B-curves.\r\n"; 2769+ sReport += " - Incorrect number of B-curves.\n"; 2770 rv = icMaxStatus(rv, icValidateCriticalError); 2771 } 2772 } 2773@@ -4746,7 +4746,7 @@ 2774 if (m_XYZMatrix[0]!=1.0 || m_XYZMatrix[4]!=1.0 || m_XYZMatrix[9]!=1.0 || sum!=3.0) { 2775 sReport += icValidateWarningMsg; 2776 sReport += sSigName; 2777- sReport += " - Matrix must be identity.\r\n"; 2778+ sReport += " - Matrix must be identity.\n"; 2779 rv = icMaxStatus(rv, icValidateWarning); 2780 } 2781 } 2782@@ -4761,7 +4761,7 @@ 2783 if (pTagCurve->GetSize()==1) { 2784 sReport += icValidateCriticalErrorMsg; 2785 sReport += sSigName; 2786- sReport += " - lut16Tags do not support single entry gamma curves.\r\n"; 2787+ sReport += " - lut16Tags do not support single entry gamma curves.\n"; 2788 rv = icMaxStatus(rv, icValidateCriticalError); 2789 } 2790 } 2791@@ -4769,7 +4769,7 @@ 2792 else { 2793 sReport += icValidateCriticalErrorMsg; 2794 sReport += sSigName; 2795- sReport += " - Incorrect number of A-curves.\r\n"; 2796+ sReport += " - Incorrect number of A-curves.\n"; 2797 rv = icMaxStatus(rv, icValidateCriticalError); 2798 } 2799 } 2800--- misc/SampleICC-1.3.2/IccProfLib/IccTagMPE.cpp Mon Aug 20 22:05:00 2007 2801+++ misc/build/SampleICC-1.3.2/IccProfLib/IccTagMPE.cpp Fri Jan 25 14:23:09 2008 2802@@ -218,7 +218,7 @@ 2803 icGetSig(sigbuf, m_sig), m_nSize); 2804 sDescription += buf; 2805 2806- sDescription += "\r\n\r\nData Follows:\r\n"; 2807+ sDescription += "\n\nData Follows:\n"; 2808 2809 icMemDump(sDescription, m_pData, m_nSize); 2810 2811@@ -364,7 +364,7 @@ 2812 sReport += " - Contains unknown processing element type ("; 2813 icGetSig(buf, m_sig, true); 2814 sReport += buf; 2815- sReport += ").\r\n"; 2816+ sReport += ").\n"; 2817 2818 return icValidateCriticalError; 2819 } 2820@@ -392,7 +392,7 @@ 2821 sReport += " - Element "; 2822 sSigName = Info.GetSigName(GetType()); 2823 sReport += sSigName; 2824- sReport += " - Reserved Value must be zero.\r\n"; 2825+ sReport += " - Reserved Value must be zero.\n"; 2826 2827 rv = icValidateNonCompliant; 2828 } 2829@@ -738,18 +738,18 @@ 2830 { 2831 icChar buf[128]; 2832 2833- sprintf(buf, "BEGIN MULTI_PROCESS_ELEMENT_TAG %d %d\r\n", m_nInputChannels, m_nOutputChannels); 2834+ sprintf(buf, "BEGIN MULTI_PROCESS_ELEMENT_TAG %d %d\n", m_nInputChannels, m_nOutputChannels); 2835 sDescription += buf; 2836- sDescription += "\r\n"; 2837+ sDescription += "\n"; 2838 2839 CIccMultiProcessElementList::iterator i; 2840 int j; 2841 2842 for (j=0, i=m_list->begin(); i!=m_list->end(); j++, i++) { 2843- sprintf(buf, "PROCESS_ELEMENT #%d\r\n", j+1); 2844+ sprintf(buf, "PROCESS_ELEMENT #%d\n", j+1); 2845 sDescription += buf; 2846 i->ptr->Describe(sDescription); 2847- sDescription += "\r\n"; 2848+ sDescription += "\n"; 2849 } 2850 } 2851 2852@@ -1207,13 +1207,13 @@ 2853 if (m_nInputChannels != m_nOutputChannels) { 2854 sReport += icValidateCriticalErrorMsg; 2855 sReport += sSigName; 2856- sReport += " No processing elements and input and output channels do not match!\r\n"; 2857+ sReport += " No processing elements and input and output channels do not match!\n"; 2858 return icValidateCriticalError; 2859 } 2860 else { 2861 sReport += icValidateWarningMsg; 2862 sReport += sSigName; 2863- sReport += " No processing elements.\r\n"; 2864+ sReport += " No processing elements.\n"; 2865 return icValidateWarning; 2866 } 2867 } 2868@@ -1224,7 +1224,7 @@ 2869 if (i->ptr->NumInputChannels() != m_nInputChannels) { 2870 sReport += icValidateCriticalErrorMsg; 2871 sReport += sSigName; 2872- sReport += " Mis-matching number of input channels!\r\n"; 2873+ sReport += " Mis-matching number of input channels!\n"; 2874 return icValidateCriticalError; 2875 } 2876 2877@@ -1239,7 +1239,7 @@ 2878 sReport += "->"; 2879 sReport += i->ptr->GetClassName(); 2880 2881- sReport += " Mis-matching number of channels!\r\n"; 2882+ sReport += " Mis-matching number of channels!\n"; 2883 return icValidateCriticalError; 2884 } 2885 } 2886@@ -1251,7 +1251,7 @@ 2887 if (last && last->NumOutputChannels() != m_nOutputChannels) { 2888 sReport += icValidateCriticalErrorMsg; 2889 sReport += sSigName; 2890- sReport += " Mis-matching number of output channels!\r\n"; 2891+ sReport += " Mis-matching number of output channels!\n"; 2892 return icValidateCriticalError; 2893 } 2894 2895--- misc/SampleICC-1.3.2/IccProfLib/IccTagProfSeqId.cpp Mon Aug 20 22:05:00 2007 2896+++ misc/build/SampleICC-1.3.2/IccProfLib/IccTagProfSeqId.cpp Fri Jan 25 14:23:09 2008 2897@@ -234,7 +234,7 @@ 2898 { 2899 std::string Dump; 2900 2901- sDescription += "ProfileID:\r\n"; 2902+ sDescription += "ProfileID:\n"; 2903 2904 int i; 2905 char buf[20]; 2906@@ -244,12 +244,12 @@ 2907 sprintf(buf, "%2x", m_profileID.ID8[i]); 2908 sDescription += buf; 2909 } 2910- sDescription += "\r\n"; 2911+ sDescription += "\n"; 2912 2913- sDescription += "Description:\r\n"; 2914+ sDescription += "Description:\n"; 2915 m_desc.Describe(sDescription); 2916 2917- sDescription += "\r\n"; 2918+ sDescription += "\n"; 2919 } 2920 2921 2922@@ -434,21 +434,21 @@ 2923 { 2924 icChar buf[128]; 2925 2926- sprintf(buf, "BEGIN ProfileSequenceIdentification_TAG\r\n"); 2927+ sprintf(buf, "BEGIN ProfileSequenceIdentification_TAG\n"); 2928 sDescription += buf; 2929- sDescription += "\r\n"; 2930+ sDescription += "\n"; 2931 2932 int i; 2933 CIccProfileIdDescList::iterator j; 2934 for (i=0, j=m_list->begin(); j!=m_list->end(); i++, j++) { 2935- sprintf(buf, "ProfileDescription_%d:\r\n", i+1); 2936+ sprintf(buf, "ProfileDescription_%d:\n", i+1); 2937 sDescription += buf; 2938 j->Describe(sDescription); 2939 } 2940 2941- sprintf(buf, "END ProfileSequenceIdentification_TAG\r\n"); 2942+ sprintf(buf, "END ProfileSequenceIdentification_TAG\n"); 2943 sDescription += buf; 2944- sDescription += "\r\n"; 2945+ sDescription += "\n"; 2946 } 2947 2948 2949--- misc/SampleICC-1.3.2/IccProfLib/IccTagProfSeqId.h Mon Aug 20 22:05:00 2007 2950+++ misc/build/SampleICC-1.3.2/IccProfLib/IccTagProfSeqId.h Fri Jan 25 14:23:09 2008 2951@@ -161,4 +161,4 @@ 2952 } 2953 #endif 2954 2955-#endif //_ICCTAGPROFSEQID_H 2956+#endif //_ICCTAGPROFSEQID_H 2957--- misc/SampleICC-1.3.2/IccProfLib/IccUtil.cpp Mon Aug 20 22:05:00 2007 2958+++ misc/build/SampleICC-1.3.2/IccProfLib/IccUtil.cpp Fri Jan 25 14:23:09 2008 2959@@ -79,7 +79,7 @@ 2960 #include "IccUtil.h" 2961 #include "IccTagFactory.h" 2962 #include <stdlib.h> 2963-#include <memory.h> 2964+#include <memory> 2965 #include <ctype.h> 2966 #include <math.h> 2967 #include <string.h> 2968@@ -678,11 +679,11 @@ 2969 { 2970 icChar buf[128]; 2971 2972- sprintf(buf, "%8.4lf %8.4lf %8.4lf\r\n", icFtoD(pMatrix[0]), icFtoD(pMatrix[1]), icFtoD(pMatrix[2])); 2973+ sprintf(buf, "%8.4lf %8.4lf %8.4lf\n", icFtoD(pMatrix[0]), icFtoD(pMatrix[1]), icFtoD(pMatrix[2])); 2974 sDump += buf; 2975- sprintf(buf, "%8.4lf %8.4lf %8.4lf\r\n", icFtoD(pMatrix[3]), icFtoD(pMatrix[4]), icFtoD(pMatrix[5])); 2976+ sprintf(buf, "%8.4lf %8.4lf %8.4lf\n", icFtoD(pMatrix[3]), icFtoD(pMatrix[4]), icFtoD(pMatrix[5])); 2977 sDump += buf; 2978- sprintf(buf, "%8.4lf %8.4lf %8.4lf\r\n", icFtoD(pMatrix[6]), icFtoD(pMatrix[7]), icFtoD(pMatrix[8])); 2979+ sprintf(buf, "%8.4lf %8.4lf %8.4lf\n", icFtoD(pMatrix[6]), icFtoD(pMatrix[7]), icFtoD(pMatrix[8])); 2980 sDump += buf; 2981 } 2982 2983@@ -1516,19 +1517,19 @@ 2984 2985 if (XYZ.X < 0) { 2986 sReport += icValidateNonCompliantMsg; 2987- sReport += " - XYZNumber: Negative X value!\r\n"; 2988+ sReport += " - XYZNumber: Negative X value!\n"; 2989 rv = icValidateNonCompliant; 2990 } 2991 2992 if (XYZ.Y < 0) { 2993 sReport += icValidateNonCompliantMsg; 2994- sReport += " - XYZNumber: Negative Y value!\r\n"; 2995+ sReport += " - XYZNumber: Negative Y value!\n"; 2996 rv = icMaxStatus(rv, icValidateNonCompliant); 2997 } 2998 2999 if (XYZ.Z < 0) { 3000 sReport += icValidateNonCompliantMsg; 3001- sReport += " - XYZNumber: Negative Z value!\r\n"; 3002+ sReport += " - XYZNumber: Negative Z value!\n"; 3003 rv = icMaxStatus(rv, icValidateNonCompliant); 3004 } 3005 3006@@ -1548,7 +1549,7 @@ 3007 icChar buf[128]; 3008 if (dateTime.year<1992) { 3009 sReport += icValidateWarningMsg; 3010- sprintf(buf," - %u: Invalid year!\r\n",dateTime.year); 3011+ sprintf(buf," - %u: Invalid year!\n",dateTime.year); 3012 sReport += buf; 3013 rv = icValidateWarning; 3014 } 3015@@ -1557,7 +1558,7 @@ 3016 if (newtime->tm_mon==11 && newtime->tm_mday==31) { 3017 if (dateTime.year>(year+1)) { 3018 sReport += icValidateWarningMsg; 3019- sprintf(buf," - %u: Invalid year!\r\n",dateTime.year); 3020+ sprintf(buf," - %u: Invalid year!\n",dateTime.year); 3021 sReport += buf; 3022 rv = icMaxStatus(rv, icValidateWarning); 3023 } 3024@@ -1565,7 +1566,7 @@ 3025 else { 3026 if (dateTime.year>year) { 3027 sReport += icValidateWarningMsg; 3028- sprintf(buf," - %u: Invalid year!\r\n",dateTime.year); 3029+ sprintf(buf," - %u: Invalid year!\n",dateTime.year); 3030 sReport += buf; 3031 rv = icMaxStatus(rv, icValidateWarning); 3032 } 3033@@ -1573,7 +1574,7 @@ 3034 3035 if (dateTime.month<1 || dateTime.month>12) { 3036 sReport += icValidateWarningMsg; 3037- sprintf(buf," - %u: Invalid month!\r\n",dateTime.month); 3038+ sprintf(buf," - %u: Invalid month!\n",dateTime.month); 3039 sReport += buf; 3040 rv = icMaxStatus(rv, icValidateWarning); 3041 } 3042@@ -1580,7 +1581,7 @@ 3043 3044 if (dateTime.day<1 || dateTime.day>31) { 3045 sReport += icValidateWarningMsg; 3046- sprintf(buf," - %u: Invalid day!\r\n",dateTime.day); 3047+ sprintf(buf," - %u: Invalid day!\n",dateTime.day); 3048 sReport += buf; 3049 rv = icMaxStatus(rv, icValidateWarning); 3050 } 3051@@ -1588,7 +1589,7 @@ 3052 if (dateTime.month==2) { 3053 if (dateTime.day>29) { 3054 sReport += icValidateWarningMsg; 3055- sprintf(buf," - %u: Invalid day for February!\r\n",dateTime.day); 3056+ sprintf(buf," - %u: Invalid day for February!\n",dateTime.day); 3057 sReport += buf; 3058 rv = icMaxStatus(rv, icValidateWarning); 3059 } 3060@@ -1596,7 +1597,7 @@ 3061 if (dateTime.day==29) { 3062 if ((dateTime.year%4)!=0) { 3063 sReport += icValidateWarningMsg; 3064- sprintf(buf," - %u: Invalid day for February, year is not a leap year(%u)!\r\n",dateTime.day, dateTime.year); 3065+ sprintf(buf," - %u: Invalid day for February, year is not a leap year(%u)!\n",dateTime.day, dateTime.year); 3066 sReport += buf; 3067 rv = icMaxStatus(rv, icValidateWarning); 3068 } 3069@@ -1605,7 +1606,7 @@ 3070 3071 if (dateTime.hours>23) { 3072 sReport += icValidateWarningMsg; 3073- sprintf(buf," - %u: Invalid hour!\r\n",dateTime.hours); 3074+ sprintf(buf," - %u: Invalid hour!\n",dateTime.hours); 3075 sReport += buf; 3076 rv = icMaxStatus(rv, icValidateWarning); 3077 } 3078@@ -1612,7 +1613,7 @@ 3079 3080 if (dateTime.minutes>59) { 3081 sReport += icValidateWarningMsg; 3082- sprintf(buf," - %u: Invalid minutes!\r\n",dateTime.minutes); 3083+ sprintf(buf," - %u: Invalid minutes!\n",dateTime.minutes); 3084 sReport += buf; 3085 rv = icMaxStatus(rv, icValidateWarning); 3086 } 3087@@ -1619,7 +1620,7 @@ 3088 3089 if (dateTime.seconds>59) { 3090 sReport += icValidateWarningMsg; 3091- sprintf(buf," - %u: Invalid seconds!\r\n",dateTime.hours); 3092+ sprintf(buf," - %u: Invalid seconds!\n",dateTime.hours); 3093 sReport += buf; 3094 rv = icMaxStatus(rv, icValidateWarning); 3095 } 3096--- misc/SampleICC-1.3.2/IccProfLib/icProfileHeader.h Mon Aug 20 22:05:00 2007 3097+++ misc/build/SampleICC-1.3.2/IccProfLib/icProfileHeader.h Fri Jan 25 14:23:09 2008 3098@@ -659,10 +659,11 @@ 3099 typedef enum { 3100 icFlare0 = 0x00000000, /* 0% flare */ 3101 icFlare100 = 0x00000001, /* 100% flare */ 3102+ icMaxEnumFlare = 0xFFFFFFFF 3103 } icMeasurementFlare; 3104 3105 /** Convenience Enum Definition - Not defined in ICC specification*/ 3106-#define icMaxEnumFlare ((icMeasurementFlare) 0xFFFFFFFF) 3107+/*#define icMaxEnumFlare ((icMeasurementFlare) 0xFFFFFFFF)*/ 3108 #define icMaxFlare ((icMeasurementFlare) 0xFFFFFFFF) /* as defined by earlier versions */ 3109 3110 3111--- misc/SampleICC-1.3.2/Tools/CmdLine/Makefile.in Mon Aug 20 22:10:42 2007 3112+++ misc/build/SampleICC-1.3.2/Tools/CmdLine/Makefile.in Fri Jan 25 14:23:09 2008 3113@@ -101,17 +101,13 @@ 3114 am__quote = @am__quote@ 3115 install_sh = @install_sh@ 3116 3117-SUBDIRS = IccApplyNamedCmm \ 3118- @SICC_ICC_APPLY_PROFILES@ \ 3119- IccDumpProfile \ 3120+SUBDIRS = IccDumpProfile \ 3121 IccProfLibTest \ 3122 IccStripUnknownTags \ 3123 IccV4ToMPE 3124 3125 3126-DIST_SUBDIRS = IccApplyNamedCmm \ 3127- IccApplyProfiles \ 3128- IccDumpProfile \ 3129+DIST_SUBDIRS = IccDumpProfile \ 3130 IccProfLibTest \ 3131 IccStripUnknownTags \ 3132 IccV4ToMPE 3133--- misc/SampleICC-1.3.2/Contrib/ICC_utils/CLUT.cpp 2007-08-20 22:04:53.000000000 +0200 3134+++ misc/build/SampleICC-1.3.2/Contrib/ICC_utils/CLUT.cpp 2008-01-31 13:53:16.000000000 +0100 3135@@ -77,6 +77,8 @@ 3136 // 3137 ////////////////////////////////////////////////////////////////////// 3138 3139+#include <stdlib.h> 3140+#include <string.h> 3141 #include <iostream> 3142 #include <fstream> 3143 #include <sstream> 3144--- misc/SampleICC-1.3.2/Contrib/ICC_utils/ICC_tool_exception.h 2007-08-20 22:04:54.000000000 +0200 3145+++ misc/build/SampleICC-1.3.2/Contrib/ICC_utils/ICC_tool_exception.h 2008-01-31 13:54:51.000000000 +0100 3146@@ -83,6 +83,7 @@ 3147 #ifndef __DEFINED_ICC_TOOL_EXCEPTION_H__ 3148 #define __DEFINED_ICC_TOOL_EXCEPTION_H__ 3149 3150+#include <string.h> 3151 #include <exception> 3152 #include <string> 3153 3154--- misc/SampleICC-1.3.2/IccProfLib/IccCmm.cpp 2007-08-20 22:05:00.000000000 +0200 3155+++ misc/build/SampleICC-1.3.2/IccProfLib/IccCmm.cpp 2008-01-31 13:49:54.000000000 +0100 3156@@ -79,6 +79,8 @@ 3157 #pragma warning( disable: 4786) //disable warning in <list.h> 3158 #endif 3159 3160+#include <stdlib.h> 3161+#include <string.h> 3162 #include "IccCmm.h" 3163 #include "IccTag.h" 3164 #include "IccIO.h" 3165--- misc/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.h 2007-08-20 22:04:53.000000000 +0200 3166+++ misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.h 2008-01-31 14:05:58.000000000 +0100 3167@@ -83,6 +83,7 @@ 3168 #include <string> 3169 #include <sys/types.h> 3170 #include <sys/stat.h> 3171+#include <stdlib.h> 3172 3173 #ifdef WIN32 3174 typedef unsigned short mode_t; 3175