xref: /aoo41x/main/icc/SampleICC-1.3.2.patch (revision 9ea1301d)
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***************
4*** 19991,19997 ****
5
6
7
8!                                                                                                                                                                                                                                                                     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"
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--- 19991,19997 ----
13
14
15
16!                                                                                                                                                                                                                                                                     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"
17  cat >confcache <<\_ACEOF
18  # This file is a shell script that caches the results of configure
19  # tests run on this system so they can be shared between configure
20***************
21*** 20571,20578 ****
22    "IccProfLib/Makefile" ) CONFIG_FILES="$CONFIG_FILES IccProfLib/Makefile" ;;
23    "Tools/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/Makefile" ;;
24    "Tools/CmdLine/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/Makefile" ;;
25-   "Tools/CmdLine/IccApplyNamedCmm/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccApplyNamedCmm/Makefile" ;;
26-   "Tools/CmdLine/IccApplyProfiles/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccApplyProfiles/Makefile" ;;
27    "Tools/CmdLine/IccDumpProfile/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccDumpProfile/Makefile" ;;
28    "Tools/CmdLine/IccProfLibTest/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccProfLibTest/Makefile" ;;
29    "Tools/CmdLine/IccStripUnknownTags/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccStripUnknownTags/Makefile" ;;
30--- 20571,20576 ----
31***************
32*** 20579,20598 ****
33    "Tools/CmdLine/IccV4ToMPE/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccV4ToMPE/Makefile" ;;
34    "Contrib/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/Makefile" ;;
35    "Contrib/CmdLine/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/Makefile" ;;
36!   "Contrib/CmdLine/create_CLUT_profile/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/create_CLUT_profile/Makefile" ;;
37!   "Contrib/CmdLine/create_CLUT_profile_from_probe/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/create_CLUT_profile_from_probe/Makefile" ;;
38!   "Contrib/CmdLine/create_display_profile/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/create_display_profile/Makefile" ;;
39    "Contrib/ICC_utils/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/ICC_utils/Makefile" ;;
40-   "Contrib/Mac_OS_X/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/Mac_OS_X/Makefile" ;;
41-   "Contrib/Mac_OS_X/create_probe/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/Mac_OS_X/create_probe/Makefile" ;;
42-   "Contrib/Mac_OS_X/extract_probe_data/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/Mac_OS_X/extract_probe_data/Makefile" ;;
43-   "Contrib/examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/examples/Makefile" ;;
44-   "Contrib/examples/RSR/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/examples/RSR/Makefile" ;;
45-   "Contrib/tests/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/tests/Makefile" ;;
46-   "Contrib/tests/flatten_AToB_tag/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/tests/flatten_AToB_tag/Makefile" ;;
47-   "Contrib/tests/generate_device_codes/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/tests/generate_device_codes/Makefile" ;;
48-   "Contrib/tests/reconstruct_measurements/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/tests/reconstruct_measurements/Makefile" ;;
49-   "Contrib/tests/round_trip_PCS_LAB/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/tests/round_trip_PCS_LAB/Makefile" ;;
50    "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
51    *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
52  echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
53--- 20577,20584 ----
54    "Tools/CmdLine/IccV4ToMPE/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccV4ToMPE/Makefile" ;;
55    "Contrib/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/Makefile" ;;
56    "Contrib/CmdLine/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/Makefile" ;;
57!   "Contrib/CmdLine/create_sRGB_profile/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/create_sRGB_profile/Makefile" ;;
58    "Contrib/ICC_utils/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/ICC_utils/Makefile" ;;
59    "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
60    *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
61  echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
62*** misc/SampleICC-1.3.2/Contrib/Makefile.in	Mon Aug 20 22:10:37 2007
63--- misc/build/SampleICC-1.3.2/Contrib/Makefile.in	Fri Jan 25 14:23:09 2008
64***************
65*** 103,120 ****
66
67  SUBDIRS = \
68  	ICC_utils \
69! 	CmdLine \
70! 	examples \
71! 	Mac_OS_X \
72! 	tests
73
74
75  DIST_SUBDIRS = \
76  	ICC_utils \
77! 	CmdLine \
78! 	examples \
79! 	Mac_OS_X \
80! 	tests
81
82  subdir = Contrib
83  mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
84--- 103,114 ----
85
86  SUBDIRS = \
87  	ICC_utils \
88! 	CmdLine
89
90
91  DIST_SUBDIRS = \
92  	ICC_utils \
93! 	CmdLine
94
95  subdir = Contrib
96  mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
97*** misc/SampleICC-1.3.2/Contrib/CmdLine/Makefile.in	Mon Aug 20 22:10:34 2007
98--- misc/build/SampleICC-1.3.2/Contrib/CmdLine/Makefile.in	Fri Jan 25 14:23:09 2008
99***************
100*** 102,116 ****
101  install_sh = @install_sh@
102
103  SUBDIRS = \
104! 	create_CLUT_profile \
105! 	create_CLUT_profile_from_probe \
106! 	create_display_profile
107
108
109  DIST_SUBDIRS = \
110! 	create_CLUT_profile \
111! 	create_CLUT_profile_from_probe \
112! 	create_display_profile
113
114  subdir = Contrib/CmdLine
115  mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
116--- 102,112 ----
117  install_sh = @install_sh@
118
119  SUBDIRS = \
120! 	create_sRGB_profile
121
122
123  DIST_SUBDIRS = \
124! 	create_sRGB_profile
125
126  subdir = Contrib/CmdLine
127  mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
128*** misc/SampleICC-1.3.2/Contrib/ICC_utils/Makefile.in	Mon Aug 20 22:10:35 2007
129--- misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Makefile.in	Fri Jan 25 14:23:09 2008
130***************
131*** 133,139 ****
132  CONFIG_CLEAN_FILES =
133  LTLIBRARIES = $(lib_LTLIBRARIES)
134
135! libICC_utils_la_LIBADD =
136  am_libICC_utils_la_OBJECTS = Stubs.lo CAT.lo CLUT.lo CLUT_stuffer.lo \
137  	ICC_tool_exception.lo Vetters.lo
138  libICC_utils_la_OBJECTS = $(am_libICC_utils_la_OBJECTS)
139--- 133,139 ----
140  CONFIG_CLEAN_FILES =
141  LTLIBRARIES = $(lib_LTLIBRARIES)
142
143! libICC_utils_la_LIBADD = $(LDADD)
144  am_libICC_utils_la_OBJECTS = Stubs.lo CAT.lo CLUT.lo CLUT_stuffer.lo \
145  	ICC_tool_exception.lo Vetters.lo
146  libICC_utils_la_OBJECTS = $(am_libICC_utils_la_OBJECTS)
147*** misc/SampleICC-1.3.2/Contrib/ICC_utils/Stubs.h	Mon Aug 20 22:04:53 2007
148--- misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Stubs.h	Fri Jan 25 14:23:09 2008
149***************
150*** 130,136 ****
151
152    // use one of these to force desired sort order in assoc. containers of DPX
153    bool
154!   DPX::operator<(const DPX& p) const
155    {
156      return (r_ != p.r_) ? (r_ < p.r_) : ((g_ != p.g_) ? (g_ < p.g_) : (b_ < p.b_));
157    }
158--- 130,136 ----
159
160    // use one of these to force desired sort order in assoc. containers of DPX
161    bool
162!   operator<(const DPX& p) const
163    {
164      return (r_ != p.r_) ? (r_ < p.r_) : ((g_ != p.g_) ? (g_ < p.g_) : (b_ < p.b_));
165    }
166*** misc/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.cpp	Mon Aug 20 22:04:54 2007
167--- misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.cpp	Fri Jan 25 14:57:06 2008
168***************
169*** 1,322 ****
170! /*
171!  File:       Vetters.cpp
172!
173!  Contains:   Utility functions to handle common argument-checking tasks, in a
174!              way that hides platform-specific details from higher-level code.
175!
176!  Version:    V1
177!
178!  Copyright:  © see below
179!  */
180!
181! /*
182!  * The ICC Software License, Version 0.1
183!  *
184!  *
185!  * Copyright (c) 2003-2006 The International Color Consortium. All rights
186!  * reserved.
187!  *
188!  * Redistribution and use in source and binary forms, with or without
189!  * modification, are permitted provided that the following conditions
190!  * are met:
191!  *
192!  * 1. Redistributions of source code must retain the above copyright
193!  *    notice, this list of conditions and the following disclaimer.
194!  *
195!  * 2. Redistributions in binary form must reproduce the above copyright
196!  *    notice, this list of conditions and the following disclaimer in
197!  *    the documentation and/or other materials provided with the
198!  *    distribution.
199!  *
200!  * 3. The end-user documentation included with the redistribution,
201!  *    if any, must include the following acknowledgment:
202!  *       "This product includes software developed by the
203!  *        The International Color Consortium (www.color.org)"
204!  *    Alternately, this acknowledgment may appear in the software itself,
205!  *    if and wherever such third-party acknowledgments normally appear.
206!  *
207!  * 4. The names "ICC" and "The International Color Consortium" must
208!  *    not be used to imply that the ICC organization endorses or
209!  *    promotes products derived from this software without prior
210!  *    written permission. For written permission, please see
211!  *    <http://www.color.org/>.
212!  *
213!  *
214!  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
215!  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
216!  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
217!  * DISCLAIMED.  IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR
218!  * ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
219!  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
220!  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
221!  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
222!  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
223!  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
224!  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
225!  * SUCH DAMAGE.
226!  * ====================================================================
227!  *
228!  * This software consists of voluntary contributions made by many
229!  * individuals on behalf of the The International Color Consortium.
230!  *
231!  *
232!  * Membership in the ICC is encouraged when this software is used for
233!  * commercial purposes.
234!  *
235!  *
236!  * For more information on The International Color Consortium, please
237!  * see <http://www.color.org/>.
238!  *
239!  *
240!  */
241!
242! //////////////////////////////////////////////////////////////////////
243! // HISTORY:
244! //
245! // -Initial implementation by Joseph Goldstone sumer 2007
246! //
247! //////////////////////////////////////////////////////////////////////
248!
249! #include "Vetters.h"
250!
251! #include <sstream>
252! using namespace std;
253!
254! #ifndef WIN32
255! #include <sys/errno.h>
256! #else
257! #include <string.h>
258! int strerror_r(int errnum, char *str, int strsize)
259! {
260!   const char *errstr = strerror(errnum);
261!
262!   if (errstr) {
263!     strncpy(str, errstr, strsize);
264!     return 0;
265!   }
266!
267!   return -1;
268! }
269! #define stat _stat
270! #endif
271!
272! #include "ICC_tool_exception.h"
273!
274! const char*
275! path_tail(const char* const s)
276! {
277!   const char* tail = strdup(s);
278!   const char* last_slash = strrchr(tail, '/');
279!   if (last_slash != NULL)
280!     tail = last_slash + 1;
281!   return tail;
282! }
283!
284! void
285! vet_as_int(const char* const s, const string& name,
286!            const string& description)
287! {
288!   istringstream ss(s);
289!   int i;
290!   ss >> i;
291!   if (ss.fail())
292!   {
293!     ostringstream oss;
294!     oss << "The " << name << " argument given, `" << s << "', cannot be parsed as"
295!       << " an integer.  It should be an integer representing "
296!       << description << ".";
297!     throw ICC_tool_exception(oss.str());
298!   }
299! }
300!
301! void
302! vet_as_float(const char* const s, const string& name,
303!              const string& description)
304! {
305!   istringstream ss(s);
306!   float i;
307!   ss >> i;
308!   if (ss.fail())
309!   {
310!     ostringstream oss;
311!     oss << "The " << name << " argument given, `" << s << "', cannot be parsed as"
312!       << " a floating-point number.  It should be a floating-point number"
313!       << " representing " << description << ".";
314!     throw ICC_tool_exception(oss.str());
315!   }
316! }
317!
318! #define STRERROR_BUF_SIZE 256
319! off_t
320! get_size(const char* const s)
321! {
322!   struct stat sb;
323!   int stat_returned = stat(s, &sb);
324!   if (stat_returned < 0)
325!   {
326!     int stat_errno = errno;
327!     char strerror_buf[STRERROR_BUF_SIZE];
328!     strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE);
329!     ostringstream oss;
330!     oss << "Could not access information for file `" << s << "': "
331!       << strerror_buf;
332!     throw ICC_tool_exception(oss.str());
333!   }
334!   return sb.st_size;
335! }
336!
337! bool
338! check_mode(const char* const s, mode_t mode)
339! {
340!   struct stat sb;
341!   int stat_returned = stat(s, &sb);
342!   if (stat_returned < 0)
343!   {
344!     int stat_errno = errno;
345!     char strerror_buf[STRERROR_BUF_SIZE];
346!     strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE);
347!     ostringstream oss;
348!     oss << "Could not access information for file `" << s << "': "
349!       << strerror_buf;
350!     throw ICC_tool_exception(oss.str());
351!   }
352!   return (sb.st_mode & mode) != 0;
353! }
354!
355! bool
356! is_existent_file_pathname(const char* const s)
357! {
358!   struct stat sb;
359!   return stat(s, &sb) == 0;
360! }
361!
362! bool
363! is_plain_file_pathname(const char* const s)
364! {
365!   return check_mode(s, S_IFREG);
366! }
367!
368! bool
369! is_directory(const char* const s)
370! {
371!   return check_mode(s, S_IFDIR);
372! }
373!
374! const char* const
375! containing_directory(const char* const s)
376! {
377!   if (strlen(s) == 0)
378!     throw ICC_tool_exception("name of directory passed to containing_directory"
379!                              " function was zero-length.");
380!   char* tmp = strdup(s);
381!   // lop off any trailing seperator
382!   if (tmp[strlen(tmp) - 1] == '/')
383!     tmp[strlen(tmp) - 1] = 0;
384!   if (strlen(tmp) == 0)
385!     throw ICC_tool_exception("root directory (which has no containing"
386!                              " directory) passed to containing_directory"
387!                              " function");
388!   char* idx = strrchr(tmp, '/');
389!   if (idx != NULL)
390!   {
391!     *idx = 0;
392!     return tmp;
393!   }
394!   char* current_directory = getenv("PWD");
395!   if (current_directory == NULL)
396!     throw ICC_tool_exception("pathname passed to containing_directory has no"
397!                              " embedded seperator, and there is no value for"
398!                              " PWD defined in the environment");
399!   return strdup(current_directory);
400! }
401!
402! bool
403! is_readable_pathname(const char* const s)
404! {
405!   return check_mode(s, S_IRUSR)
406!   || check_mode(s, S_IRGRP)
407!   || check_mode(s, S_IROTH);
408! }
409!
410! bool
411! is_writable_pathname(const char* const s)
412! {
413!   return check_mode(s, S_IWUSR)
414!   || check_mode(s, S_IWGRP)
415!   || check_mode(s, S_IWOTH);
416! }
417!
418! bool
419! is_pathname_of_empty_file(const char* const s)
420! {
421!   return get_size(s) > 0;
422! }
423!
424! void
425! vet_input_file_pathname(const char* const s, const string& name,
426!                         const string& description)
427! {
428!   if (! is_plain_file_pathname(s))
429!   {
430!     ostringstream oss;
431!     oss << "The " << name << " argument given, `" << s << "', is not the pathname"
432!       << " of a plain file (i.e. it is the pathname of a directory, or of a"
433!       << " symbolic link, or of some other sort of special file.)  It should be"
434!       << " " << description << ".";
435!     throw ICC_tool_exception(oss.str());
436!   }
437!   if (! is_readable_pathname(s))
438!   {
439!     ostringstream oss;
440!     oss << "The " << name << " argument given, `" << s << "', is not the pathname"
441!       << " of a readable file (i.e. you do not have permission to read that"
442!       << " file, or you do not have permission to read some directory"
443!       << " containing that file.";
444!       throw ICC_tool_exception(oss.str());
445!   }
446!   if (! is_pathname_of_empty_file(s))
447!   {
448!     ostringstream oss;
449!     oss << "The " << name << " argument given, `" << s << "', is not the pathname"
450!       << " of an existing readable file, but that file is of zero length."
451!       << " The argument should be " << description << ".";
452!     throw ICC_tool_exception(oss.str());
453!   }
454! }
455!
456! void
457! vet_output_file_pathname(const char* const s, const string& name,
458!                          const string& description,
459!                          bool silent_overwrite_OK)
460! {
461!   const char* const container = containing_directory(s);
462!   if (! is_writable_pathname(container))
463!   {
464!     ostringstream oss;
465!     oss << "The " << name << " argument given, `" << s << "', has a directory"
466!       << " component which is not writable."
467!       << " The argument should be " << description << ".";
468!     throw ICC_tool_exception(oss.str());
469!   }
470!   if (is_existent_file_pathname(s))
471!   {
472!     if (is_plain_file_pathname(s))
473!       if (is_writable_pathname(s))
474!       {
475!         if (! silent_overwrite_OK)
476!         {
477!           ostringstream oss;
478!           oss << "The " << name << " argument given, `" << s << "' is of an existing"
479!             << " file."
480!             << " The argument should be " << description << ".";
481!           throw ICC_tool_exception(oss.str());
482!         }
483!       } else {
484!         ostringstream oss;
485!         oss << "The " << name << " argument given, `" << s << "' is of an existing"
486!           << " file which is not writable."
487!           << " The argument should be " << description << ".";
488!         throw ICC_tool_exception(oss.str());
489!       }
490!   }
491! }
492--- 1,329 ----
493! /*
494!  File:       Vetters.cpp
495!
496!  Contains:   Utility functions to handle common argument-checking tasks, in a
497!              way that hides platform-specific details from higher-level code.
498!
499!  Version:    V1
500!
501!  Copyright:  © see below
502!  */
503!
504! /*
505!  * The ICC Software License, Version 0.1
506!  *
507!  *
508!  * Copyright (c) 2003-2006 The International Color Consortium. All rights
509!  * reserved.
510!  *
511!  * Redistribution and use in source and binary forms, with or without
512!  * modification, are permitted provided that the following conditions
513!  * are met:
514!  *
515!  * 1. Redistributions of source code must retain the above copyright
516!  *    notice, this list of conditions and the following disclaimer.
517!  *
518!  * 2. Redistributions in binary form must reproduce the above copyright
519!  *    notice, this list of conditions and the following disclaimer in
520!  *    the documentation and/or other materials provided with the
521!  *    distribution.
522!  *
523!  * 3. The end-user documentation included with the redistribution,
524!  *    if any, must include the following acknowledgment:
525!  *       "This product includes software developed by the
526!  *        The International Color Consortium (www.color.org)"
527!  *    Alternately, this acknowledgment may appear in the software itself,
528!  *    if and wherever such third-party acknowledgments normally appear.
529!  *
530!  * 4. The names "ICC" and "The International Color Consortium" must
531!  *    not be used to imply that the ICC organization endorses or
532!  *    promotes products derived from this software without prior
533!  *    written permission. For written permission, please see
534!  *    <http://www.color.org/>.
535!  *
536!  *
537!  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
538!  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
539!  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
540!  * DISCLAIMED.  IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR
541!  * ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
542!  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
543!  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
544!  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
545!  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
546!  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
547!  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
548!  * SUCH DAMAGE.
549!  * ====================================================================
550!  *
551!  * This software consists of voluntary contributions made by many
552!  * individuals on behalf of the The International Color Consortium.
553!  *
554!  *
555!  * Membership in the ICC is encouraged when this software is used for
556!  * commercial purposes.
557!  *
558!  *
559!  * For more information on The International Color Consortium, please
560!  * see <http://www.color.org/>.
561!  *
562!  *
563!  */
564!
565! //////////////////////////////////////////////////////////////////////
566! // HISTORY:
567! //
568! // -Initial implementation by Joseph Goldstone sumer 2007
569! //
570! //////////////////////////////////////////////////////////////////////
571!
572! #include "Vetters.h"
573!
574! #include <sstream>
575! using namespace std;
576!
577! #ifndef WIN32
578! #ifdef sun
579! #include <errno.h>
580! #else
581! #include <sys/errno.h>
582! #endif
583! #else
584! #include <string.h>
585! #define stat _stat
586! #endif
587!
588! #if defined WIN32 || defined sun
589! int strerror_r(int errnum, char *str, int strsize)
590! {
591!   const char *errstr = strerror(errnum);
592!
593!   if (errstr) {
594!     strncpy(str, errstr, strsize);
595!     return 0;
596!   }
597!
598!   return -1;
599! }
600! #endif
601!
602! #include "ICC_tool_exception.h"
603!
604! const char*
605! path_tail(const char* const s)
606! {
607!   const char* tail = strdup(s);
608!   const char* last_slash = strrchr(tail, '/');
609!   if (last_slash != NULL)
610!     tail = last_slash + 1;
611!   return tail;
612! }
613!
614! void
615! vet_as_int(const char* const s, const string& name,
616!            const string& description)
617! {
618!   istringstream ss(s);
619!   int i;
620!   ss >> i;
621!   if (ss.fail())
622!   {
623!     ostringstream oss;
624!     oss << "The " << name << " argument given, `" << s << "', cannot be parsed as"
625!       << " an integer.  It should be an integer representing "
626!       << description << ".";
627!     throw ICC_tool_exception(oss.str());
628!   }
629! }
630!
631! void
632! vet_as_float(const char* const s, const string& name,
633!              const string& description)
634! {
635!   istringstream ss(s);
636!   float i;
637!   ss >> i;
638!   if (ss.fail())
639!   {
640!     ostringstream oss;
641!     oss << "The " << name << " argument given, `" << s << "', cannot be parsed as"
642!       << " a floating-point number.  It should be a floating-point number"
643!       << " representing " << description << ".";
644!     throw ICC_tool_exception(oss.str());
645!   }
646! }
647!
648! #define STRERROR_BUF_SIZE 256
649! off_t
650! get_size(const char* const s)
651! {
652!   struct stat sb;
653!   int stat_returned = stat(s, &sb);
654!   if (stat_returned < 0)
655!   {
656!     int stat_errno = errno;
657!     char strerror_buf[STRERROR_BUF_SIZE];
658!     strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE);
659!     ostringstream oss;
660!     oss << "Could not access information for file `" << s << "': "
661!       << strerror_buf;
662!     throw ICC_tool_exception(oss.str());
663!   }
664!   return sb.st_size;
665! }
666!
667! bool
668! check_mode(const char* const s, mode_t mode)
669! {
670!   struct stat sb;
671!   int stat_returned = stat(s, &sb);
672!   if (stat_returned < 0)
673!   {
674!     int stat_errno = errno;
675!     char strerror_buf[STRERROR_BUF_SIZE];
676!     strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE);
677!     ostringstream oss;
678!     oss << "Could not access information for file `" << s << "': "
679!       << strerror_buf;
680!     throw ICC_tool_exception(oss.str());
681!   }
682!   return (sb.st_mode & mode) != 0;
683! }
684!
685! bool
686! is_existent_file_pathname(const char* const s)
687! {
688!   struct stat sb;
689!   return stat(s, &sb) == 0;
690! }
691!
692! bool
693! is_plain_file_pathname(const char* const s)
694! {
695!   return check_mode(s, S_IFREG);
696! }
697!
698! bool
699! is_directory(const char* const s)
700! {
701!   return check_mode(s, S_IFDIR);
702! }
703!
704! const char* const
705! containing_directory(const char* const s)
706! {
707!   if (strlen(s) == 0)
708!     throw ICC_tool_exception("name of directory passed to containing_directory"
709!                              " function was zero-length.");
710!   char* tmp = strdup(s);
711!   // lop off any trailing seperator
712!   if (tmp[strlen(tmp) - 1] == '/')
713!     tmp[strlen(tmp) - 1] = 0;
714!   if (strlen(tmp) == 0)
715!     throw ICC_tool_exception("root directory (which has no containing"
716!                              " directory) passed to containing_directory"
717!                              " function");
718!   char* idx = strrchr(tmp, '/');
719!   if (idx != NULL)
720!   {
721!     *idx = 0;
722!     return tmp;
723!   }
724!   char* current_directory = getenv("PWD");
725!   if (current_directory == NULL)
726!     throw ICC_tool_exception("pathname passed to containing_directory has no"
727!                              " embedded seperator, and there is no value for"
728!                              " PWD defined in the environment");
729!   return strdup(current_directory);
730! }
731!
732! bool
733! is_readable_pathname(const char* const s)
734! {
735!   return check_mode(s, S_IRUSR)
736!   || check_mode(s, S_IRGRP)
737!   || check_mode(s, S_IROTH);
738! }
739!
740! bool
741! is_writable_pathname(const char* const s)
742! {
743!   return check_mode(s, S_IWUSR)
744!   || check_mode(s, S_IWGRP)
745!   || check_mode(s, S_IWOTH);
746! }
747!
748! bool
749! is_pathname_of_empty_file(const char* const s)
750! {
751!   return get_size(s) > 0;
752! }
753!
754! void
755! vet_input_file_pathname(const char* const s, const string& name,
756!                         const string& description)
757! {
758!   if (! is_plain_file_pathname(s))
759!   {
760!     ostringstream oss;
761!     oss << "The " << name << " argument given, `" << s << "', is not the pathname"
762!       << " of a plain file (i.e. it is the pathname of a directory, or of a"
763!       << " symbolic link, or of some other sort of special file.)  It should be"
764!       << " " << description << ".";
765!     throw ICC_tool_exception(oss.str());
766!   }
767!   if (! is_readable_pathname(s))
768!   {
769!     ostringstream oss;
770!     oss << "The " << name << " argument given, `" << s << "', is not the pathname"
771!       << " of a readable file (i.e. you do not have permission to read that"
772!       << " file, or you do not have permission to read some directory"
773!       << " containing that file.";
774!       throw ICC_tool_exception(oss.str());
775!   }
776!   if (! is_pathname_of_empty_file(s))
777!   {
778!     ostringstream oss;
779!     oss << "The " << name << " argument given, `" << s << "', is not the pathname"
780!       << " of an existing readable file, but that file is of zero length."
781!       << " The argument should be " << description << ".";
782!     throw ICC_tool_exception(oss.str());
783!   }
784! }
785!
786! void
787! vet_output_file_pathname(const char* const s, const string& name,
788!                          const string& description,
789!                          bool silent_overwrite_OK)
790! {
791!   const char* const container = containing_directory(s);
792!   if (! is_writable_pathname(container))
793!   {
794!     ostringstream oss;
795!     oss << "The " << name << " argument given, `" << s << "', has a directory"
796!       << " component which is not writable."
797!       << " The argument should be " << description << ".";
798!     throw ICC_tool_exception(oss.str());
799!   }
800!   if (is_existent_file_pathname(s))
801!   {
802!     if (is_plain_file_pathname(s))
803!       if (is_writable_pathname(s))
804!       {
805!         if (! silent_overwrite_OK)
806!         {
807!           ostringstream oss;
808!           oss << "The " << name << " argument given, `" << s << "' is of an existing"
809!             << " file."
810!             << " The argument should be " << description << ".";
811!           throw ICC_tool_exception(oss.str());
812!         }
813!       } else {
814!         ostringstream oss;
815!         oss << "The " << name << " argument given, `" << s << "' is of an existing"
816!           << " file which is not writable."
817!           << " The argument should be " << description << ".";
818!         throw ICC_tool_exception(oss.str());
819!       }
820!   }
821! }
822*** misc/SampleICC-1.3.2/IccProfLib/IccIO.cpp	Mon Aug 20 22:05:00 2007
823--- misc/build/SampleICC-1.3.2/IccProfLib/IccIO.cpp	Fri Jan 25 14:23:09 2008
824***************
825*** 78,84 ****
826  #include "IccIO.h"
827  #include "IccUtil.h"
828  #include <stdlib.h>
829! #include <memory.h>
830  #include <string.h>
831
832  #ifndef __max
833--- 78,84 ----
834  #include "IccIO.h"
835  #include "IccUtil.h"
836  #include <stdlib.h>
837! #include <memory>
838  #include <string.h>
839
840  #ifndef __max
841*** misc/SampleICC-1.3.2/IccProfLib/IccIO.h	Mon Aug 20 22:05:00 2007
842--- misc/build/SampleICC-1.3.2/IccProfLib/IccIO.h	Fri Jan 25 14:23:09 2008
843***************
844*** 79,84 ****
845--- 79,85 ----
846  #define _ICCIO_H
847
848  #include "IccDefs.h"
849+ #include "memory"
850  #include "stdio.h"
851
852  #ifdef USESAMPLEICCNAMESPACE
853*** misc/SampleICC-1.3.2/IccProfLib/IccMpeACS.cpp	Mon Aug 20 22:05:00 2007
854--- misc/build/SampleICC-1.3.2/IccProfLib/IccMpeACS.cpp	Fri Jan 25 14:23:09 2008
855***************
856*** 136,152 ****
857    icChar sigBuf[30];
858
859    if (GetBAcsSig())
860!     sDescription += "ELEM_bACS\r\n";
861    else
862!     sDescription += "ELEM_eACS\r\n";
863
864    icGetSig(sigBuf, m_signature);
865    sDescription += "  Signature = ";
866    sDescription += sigBuf;
867!   sDescription += "\r\n";
868
869    if (m_pData) {
870!     sDescription += "\r\nData Follows:\r\n";
871
872      icMemDump(sDescription, m_pData, m_nDataSize);
873    }
874--- 136,152 ----
875    icChar sigBuf[30];
876
877    if (GetBAcsSig())
878!     sDescription += "ELEM_bACS\n";
879    else
880!     sDescription += "ELEM_eACS\n";
881
882    icGetSig(sigBuf, m_signature);
883    sDescription += "  Signature = ";
884    sDescription += sigBuf;
885!   sDescription += "\n";
886
887    if (m_pData) {
888!     sDescription += "\nData Follows:\n";
889
890      icMemDump(sDescription, m_pData, m_nDataSize);
891    }
892*** misc/SampleICC-1.3.2/IccProfLib/IccMpeBasic.cpp	Mon Aug 20 22:05:00 2007
893--- misc/build/SampleICC-1.3.2/IccProfLib/IccMpeBasic.cpp	Fri Jan 25 14:23:09 2008
894***************
895*** 218,249 ****
896    sprintf(buf, "%.8f", m_endPoint);
897    sDescription += buf;
898    }
899!   sprintf(buf, "]\r\nFunctionType: %04Xh\r\n", m_nFunctionType);
900    sDescription += buf;
901
902    switch(m_nFunctionType) {
903    case 0x0000:
904      if (m_params[1]==0.0 && m_params[2]==0.0)
905!       sprintf(buf, "Y = %.8f\r\n\r\n", m_params[3]);
906      else if (m_params[0]==1.0 && m_params[1]==1.0 && m_params[2]==0.0 && m_params[3]==0.0)
907!       sprintf(buf, "Y = X\r\n\r\n");
908      else if (m_params[0]==1.0 && m_params[2]==0.0)
909!       sprintf(buf, "Y = %.8f * X + %.8f\r\n\r\n",
910                m_params[1], m_params[3]);
911      else
912!       sprintf(buf, "Y = (%.8f * X + %.8f)^%.4f + %.8f\r\n\r\n",
913                m_params[1], m_params[2], m_params[0], m_params[3]);
914      sDescription += buf;
915      return;
916
917    case 0x0001:
918!     sprintf(buf, "Y = %.8f * log (%.8f * (X ^ %.8f)  + %.8f) + %.8f\r\n\r\n",
919              m_params[1], m_params[2], m_params[0], m_params[3], m_params[4]);
920      sDescription += buf;
921      return;
922
923    case 0x0002:
924!     sprintf(buf, "Y = %.8f * (%.8f ^ (%.8f * X + %.8f)) + %.8f\r\n\r\n",
925              m_params[0], m_params[1], m_params[2], m_params[3], m_params[4]);
926      sDescription += buf;
927      return;
928--- 218,249 ----
929    sprintf(buf, "%.8f", m_endPoint);
930    sDescription += buf;
931    }
932!   sprintf(buf, "]\nFunctionType: %04Xh\n", m_nFunctionType);
933    sDescription += buf;
934
935    switch(m_nFunctionType) {
936    case 0x0000:
937      if (m_params[1]==0.0 && m_params[2]==0.0)
938!       sprintf(buf, "Y = %.8f\n\n", m_params[3]);
939      else if (m_params[0]==1.0 && m_params[1]==1.0 && m_params[2]==0.0 && m_params[3]==0.0)
940!       sprintf(buf, "Y = X\n\n");
941      else if (m_params[0]==1.0 && m_params[2]==0.0)
942!       sprintf(buf, "Y = %.8f * X + %.8f\n\n",
943                m_params[1], m_params[3]);
944      else
945!       sprintf(buf, "Y = (%.8f * X + %.8f)^%.4f + %.8f\n\n",
946                m_params[1], m_params[2], m_params[0], m_params[3]);
947      sDescription += buf;
948      return;
949
950    case 0x0001:
951!     sprintf(buf, "Y = %.8f * log (%.8f * (X ^ %.8f)  + %.8f) + %.8f\n\n",
952              m_params[1], m_params[2], m_params[0], m_params[3], m_params[4]);
953      sDescription += buf;
954      return;
955
956    case 0x0002:
957!     sprintf(buf, "Y = %.8f * (%.8f ^ (%.8f * X + %.8f)) + %.8f\n\n",
958              m_params[0], m_params[1], m_params[2], m_params[3], m_params[4]);
959      sDescription += buf;
960      return;
961***************
962*** 250,260 ****
963
964    default:
965      int i;
966!     sprintf(buf, "Unknown Function with %d parameters:\r\n\r\n", m_nParameters);
967      sDescription += buf;
968
969      for (i=0; i<m_nParameters; i++) {
970!       sprintf(buf, "Param[%d] = %.8lf\r\n\r\n", i, m_params[i]);
971        sDescription += buf;
972      }
973    }
974--- 250,260 ----
975
976    default:
977      int i;
978!     sprintf(buf, "Unknown Function with %d parameters:\n\n", m_nParameters);
979      sDescription += buf;
980
981      for (i=0; i<m_nParameters; i++) {
982!       sprintf(buf, "Param[%d] = %.8lf\n\n", i, m_params[i]);
983        sDescription += buf;
984      }
985    }
986***************
987*** 496,502 ****
988    if (m_nReserved || m_nReserved2) {
989      sReport += icValidateWarningMsg;
990      sReport += sSigName;
991!     sReport += " formula curve has non zero reserved data.\r\n";
992      rv = icValidateWarning;
993    }
994
995--- 496,502 ----
996    if (m_nReserved || m_nReserved2) {
997      sReport += icValidateWarningMsg;
998      sReport += sSigName;
999!     sReport += " formula curve has non zero reserved data.\n";
1000      rv = icValidateWarning;
1001    }
1002
1003***************
1004*** 505,517 ****
1005      if (!m_params || m_nParameters<4) {
1006        sReport += icValidateCriticalErrorMsg;
1007        sReport += sSigName;
1008!       sReport += " formula curve has Invalid formulaCurveSegment parameters.\r\n";
1009        rv = icValidateCriticalError;
1010      }
1011      else if (m_nParameters > 4) {
1012        sReport += icValidateWarningMsg;
1013        sReport += sSigName;
1014!       sReport += " formula curve has too many formulaCurveSegment parameters.\r\n";
1015        rv = icValidateWarning;
1016      }
1017      break;
1018--- 505,517 ----
1019      if (!m_params || m_nParameters<4) {
1020        sReport += icValidateCriticalErrorMsg;
1021        sReport += sSigName;
1022!       sReport += " formula curve has Invalid formulaCurveSegment parameters.\n";
1023        rv = icValidateCriticalError;
1024      }
1025      else if (m_nParameters > 4) {
1026        sReport += icValidateWarningMsg;
1027        sReport += sSigName;
1028!       sReport += " formula curve has too many formulaCurveSegment parameters.\n";
1029        rv = icValidateWarning;
1030      }
1031      break;
1032***************
1033*** 520,532 ****
1034      if (!m_params || m_nParameters<5) {
1035        sReport += icValidateCriticalErrorMsg;
1036        sReport += sSigName;
1037!       sReport += " formula curve has Invalid formulaCurveSegment parameters.\r\n";
1038        rv = icValidateCriticalError;
1039      }
1040      else if (m_nParameters > 5) {
1041        sReport += icValidateWarningMsg;
1042        sReport += sSigName;
1043!       sReport += " formula curve has too many formulaCurveSegment parameters.\r\n";
1044        rv = icValidateWarning;
1045      }
1046      break;
1047--- 520,532 ----
1048      if (!m_params || m_nParameters<5) {
1049        sReport += icValidateCriticalErrorMsg;
1050        sReport += sSigName;
1051!       sReport += " formula curve has Invalid formulaCurveSegment parameters.\n";
1052        rv = icValidateCriticalError;
1053      }
1054      else if (m_nParameters > 5) {
1055        sReport += icValidateWarningMsg;
1056        sReport += sSigName;
1057!       sReport += " formula curve has too many formulaCurveSegment parameters.\n";
1058        rv = icValidateWarning;
1059      }
1060      break;
1061***************
1062*** 535,547 ****
1063      if (!m_params || m_nParameters<5) {
1064        sReport += icValidateCriticalErrorMsg;
1065        sReport += sSigName;
1066!       sReport += " formula curve has Invalid formulaCurveSegment parameters.\r\n";
1067        rv = icValidateCriticalError;
1068      }
1069      else if (m_nParameters > 5) {
1070        sReport += icValidateWarningMsg;
1071        sReport += sSigName;
1072!       sReport += " formula curve has too many formulaCurveSegment parameters.\r\n";
1073        rv = icValidateWarning;
1074      }
1075      break;
1076--- 535,547 ----
1077      if (!m_params || m_nParameters<5) {
1078        sReport += icValidateCriticalErrorMsg;
1079        sReport += sSigName;
1080!       sReport += " formula curve has Invalid formulaCurveSegment parameters.\n";
1081        rv = icValidateCriticalError;
1082      }
1083      else if (m_nParameters > 5) {
1084        sReport += icValidateWarningMsg;
1085        sReport += sSigName;
1086!       sReport += " formula curve has too many formulaCurveSegment parameters.\n";
1087        rv = icValidateWarning;
1088      }
1089      break;
1090***************
1091*** 551,557 ****
1092        icChar buf[128];
1093        sReport += icValidateCriticalErrorMsg;
1094        sReport += sSigName;
1095!       sprintf(buf, " formula curve uses unknown formulaCurveSegment function type %d\r\n", m_nFunctionType);
1096        sReport += buf;
1097        rv = icValidateCriticalError;
1098      }
1099--- 551,557 ----
1100        icChar buf[128];
1101        sReport += icValidateCriticalErrorMsg;
1102        sReport += sSigName;
1103!       sprintf(buf, " formula curve uses unknown formulaCurveSegment function type %d\n", m_nFunctionType);
1104        sReport += buf;
1105        rv = icValidateCriticalError;
1106      }
1107***************
1108*** 727,733 ****
1109      sDescription += buf;
1110      }
1111
1112!     sprintf(buf, "]\r\n");
1113      sDescription += buf;
1114    }
1115    else {
1116--- 727,733 ----
1117      sDescription += buf;
1118      }
1119
1120!     sprintf(buf, "]\n");
1121      sDescription += buf;
1122    }
1123    else {
1124***************
1125*** 744,752 ****
1126      sprintf(buf, "%.8f", m_endPoint);
1127      sDescription += buf;
1128      }
1129!     sprintf(buf, "]\r\n");
1130      sDescription += buf;
1131!     sDescription += "IN  OUT\r\n";
1132
1133      icUInt32Number i;
1134
1135--- 744,752 ----
1136      sprintf(buf, "%.8f", m_endPoint);
1137      sDescription += buf;
1138      }
1139!     sprintf(buf, "]\n");
1140      sDescription += buf;
1141!     sDescription += "IN  OUT\n";
1142
1143      icUInt32Number i;
1144
1145***************
1146*** 754,764 ****
1147      icFloatNumber last = (icFloatNumber)(m_nCount-1);
1148
1149      for (i=0; i<m_nCount; i++) {
1150!       sprintf(buf, "%.8f %.8f\r\n", m_startPoint + (icFloatNumber)i*range/last, m_pSamples[i]);
1151        sDescription += buf;
1152      }
1153    }
1154!   sDescription += "\r\n";
1155  }
1156
1157  /**
1158--- 754,764 ----
1159      icFloatNumber last = (icFloatNumber)(m_nCount-1);
1160
1161      for (i=0; i<m_nCount; i++) {
1162!       sprintf(buf, "%.8f %.8f\n", m_startPoint + (icFloatNumber)i*range/last, m_pSamples[i]);
1163        sDescription += buf;
1164      }
1165    }
1166!   sDescription += "\n";
1167  }
1168
1169  /**
1170***************
1171*** 910,916 ****
1172    if (m_nReserved) {
1173      sReport += icValidateWarningMsg;
1174      sReport += sSigName;
1175!     sReport += " sampled curve has non zero reserved data.\r\n";
1176      rv = icValidateWarning;
1177    }
1178
1179--- 910,916 ----
1180    if (m_nReserved) {
1181      sReport += icValidateWarningMsg;
1182      sReport += sSigName;
1183!     sReport += " sampled curve has non zero reserved data.\n";
1184      rv = icValidateWarning;
1185    }
1186
1187***************
1188*** 917,929 ****
1189    if (m_nCount<2) {
1190      sReport += icValidateCriticalErrorMsg;
1191      sReport += sSigName;
1192!     sReport += " sampled curve has too few sample points.\r\n";
1193      rv = icValidateCriticalError;
1194    }
1195    else if (m_endPoint-m_startPoint == 0.0) {
1196      sReport += icValidateWarningMsg;
1197      sReport += sSigName;
1198!     sReport += " sampled curve has a range of zero.\r\n";
1199      rv = icMaxStatus(rv, icValidateWarning);
1200    }
1201
1202--- 917,929 ----
1203    if (m_nCount<2) {
1204      sReport += icValidateCriticalErrorMsg;
1205      sReport += sSigName;
1206!     sReport += " sampled curve has too few sample points.\n";
1207      rv = icValidateCriticalError;
1208    }
1209    else if (m_endPoint-m_startPoint == 0.0) {
1210      sReport += icValidateWarningMsg;
1211      sReport += sSigName;
1212!     sReport += " sampled curve has a range of zero.\n";
1213      rv = icMaxStatus(rv, icValidateWarning);
1214    }
1215
1216***************
1217*** 1054,1060 ****
1218  {
1219    CIccCurveSegmentList::iterator i;
1220
1221!   sDescription += "BEGIN_CURVE\r\n";
1222    for (i=m_list->begin(); i!=m_list->end(); i++) {
1223      (*i)->Describe(sDescription);
1224    }
1225--- 1054,1060 ----
1226  {
1227    CIccCurveSegmentList::iterator i;
1228
1229!   sDescription += "BEGIN_CURVE\n";
1230    for (i=m_list->begin(); i!=m_list->end(); i++) {
1231      (*i)->Describe(sDescription);
1232    }
1233***************
1234*** 1342,1348 ****
1235    if (m_nReserved1 || m_nReserved2) {
1236      sReport += icValidateWarningMsg;
1237      sReport += sSigName;
1238!     sReport += " Segmented curve has non zero reserved data.\r\n";
1239      rv = icValidateWarning;
1240    }
1241
1242--- 1342,1348 ----
1243    if (m_nReserved1 || m_nReserved2) {
1244      sReport += icValidateWarningMsg;
1245      sReport += sSigName;
1246!     sReport += " Segmented curve has non zero reserved data.\n";
1247      rv = icValidateWarning;
1248    }
1249
1250***************
1251*** 1349,1355 ****
1252    if (m_list->size()==0) {
1253      sReport += icValidateCriticalErrorMsg;
1254      sReport += sSigName;
1255!     sReport += " Has Empty CurveSegment!\r\n";
1256      return icValidateCriticalError;
1257    }
1258
1259--- 1349,1355 ----
1260    if (m_list->size()==0) {
1261      sReport += icValidateCriticalErrorMsg;
1262      sReport += sSigName;
1263!     sReport += " Has Empty CurveSegment!\n";
1264      return icValidateCriticalError;
1265    }
1266
1267***************
1268*** 1599,1609 ****
1269      icChar buf[81];
1270      int i;
1271
1272!     sprintf(buf, "BEGIN_CURVE_SET %d\r\n", m_nInputChannels);
1273      sDescription += buf;
1274
1275      for (i=0; i<m_nInputChannels; i++) {
1276!       sprintf(buf, "Curve %d of %d\r\n", i+1, m_nInputChannels);
1277        sDescription += buf;
1278        if (m_curve[i]) {
1279          m_curve[i]->Describe(sDescription);
1280--- 1599,1609 ----
1281      icChar buf[81];
1282      int i;
1283
1284!     sprintf(buf, "BEGIN_CURVE_SET %d\n", m_nInputChannels);
1285      sDescription += buf;
1286
1287      for (i=0; i<m_nInputChannels; i++) {
1288!       sprintf(buf, "Curve %d of %d\n", i+1, m_nInputChannels);
1289        sDescription += buf;
1290        if (m_curve[i]) {
1291          m_curve[i]->Describe(sDescription);
1292***************
1293*** 1877,1883 ****
1294      sReport += " - Element ";
1295      sSigName = Info.GetSigName(GetType());
1296      sReport += sSigName;
1297!     sReport += " Has Empty Curve Element(s)!\r\n";
1298      return icValidateCriticalError;
1299    }
1300
1301--- 1877,1883 ----
1302      sReport += " - Element ";
1303      sSigName = Info.GetSigName(GetType());
1304      sReport += sSigName;
1305!     sReport += " Has Empty Curve Element(s)!\n";
1306      return icValidateCriticalError;
1307    }
1308
1309***************
1310*** 2042,2048 ****
1311    int i, j;
1312    icFloatNumber *data = m_pMatrix;
1313
1314!   sprintf(buf, "BEGIN_ELEM_MATRIX %d %d\r\n", m_nInputChannels, m_nOutputChannels);
1315    sDescription += buf;
1316
1317    for (j=0; j<m_nOutputChannels; j++) {
1318--- 2042,2048 ----
1319    int i, j;
1320    icFloatNumber *data = m_pMatrix;
1321
1322!   sprintf(buf, "BEGIN_ELEM_MATRIX %d %d\n", m_nInputChannels, m_nOutputChannels);
1323    sDescription += buf;
1324
1325    for (j=0; j<m_nOutputChannels; j++) {
1326***************
1327*** 2052,2058 ****
1328        sprintf(buf, "%12.8lf", data[i]);
1329        sDescription += buf;
1330      }
1331!     sprintf(buf, "  +  %12.8lf\r\n", m_pConstants[j]);
1332      sDescription += buf;
1333      data += i;
1334    }
1335--- 2052,2058 ----
1336        sprintf(buf, "%12.8lf", data[i]);
1337        sDescription += buf;
1338      }
1339!     sprintf(buf, "  +  %12.8lf\n", m_pConstants[j]);
1340      sDescription += buf;
1341      data += i;
1342    }
1343***************
1344*** 2273,2279 ****
1345      sReport += " - Element ";
1346      sSigName = Info.GetSigName(GetType());
1347      sReport += sSigName;
1348!     sReport += " Has Empty Matrix data!\r\n";
1349      return icValidateCriticalError;
1350    }
1351
1352--- 2273,2279 ----
1353      sReport += " - Element ";
1354      sSigName = Info.GetSigName(GetType());
1355      sReport += sSigName;
1356!     sReport += " Has Empty Matrix data!\n";
1357      return icValidateCriticalError;
1358    }
1359
1360***************
1361*** 2620,2626 ****
1362      sReport += " - Element ";
1363      sSigName = Info.GetSigName(GetType());
1364      sReport += sSigName;
1365!     sReport += " Has No CLUT!\r\n";
1366      return icValidateCriticalError;
1367    }
1368
1369--- 2620,2626 ----
1370      sReport += " - Element ";
1371      sSigName = Info.GetSigName(GetType());
1372      sReport += sSigName;
1373!     sReport += " Has No CLUT!\n";
1374      return icValidateCriticalError;
1375    }
1376
1377*** misc/SampleICC-1.3.2/IccProfLib/IccProfLibConf.h	Mon Aug 20 22:05:00 2007
1378--- misc/build/SampleICC-1.3.2/IccProfLib/IccProfLibConf.h	Fri Jan 25 14:23:09 2008
1379***************
1380*** 107,126 ****
1381
1382  #else // non-PC, perhaps Mac or Linux
1383
1384!   #define ICCUINT64 unsigned long long
1385!   #define ICCINT64  long long
1386!   #define ICUINT64TYPE unsigned long long
1387!   #define ICINT64TYPE long long
1388!
1389!   #if defined(__APPLE__)
1390!     #if  defined(__LITTLE_ENDIAN__)
1391!       #define ICC_BYTE_ORDER_LITTLE_ENDIAN
1392!     #else
1393!       #define ICC_BYTE_ORDER_BIG_ENDIAN
1394!     #endif
1395!   #else
1396!     #define ICC_BYTE_ORDER_LITTLE_ENDIAN
1397!   #endif
1398
1399    #define ICCPROFLIB_API
1400    #define ICCPROFLIB_EXTERN
1401--- 107,129 ----
1402
1403  #else // non-PC, perhaps Mac or Linux
1404
1405! #include <sal/types.h>
1406! #include <osl/endian.h>
1407!
1408!   #define ICCUINT64 sal_uInt64
1409!   #define ICCINT64 sal_Int64
1410!   #define ICUINT64TYPE sal_uInt64
1411!   #define ICINT64TYPE sal_Int64
1412!   #define ICINT32TYPE sal_Int32
1413!   #define ICUINT32TYPE sal_uInt32
1414!
1415! #if defined(_LITTLE_ENDIAN)
1416! #    define ICC_BYTE_ORDER_LITTLE_ENDIAN
1417! #elif defined(_BIG_ENDIAN)
1418! #    define ICC_BYTE_ORDER_BIG_ENDIAN
1419! #else
1420! #    error "ENDIAN unknown"
1421! #endif
1422
1423    #define ICCPROFLIB_API
1424    #define ICCPROFLIB_EXTERN
1425*** misc/SampleICC-1.3.2/IccProfLib/IccProfile.cpp	Mon Aug 20 22:05:00 2007
1426--- misc/build/SampleICC-1.3.2/IccProfLib/IccProfile.cpp	Fri Jan 25 14:23:09 2008
1427***************
1428*** 567,573 ****
1429
1430    if (!ReadBasic(pIO)) {
1431      sReport += icValidateCriticalErrorMsg;
1432!     sReport += " - Unable to read profile!**\r\n\tProfile has invalid structure!\r\n";
1433      Cleanup();
1434
1435      return icValidateCriticalError;
1436--- 567,573 ----
1437
1438    if (!ReadBasic(pIO)) {
1439      sReport += icValidateCriticalErrorMsg;
1440!     sReport += " - Unable to read profile!**\n\tProfile has invalid structure!\n";
1441      Cleanup();
1442
1443      return icValidateCriticalError;
1444***************
1445*** 576,582 ****
1446    // Check profile header
1447    if (!CheckFileSize(pIO)) {
1448      sReport += icValidateNonCompliantMsg;
1449!     sReport += "Bad Header File Size\r\n";
1450      rv = icMaxStatus(rv, icValidateNonCompliant);
1451    }
1452
1453--- 576,582 ----
1454    // Check profile header
1455    if (!CheckFileSize(pIO)) {
1456      sReport += icValidateNonCompliantMsg;
1457!     sReport += "Bad Header File Size\n";
1458      rv = icMaxStatus(rv, icValidateNonCompliant);
1459    }
1460
1461***************
1462*** 588,594 ****
1463      CalcProfileID(pIO, &profileID);
1464      if (strncmp((char*)profileID.ID8, (char*)m_Header.profileID.ID8, 16) != 0) {
1465        sReport += icValidateNonCompliantMsg;
1466!       sReport += "Bad Profile ID\r\n";
1467
1468        rv = icMaxStatus(rv, icValidateNonCompliant);
1469      }
1470--- 588,594 ----
1471      CalcProfileID(pIO, &profileID);
1472      if (strncmp((char*)profileID.ID8, (char*)m_Header.profileID.ID8, 16) != 0) {
1473        sReport += icValidateNonCompliantMsg;
1474!       sReport += "Bad Profile ID\n";
1475
1476        rv = icMaxStatus(rv, icValidateNonCompliant);
1477      }
1478***************
1479*** 601,607 ****
1480        sReport += icValidateCriticalErrorMsg;
1481        sReport += " - ";
1482        sReport += Info.GetTagSigName(i->TagInfo.sig);
1483!       sReport += " - Tag has invalid structure!\r\n";
1484
1485        rv = icMaxStatus(rv, icValidateCriticalError);
1486      }
1487--- 601,607 ----
1488        sReport += icValidateCriticalErrorMsg;
1489        sReport += " - ";
1490        sReport += Info.GetTagSigName(i->TagInfo.sig);
1491!       sReport += " - Tag has invalid structure!\n";
1492
1493        rv = icMaxStatus(rv, icValidateCriticalError);
1494      }
1495***************
1496*** 1026,1032 ****
1497
1498    default:
1499      sReport += icValidateCriticalErrorMsg;
1500!     sprintf(buf, " - %s: Unknown profile class!\r\n", Info.GetProfileClassSigName(m_Header.deviceClass));
1501      sReport += buf;
1502      rv = icMaxStatus(rv, icValidateCriticalError);
1503    }
1504--- 1026,1032 ----
1505
1506    default:
1507      sReport += icValidateCriticalErrorMsg;
1508!     sprintf(buf, " - %s: Unknown profile class!\n", Info.GetProfileClassSigName(m_Header.deviceClass));
1509      sReport += buf;
1510      rv = icMaxStatus(rv, icValidateCriticalError);
1511    }
1512***************
1513*** 1033,1039 ****
1514
1515    if (!Info.IsValidSpace(m_Header.colorSpace)) {
1516      sReport += icValidateCriticalErrorMsg;
1517!     sprintf(buf, " - %s: Unknown color space!\r\n", Info.GetColorSpaceSigName(m_Header.colorSpace));
1518      sReport += buf;
1519      rv = icMaxStatus(rv, icValidateCriticalError);
1520    }
1521--- 1033,1039 ----
1522
1523    if (!Info.IsValidSpace(m_Header.colorSpace)) {
1524      sReport += icValidateCriticalErrorMsg;
1525!     sprintf(buf, " - %s: Unknown color space!\n", Info.GetColorSpaceSigName(m_Header.colorSpace));
1526      sReport += buf;
1527      rv = icMaxStatus(rv, icValidateCriticalError);
1528    }
1529***************
1530*** 1041,1047 ****
1531    if (m_Header.deviceClass==icSigLinkClass) {
1532      if (!Info.IsValidSpace(m_Header.pcs)) {
1533        sReport += icValidateCriticalErrorMsg;
1534!       sprintf(buf, " - %s: Unknown pcs color space!\r\n", Info.GetColorSpaceSigName(m_Header.pcs));
1535        sReport += buf;
1536        rv = icMaxStatus(rv, icValidateCriticalError);
1537      }
1538--- 1041,1047 ----
1539    if (m_Header.deviceClass==icSigLinkClass) {
1540      if (!Info.IsValidSpace(m_Header.pcs)) {
1541        sReport += icValidateCriticalErrorMsg;
1542!       sprintf(buf, " - %s: Unknown pcs color space!\n", Info.GetColorSpaceSigName(m_Header.pcs));
1543        sReport += buf;
1544        rv = icMaxStatus(rv, icValidateCriticalError);
1545      }
1546***************
1547*** 1049,1055 ****
1548    else {
1549      if (m_Header.pcs!=icSigXYZData && m_Header.pcs!=icSigLabData) {
1550        sReport += icValidateCriticalErrorMsg;
1551!       sprintf(buf, " - %s: Invalid pcs color space!\r\n", Info.GetColorSpaceSigName(m_Header.pcs));
1552        sReport += buf;
1553        rv = icMaxStatus(rv, icValidateCriticalError);
1554      }
1555--- 1049,1055 ----
1556    else {
1557      if (m_Header.pcs!=icSigXYZData && m_Header.pcs!=icSigLabData) {
1558        sReport += icValidateCriticalErrorMsg;
1559!       sprintf(buf, " - %s: Invalid pcs color space!\n", Info.GetColorSpaceSigName(m_Header.pcs));
1560        sReport += buf;
1561        rv = icMaxStatus(rv, icValidateCriticalError);
1562      }
1563***************
1564*** 1068,1074 ****
1565
1566    default:
1567      sReport += icValidateWarningMsg;
1568!     sprintf(buf, " - %s: Unknown platform signature.\r\n", Info.GetPlatformSigName(m_Header.platform));
1569      sReport += buf;
1570      rv = icMaxStatus(rv, icValidateWarning);
1571    }
1572--- 1068,1074 ----
1573
1574    default:
1575      sReport += icValidateWarningMsg;
1576!     sprintf(buf, " - %s: Unknown platform signature.\n", Info.GetPlatformSigName(m_Header.platform));
1577      sReport += buf;
1578      rv = icMaxStatus(rv, icValidateWarning);
1579    }
1580***************
1581*** 1095,1101 ****
1582
1583    default:
1584      sReport += icValidateWarningMsg;
1585!     sprintf(buf, " - %s: Unregisterd CMM signature.\r\n", Info.GetCmmSigName((icCmmSignature)m_Header.cmmId));
1586      sReport += buf;
1587      rv = icMaxStatus(rv, icValidateWarning);
1588    }
1589--- 1095,1101 ----
1590
1591    default:
1592      sReport += icValidateWarningMsg;
1593!     sprintf(buf, " - %s: Unregisterd CMM signature.\n", Info.GetCmmSigName((icCmmSignature)m_Header.cmmId));
1594      sReport += buf;
1595      rv = icMaxStatus(rv, icValidateWarning);
1596    }
1597***************
1598*** 1109,1115 ****
1599
1600    default:
1601      sReport += icValidateCriticalErrorMsg;
1602!     sprintf(buf, " - %s: Unknown rendering intent!\r\n", Info.GetRenderingIntentName((icRenderingIntent)m_Header.renderingIntent));
1603      sReport += buf;
1604      rv = icMaxStatus(rv, icValidateCriticalError);
1605    }
1606--- 1109,1115 ----
1607
1608    default:
1609      sReport += icValidateCriticalErrorMsg;
1610!     sprintf(buf, " - %s: Unknown rendering intent!\n", Info.GetRenderingIntentName((icRenderingIntent)m_Header.renderingIntent));
1611      sReport += buf;
1612      rv = icMaxStatus(rv, icValidateCriticalError);
1613    }
1614***************
1615*** 1120,1126 ****
1616    icFloatNumber Z = icFtoD(m_Header.illuminant.Z);
1617    if (X<0.9640 || X>0.9644 || Y!=1.0 || Z<0.8247 || Z>0.8251) {
1618      sReport += icValidateNonCompliantMsg;
1619!     sReport += " - Non D50 Illuminant XYZ values.\r\n";
1620      rv = icMaxStatus(rv, icValidateNonCompliant);
1621    }
1622
1623--- 1120,1126 ----
1624    icFloatNumber Z = icFtoD(m_Header.illuminant.Z);
1625    if (X<0.9640 || X>0.9644 || Y!=1.0 || Z<0.8247 || Z>0.8251) {
1626      sReport += icValidateNonCompliantMsg;
1627!     sReport += " - Non D50 Illuminant XYZ values.\n";
1628      rv = icMaxStatus(rv, icValidateNonCompliant);
1629    }
1630
1631***************
1632*** 1130,1136 ****
1633    }
1634    if (sum) {
1635      sReport += icValidateNonCompliantMsg;
1636!     sReport += " - Reserved value must be zero.\r\n";
1637      rv = icMaxStatus(rv, icValidateNonCompliant);
1638    }
1639
1640--- 1130,1136 ----
1641    }
1642    if (sum) {
1643      sReport += icValidateNonCompliantMsg;
1644!     sReport += " - Reserved value must be zero.\n";
1645      rv = icMaxStatus(rv, icValidateNonCompliant);
1646    }
1647
1648***************
1649*** 1163,1169 ****
1650      {
1651        sReport += icValidateWarningMsg;
1652        sReport += buf;
1653!       sReport += " - Tag exclusion test failed.\r\n";
1654        rv = false;
1655      }
1656    }
1657--- 1163,1169 ----
1658      {
1659        sReport += icValidateWarningMsg;
1660        sReport += buf;
1661!       sReport += " - Tag exclusion test failed.\n";
1662        rv = false;
1663      }
1664    }
1665***************
1666*** 1177,1183 ****
1667        {
1668          sReport += icValidateWarningMsg;
1669          sReport += buf;
1670!         sReport += " - Tag exclusion test failed.\r\n";
1671          rv = false;
1672        }
1673        break;
1674--- 1177,1183 ----
1675        {
1676          sReport += icValidateWarningMsg;
1677          sReport += buf;
1678!         sReport += " - Tag exclusion test failed.\n";
1679          rv = false;
1680        }
1681        break;
1682***************
1683*** 1192,1198 ****
1684        {
1685          sReport += icValidateWarningMsg;
1686          sReport += buf;
1687!         sReport += " - Tag exclusion test failed.\r\n";
1688          rv = false;
1689        }
1690        break;
1691--- 1192,1198 ----
1692        {
1693          sReport += icValidateWarningMsg;
1694          sReport += buf;
1695!         sReport += " - Tag exclusion test failed.\n";
1696          rv = false;
1697        }
1698        break;
1699***************
1700*** 1234,1240 ****
1701      if (!IsTypeValid(tagsig, typesig)) {
1702        sReport += icValidateNonCompliantMsg;
1703        sReport += buf;
1704!       sprintf(buf," - %s: Invalid tag type (Might be critical!).\r\n", Info.GetTagTypeSigName(typesig));
1705        sReport += buf;
1706        rv = icMaxStatus(rv, icValidateNonCompliant);
1707      }
1708--- 1234,1240 ----
1709      if (!IsTypeValid(tagsig, typesig)) {
1710        sReport += icValidateNonCompliantMsg;
1711        sReport += buf;
1712!       sprintf(buf," - %s: Invalid tag type (Might be critical!).\n", Info.GetTagTypeSigName(typesig));
1713        sReport += buf;
1714        rv = icMaxStatus(rv, icValidateNonCompliant);
1715      }
1716***************
1717*** 1477,1483 ****
1718  {
1719    if (m_Tags->size() <= 0) {
1720      sReport += icValidateCriticalErrorMsg;
1721!     sReport += "No tags present.\r\n";
1722      return icValidateCriticalError;
1723    }
1724
1725--- 1477,1483 ----
1726  {
1727    if (m_Tags->size() <= 0) {
1728      sReport += icValidateCriticalErrorMsg;
1729!     sReport += "No tags present.\n";
1730      return icValidateCriticalError;
1731    }
1732
1733***************
1734*** 1486,1492 ****
1735    if (!GetTag(icSigProfileDescriptionTag) ||
1736       !GetTag(icSigCopyrightTag)) {
1737         sReport += icValidateNonCompliantMsg;
1738!        sReport += "Required tags missing.\r\n";
1739         rv = icMaxStatus(rv, icValidateNonCompliant);
1740    }
1741
1742--- 1486,1492 ----
1743    if (!GetTag(icSigProfileDescriptionTag) ||
1744       !GetTag(icSigCopyrightTag)) {
1745         sReport += icValidateNonCompliantMsg;
1746!        sReport += "Required tags missing.\n";
1747         rv = icMaxStatus(rv, icValidateNonCompliant);
1748    }
1749
1750***************
1751*** 1495,1501 ****
1752    if (sig != icSigLinkClass) {
1753      if (!GetTag(icSigMediaWhitePointTag)) {
1754        sReport += icValidateCriticalErrorMsg;
1755!       sReport += "Media white point tag missing.\r\n";
1756        rv = icMaxStatus(rv, icValidateCriticalError);
1757      }
1758    }
1759--- 1495,1501 ----
1760    if (sig != icSigLinkClass) {
1761      if (!GetTag(icSigMediaWhitePointTag)) {
1762        sReport += icValidateCriticalErrorMsg;
1763!       sReport += "Media white point tag missing.\n";
1764        rv = icMaxStatus(rv, icValidateCriticalError);
1765      }
1766    }
1767***************
1768*** 1505,1511 ****
1769        if (m_Header.colorSpace == icSigGrayData) {
1770          if (!GetTag(icSigGrayTRCTag)) {
1771            sReport += icValidateCriticalErrorMsg;
1772!           sReport += "Gray TRC tag missing.\r\n";
1773            rv = icMaxStatus(rv, icValidateCriticalError);
1774          }
1775        }
1776--- 1505,1511 ----
1777        if (m_Header.colorSpace == icSigGrayData) {
1778          if (!GetTag(icSigGrayTRCTag)) {
1779            sReport += icValidateCriticalErrorMsg;
1780!           sReport += "Gray TRC tag missing.\n";
1781            rv = icMaxStatus(rv, icValidateCriticalError);
1782          }
1783        }
1784***************
1785*** 1515,1521 ****
1786               !GetTag(icSigBlueMatrixColumnTag) || !GetTag(icSigRedTRCTag) ||
1787               !GetTag(icSigGreenTRCTag) || !GetTag(icSigBlueTRCTag)) {
1788                 sReport += icValidateCriticalErrorMsg;
1789!                sReport += "Critical tag(s) missing.\r\n";
1790                 rv = icMaxStatus(rv, icValidateCriticalError);
1791               }
1792          }
1793--- 1515,1521 ----
1794               !GetTag(icSigBlueMatrixColumnTag) || !GetTag(icSigRedTRCTag) ||
1795               !GetTag(icSigGreenTRCTag) || !GetTag(icSigBlueTRCTag)) {
1796                 sReport += icValidateCriticalErrorMsg;
1797!                sReport += "Critical tag(s) missing.\n";
1798                 rv = icMaxStatus(rv, icValidateCriticalError);
1799               }
1800          }
1801***************
1802*** 1526,1532 ****
1803        if (m_Header.colorSpace == icSigGrayData) {
1804          if (!GetTag(icSigGrayTRCTag)) {
1805            sReport += icValidateCriticalErrorMsg;
1806!           sReport += "Gray TRC tag missing.\r\n";
1807            rv = icMaxStatus(rv, icValidateCriticalError);
1808          }
1809        }
1810--- 1526,1532 ----
1811        if (m_Header.colorSpace == icSigGrayData) {
1812          if (!GetTag(icSigGrayTRCTag)) {
1813            sReport += icValidateCriticalErrorMsg;
1814!           sReport += "Gray TRC tag missing.\n";
1815            rv = icMaxStatus(rv, icValidateCriticalError);
1816          }
1817        }
1818***************
1819*** 1536,1542 ****
1820               !GetTag(icSigBlueMatrixColumnTag) || !GetTag(icSigRedTRCTag) ||
1821               !GetTag(icSigGreenTRCTag) || !GetTag(icSigBlueTRCTag)) {
1822                 sReport += icValidateCriticalErrorMsg;
1823!                sReport += "Critical tag(s) missing.\r\n";
1824                 rv = icMaxStatus(rv, icValidateCriticalError);
1825               }
1826          }
1827--- 1536,1542 ----
1828               !GetTag(icSigBlueMatrixColumnTag) || !GetTag(icSigRedTRCTag) ||
1829               !GetTag(icSigGreenTRCTag) || !GetTag(icSigBlueTRCTag)) {
1830                 sReport += icValidateCriticalErrorMsg;
1831!                sReport += "Critical tag(s) missing.\n";
1832                 rv = icMaxStatus(rv, icValidateCriticalError);
1833               }
1834          }
1835***************
1836*** 1547,1553 ****
1837        if (m_Header.colorSpace == icSigGrayData) {
1838          if (!GetTag(icSigGrayTRCTag)) {
1839            sReport += icValidateCriticalErrorMsg;
1840!           sReport += "Gray TRC tag missing.\r\n";
1841            rv = icMaxStatus(rv, icValidateCriticalError);
1842          }
1843        }
1844--- 1547,1553 ----
1845        if (m_Header.colorSpace == icSigGrayData) {
1846          if (!GetTag(icSigGrayTRCTag)) {
1847            sReport += icValidateCriticalErrorMsg;
1848!           sReport += "Gray TRC tag missing.\n";
1849            rv = icMaxStatus(rv, icValidateCriticalError);
1850          }
1851        }
1852***************
1853*** 1556,1568 ****
1854             !GetTag(icSigAToB1Tag) || !GetTag(icSigBToA1Tag) ||
1855             !GetTag(icSigAToB2Tag) || !GetTag(icSigBToA2Tag)) {
1856               sReport += icValidateCriticalErrorMsg;
1857!              sReport += "Critical tag(s) missing.\r\n";
1858               rv = icMaxStatus(rv, icValidateCriticalError);
1859             }
1860
1861          if (!GetTag(icSigGamutTag)) {
1862            sReport += icValidateNonCompliantMsg;
1863!           sReport += "Gamut tag missing.\r\n";
1864            rv = icMaxStatus(rv, icValidateNonCompliant);
1865          }
1866
1867--- 1556,1568 ----
1868             !GetTag(icSigAToB1Tag) || !GetTag(icSigBToA1Tag) ||
1869             !GetTag(icSigAToB2Tag) || !GetTag(icSigBToA2Tag)) {
1870               sReport += icValidateCriticalErrorMsg;
1871!              sReport += "Critical tag(s) missing.\n";
1872               rv = icMaxStatus(rv, icValidateCriticalError);
1873             }
1874
1875          if (!GetTag(icSigGamutTag)) {
1876            sReport += icValidateNonCompliantMsg;
1877!           sReport += "Gamut tag missing.\n";
1878            rv = icMaxStatus(rv, icValidateNonCompliant);
1879          }
1880
1881***************
1882*** 1585,1591 ****
1883              case icSig16colorData:
1884                if (!GetTag(icSigColorantTableTag)) {
1885                  sReport += icValidateNonCompliantMsg;
1886!                 sReport += "xCLR output profile is missing colorantTableTag\r\n";
1887                  rv = icMaxStatus(rv, icValidateNonCompliant);
1888                }
1889
1890--- 1585,1591 ----
1891              case icSig16colorData:
1892                if (!GetTag(icSigColorantTableTag)) {
1893                  sReport += icValidateNonCompliantMsg;
1894!                 sReport += "xCLR output profile is missing colorantTableTag\n";
1895                  rv = icMaxStatus(rv, icValidateNonCompliant);
1896                }
1897
1898***************
1899*** 1599,1605 ****
1900      case icSigLinkClass:
1901        if (!GetTag(icSigAToB0Tag) || !GetTag(icSigProfileSequenceDescTag)) {
1902          sReport += icValidateCriticalErrorMsg;
1903!         sReport += "Critical tag(s) missing.\r\n";
1904          rv = icMaxStatus(rv, icValidateCriticalError);
1905        }
1906
1907--- 1599,1605 ----
1908      case icSigLinkClass:
1909        if (!GetTag(icSigAToB0Tag) || !GetTag(icSigProfileSequenceDescTag)) {
1910          sReport += icValidateCriticalErrorMsg;
1911!         sReport += "Critical tag(s) missing.\n";
1912          rv = icMaxStatus(rv, icValidateCriticalError);
1913        }
1914
1915***************
1916*** 1606,1612 ****
1917        if (icIsSpaceCLR(m_Header.colorSpace)) {
1918          if (!GetTag(icSigColorantTableTag)) {
1919            sReport += icValidateNonCompliantMsg;
1920!           sReport += "Required tag(s) missing.\r\n";
1921            rv = icMaxStatus(rv, icValidateNonCompliant);
1922          }
1923        }
1924--- 1606,1612 ----
1925        if (icIsSpaceCLR(m_Header.colorSpace)) {
1926          if (!GetTag(icSigColorantTableTag)) {
1927            sReport += icValidateNonCompliantMsg;
1928!           sReport += "Required tag(s) missing.\n";
1929            rv = icMaxStatus(rv, icValidateNonCompliant);
1930          }
1931        }
1932***************
1933*** 1614,1620 ****
1934        if (icIsSpaceCLR(m_Header.pcs)) {
1935          if (!GetTag(icSigColorantTableOutTag)) {
1936            sReport += icValidateNonCompliantMsg;
1937!           sReport += "Required tag(s) missing.\r\n";
1938            rv = icMaxStatus(rv, icValidateNonCompliant);
1939          }
1940        }
1941--- 1614,1620 ----
1942        if (icIsSpaceCLR(m_Header.pcs)) {
1943          if (!GetTag(icSigColorantTableOutTag)) {
1944            sReport += icValidateNonCompliantMsg;
1945!           sReport += "Required tag(s) missing.\n";
1946            rv = icMaxStatus(rv, icValidateNonCompliant);
1947          }
1948        }
1949***************
1950*** 1623,1629 ****
1951      case icSigColorSpaceClass:
1952        if (!GetTag(icSigAToB0Tag) || !GetTag(icSigBToA0Tag)) {
1953          sReport += icValidateCriticalErrorMsg;
1954!         sReport += "Critical tag(s) missing.\r\n";
1955          rv = icMaxStatus(rv, icValidateCriticalError);
1956        }
1957        break;
1958--- 1623,1629 ----
1959      case icSigColorSpaceClass:
1960        if (!GetTag(icSigAToB0Tag) || !GetTag(icSigBToA0Tag)) {
1961          sReport += icValidateCriticalErrorMsg;
1962!         sReport += "Critical tag(s) missing.\n";
1963          rv = icMaxStatus(rv, icValidateCriticalError);
1964        }
1965        break;
1966***************
1967*** 1631,1637 ****
1968      case icSigAbstractClass:
1969        if (!GetTag(icSigAToB0Tag)) {
1970          sReport += icValidateCriticalErrorMsg;
1971!         sReport += "Critical tag(s) missing.\r\n";
1972          rv = icMaxStatus(rv, icValidateCriticalError);
1973        }
1974        break;
1975--- 1631,1637 ----
1976      case icSigAbstractClass:
1977        if (!GetTag(icSigAToB0Tag)) {
1978          sReport += icValidateCriticalErrorMsg;
1979!         sReport += "Critical tag(s) missing.\n";
1980          rv = icMaxStatus(rv, icValidateCriticalError);
1981        }
1982        break;
1983***************
1984*** 1639,1645 ****
1985      case icSigNamedColorClass:
1986        if (!GetTag(icSigNamedColor2Tag)) {
1987          sReport += icValidateCriticalErrorMsg;
1988!         sReport += "Critical tag(s) missing.\r\n";
1989          rv = icMaxStatus(rv, icValidateCriticalError);
1990        }
1991
1992--- 1639,1645 ----
1993      case icSigNamedColorClass:
1994        if (!GetTag(icSigNamedColor2Tag)) {
1995          sReport += icValidateCriticalErrorMsg;
1996!         sReport += "Critical tag(s) missing.\n";
1997          rv = icMaxStatus(rv, icValidateCriticalError);
1998        }
1999
2000***************
2001*** 1647,1653 ****
2002
2003      default:
2004        sReport += icValidateCriticalErrorMsg;
2005!       sReport += "Unknown Profile Class.\r\n";
2006        rv = icMaxStatus(rv, icValidateCriticalError);
2007        break;
2008    }
2009--- 1647,1653 ----
2010
2011      default:
2012        sReport += icValidateCriticalErrorMsg;
2013!       sReport += "Unknown Profile Class.\n";
2014        rv = icMaxStatus(rv, icValidateCriticalError);
2015        break;
2016    }
2017***************
2018*** 1724,1730 ****
2019    // Check for duplicate tags
2020    if (!AreTagsUnique()) {
2021      sReport += icValidateWarning;
2022!     sReport += " - There are duplicate tags.\r\n";
2023      rv =icMaxStatus(rv, icValidateWarning);
2024    }
2025
2026--- 1724,1730 ----
2027    // Check for duplicate tags
2028    if (!AreTagsUnique()) {
2029      sReport += icValidateWarning;
2030!     sReport += " - There are duplicate tags.\n";
2031      rv =icMaxStatus(rv, icValidateWarning);
2032    }
2033
2034***************
2035*** 1979,1985 ****
2036      sReport = icValidateCriticalErrorMsg;
2037      sReport += " - ";
2038      sReport += szFilename;
2039!     sReport += "- Invalid Filename\r\n";
2040      delete pFileIO;
2041      return NULL;
2042    }
2043--- 1979,1985 ----
2044      sReport = icValidateCriticalErrorMsg;
2045      sReport += " - ";
2046      sReport += szFilename;
2047!     sReport += "- Invalid Filename\n";
2048      delete pFileIO;
2049      return NULL;
2050    }
2051*** misc/SampleICC-1.3.2/IccProfLib/IccTagBasic.cpp	Mon Aug 20 22:05:00 2007
2052--- misc/build/SampleICC-1.3.2/IccProfLib/IccTagBasic.cpp	Fri Jan 25 14:23:09 2008
2053***************
2054*** 166,172 ****
2055      CIccInfo Info;
2056      sReport += icValidateNonCompliantMsg;
2057      sReport += Info.GetSigName(sig);
2058!     sReport += " - Reserved Value must be zero.\r\n";
2059
2060      rv = icValidateNonCompliant;
2061    }
2062--- 166,172 ----
2063      CIccInfo Info;
2064      sReport += icValidateNonCompliantMsg;
2065      sReport += Info.GetSigName(sig);
2066!     sReport += " - Reserved Value must be zero.\n";
2067
2068      rv = icValidateNonCompliant;
2069    }
2070***************
2071*** 340,346 ****
2072    sprintf(buf, "%u Bytes.", m_nSize-4);
2073    sDescription += buf;
2074
2075!   sDescription += "\r\n\r\nData Follows:\r\n";
2076
2077    icMemDump(sDescription, m_pData+4, m_nSize-4);
2078  }
2079--- 340,346 ----
2080    sprintf(buf, "%u Bytes.", m_nSize-4);
2081    sDescription += buf;
2082
2083!   sDescription += "\n\nData Follows:\n";
2084
2085    icMemDump(sDescription, m_pData+4, m_nSize-4);
2086  }
2087***************
2088*** 511,517 ****
2089    if (m_szText && *m_szText)
2090      sDescription += m_szText;
2091
2092!   sDescription += "\"\r\n";
2093  }
2094
2095
2096--- 511,517 ----
2097    if (m_szText && *m_szText)
2098      sDescription += m_szText;
2099
2100!   sDescription += "\"\n";
2101  }
2102
2103
2104***************
2105*** 629,635 ****
2106        if (m_nBufSize<7) {
2107          sReport += icValidateNonCompliantMsg;
2108          sReport += sSigName;
2109!         sReport += " - Tag must have at least seven text characters.\r\n";
2110          rv = icMaxStatus(rv, icValidateNonCompliant);
2111        }
2112        break;
2113--- 629,635 ----
2114        if (m_nBufSize<7) {
2115          sReport += icValidateNonCompliantMsg;
2116          sReport += sSigName;
2117!         sReport += " - Tag must have at least seven text characters.\n";
2118          rv = icMaxStatus(rv, icValidateNonCompliant);
2119        }
2120        break;
2121***************
2122*** 636,642 ****
2123      default:
2124        sReport += icValidateWarningMsg;
2125        sReport += sSigName;
2126!       sReport += " - Unknown Tag.\r\n";
2127        rv = icMaxStatus(rv, icValidateWarning);
2128      }
2129      int i;
2130--- 636,642 ----
2131      default:
2132        sReport += icValidateWarningMsg;
2133        sReport += sSigName;
2134!       sReport += " - Unknown Tag.\n";
2135        rv = icMaxStatus(rv, icValidateWarning);
2136      }
2137      int i;
2138***************
2139*** 644,650 ****
2140        if (m_szText[i]&0x80) {
2141          sReport += icValidateWarning;
2142          sReport += sSigName;
2143!         sReport += " - Text do not contain 7bit data.\r\n";
2144        }
2145      }
2146    }
2147--- 644,650 ----
2148        if (m_szText[i]&0x80) {
2149          sReport += icValidateWarning;
2150          sReport += sSigName;
2151!         sReport += " - Text do not contain 7bit data.\n";
2152        }
2153      }
2154    }
2155***************
2156*** 651,657 ****
2157    else {
2158      sReport += icValidateWarningMsg;
2159      sReport += sSigName;
2160!     sReport += " - Empty Tag.\r\n";
2161      rv = icMaxStatus(rv, icValidateWarning);
2162    }
2163
2164--- 651,657 ----
2165    else {
2166      sReport += icValidateWarningMsg;
2167      sReport += sSigName;
2168!     sReport += " - Empty Tag.\n";
2169      rv = icMaxStatus(rv, icValidateWarning);
2170    }
2171
2172***************
2173*** 941,947 ****
2174    if (m_szText && *m_szText)
2175      sDescription += m_szText;
2176
2177!   sDescription += "\"\r\n";
2178  }
2179
2180
2181--- 941,947 ----
2182    if (m_szText && *m_szText)
2183      sDescription += m_szText;
2184
2185!   sDescription += "\"\n";
2186  }
2187
2188
2189***************
2190*** 1101,1107 ****
2191    if (m_nScriptSize>67) {
2192      sReport += icValidateNonCompliantMsg;
2193      sReport += sSigName;
2194!     sReport += " - ScriptCode count must not be greater than 67.\r\n";
2195
2196      rv =icMaxStatus(rv, icValidateNonCompliant);
2197    }
2198--- 1101,1107 ----
2199    if (m_nScriptSize>67) {
2200      sReport += icValidateNonCompliantMsg;
2201      sReport += sSigName;
2202!     sReport += " - ScriptCode count must not be greater than 67.\n";
2203
2204      rv =icMaxStatus(rv, icValidateNonCompliant);
2205    }
2206***************
2207*** 1260,1266 ****
2208    CIccInfo Fmt;
2209
2210    sDescription += Fmt.GetSigName(m_nSig);
2211!   sDescription += "\r\n";
2212  }
2213
2214
2215--- 1260,1266 ----
2216    CIccInfo Fmt;
2217
2218    sDescription += Fmt.GetSigName(m_nSig);
2219!   sDescription += "\n";
2220  }
2221
2222
2223***************
2224*** 1320,1326 ****
2225        {
2226          sReport += icValidateNonCompliantMsg;
2227          sReport += sSigName;
2228!         sprintf(buf, " - %s: Unknown Technology.\r\n", Info.GetSigName(m_nSig));
2229          sReport += buf;
2230          rv = icMaxStatus(rv, icValidateNonCompliant);
2231        }
2232--- 1320,1326 ----
2233        {
2234          sReport += icValidateNonCompliantMsg;
2235          sReport += sSigName;
2236!         sprintf(buf, " - %s: Unknown Technology.\n", Info.GetSigName(m_nSig));
2237          sReport += buf;
2238          rv = icMaxStatus(rv, icValidateNonCompliant);
2239        }
2240***************
2241*** 1336,1342 ****
2242        {
2243          sReport += icValidateNonCompliantMsg;
2244          sReport += sSigName;
2245!         sprintf(buf, " - %s: Unknown Reference Medium Gamut.\r\n", Info.GetSigName(m_nSig));
2246          sReport += buf;
2247          rv = icMaxStatus(rv, icValidateNonCompliant);
2248        }
2249--- 1336,1342 ----
2250        {
2251          sReport += icValidateNonCompliantMsg;
2252          sReport += sSigName;
2253!         sprintf(buf, " - %s: Unknown Reference Medium Gamut.\n", Info.GetSigName(m_nSig));
2254          sReport += buf;
2255          rv = icMaxStatus(rv, icValidateNonCompliant);
2256        }
2257***************
2258*** 1355,1361 ****
2259        {
2260          sReport += icValidateNonCompliantMsg;
2261          sReport += sSigName;
2262!         sprintf(buf, " - %s: Unknown Colorimetric Intent Image State.\r\n", Info.GetSigName(m_nSig));
2263          sReport += buf;
2264          rv = icMaxStatus(rv, icValidateNonCompliant);
2265        }
2266--- 1355,1361 ----
2267        {
2268          sReport += icValidateNonCompliantMsg;
2269          sReport += sSigName;
2270!         sprintf(buf, " - %s: Unknown Colorimetric Intent Image State.\n", Info.GetSigName(m_nSig));
2271          sReport += buf;
2272          rv = icMaxStatus(rv, icValidateNonCompliant);
2273        }
2274***************
2275*** 1686,1692 ****
2276
2277    sDescription.reserve(sDescription.size() + m_nSize*79);
2278
2279!   sprintf(buf, "BEGIN_NAMED_COLORS flags=%08x %u %u\r\n", m_nVendorFlags, m_nSize, m_nDeviceCoords);
2280    sDescription += buf;
2281
2282    for (i=0; i<m_nSize; i++) {
2283--- 1686,1692 ----
2284
2285    sDescription.reserve(sDescription.size() + m_nSize*79);
2286
2287!   sprintf(buf, "BEGIN_NAMED_COLORS flags=%08x %u %u\n", m_nVendorFlags, m_nSize, m_nDeviceCoords);
2288    sDescription += buf;
2289
2290    for (i=0; i<m_nSize; i++) {
2291***************
2292*** 1717,1723 ****
2293          sDescription += buf;
2294        }
2295      }
2296!     sDescription += "\r\n";
2297
2298      pNamedColor = (SIccNamedColorEntry*)((icChar*)pNamedColor + m_nColorEntrySize);
2299    }
2300--- 1717,1723 ----
2301          sDescription += buf;
2302        }
2303      }
2304!     sDescription += "\n";
2305
2306      pNamedColor = (SIccNamedColorEntry*)((icChar*)pNamedColor + m_nColorEntrySize);
2307    }
2308***************
2309*** 2082,2088 ****
2310    if (!m_nSize) {
2311      sReport += icValidateWarningMsg;
2312      sReport += sSigName;
2313!     sReport += " - Empty tag!\r\n";
2314      rv = icMaxStatus(rv, icValidateWarning);
2315    }
2316
2317--- 2082,2088 ----
2318    if (!m_nSize) {
2319      sReport += icValidateWarningMsg;
2320      sReport += sSigName;
2321!     sReport += " - Empty tag!\n";
2322      rv = icMaxStatus(rv, icValidateWarning);
2323    }
2324
2325***************
2326*** 2092,2098 ****
2327        if (m_nDeviceCoords != nCoords) {
2328          sReport += icValidateNonCompliantMsg;
2329          sReport += sSigName;
2330!         sReport += " - Incorrect number of device co-ordinates.\r\n";
2331          rv = icMaxStatus(rv, icValidateNonCompliant);
2332        }
2333      }
2334--- 2092,2098 ----
2335        if (m_nDeviceCoords != nCoords) {
2336          sReport += icValidateNonCompliantMsg;
2337          sReport += sSigName;
2338!         sReport += " - Incorrect number of device co-ordinates.\n";
2339          rv = icMaxStatus(rv, icValidateNonCompliant);
2340        }
2341      }
2342***************
2343*** 2099,2105 ****
2344      else {
2345        sReport += icValidateWarningMsg;
2346        sReport += sSigName;
2347!       sReport += " - Tag validation incomplete: Pointer to profile unavailable.\r\n";
2348        rv = icMaxStatus(rv, icValidateWarning);
2349      }
2350    }
2351--- 2099,2105 ----
2352      else {
2353        sReport += icValidateWarningMsg;
2354        sReport += sSigName;
2355!       sReport += " - Tag validation incomplete: Pointer to profile unavailable.\n";
2356        rv = icMaxStatus(rv, icValidateWarning);
2357      }
2358    }
2359***************
2360*** 2285,2291 ****
2361    icChar buf[128];
2362
2363    if (m_nSize == 1 ) {
2364!     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));
2365      sDescription += buf;
2366    }
2367    else {
2368--- 2285,2291 ----
2369    icChar buf[128];
2370
2371    if (m_nSize == 1 ) {
2372!     sprintf(buf, "X=%.4lf, Y=%.4lf, Z=%.4lf\n", icFtoD(m_XYZ[0].X), icFtoD(m_XYZ[0].Y), icFtoD(m_XYZ[0].Z));
2373      sDescription += buf;
2374    }
2375    else {
2376***************
2377*** 2293,2299 ****
2378      sDescription.reserve(sDescription.size() + m_nSize*79);
2379
2380      for (i=0; i<m_nSize; i++) {
2381!       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));
2382        sDescription += buf;
2383      }
2384    }
2385--- 2293,2299 ----
2386      sDescription.reserve(sDescription.size() + m_nSize*79);
2387
2388      for (i=0; i<m_nSize; i++) {
2389!       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));
2390        sDescription += buf;
2391      }
2392    }
2393***************
2394*** 2347,2353 ****
2395    if (!m_nSize) {
2396      sReport += icValidateWarningMsg;
2397      sReport += sSigName;
2398!     sReport += " - Empty tag.\r\n";
2399
2400      rv = icMaxStatus(rv, icValidateWarning);
2401      return rv;
2402--- 2347,2353 ----
2403    if (!m_nSize) {
2404      sReport += icValidateWarningMsg;
2405      sReport += sSigName;
2406!     sReport += " - Empty tag.\n";
2407
2408      rv = icMaxStatus(rv, icValidateWarning);
2409      return rv;
2410***************
2411*** 2553,2566 ****
2412
2413    icUInt32Number i;
2414    //sDescription.reserve(sDescription.size() + m_nChannels*79);
2415!   sprintf(buf, "Number of Channels : %u\r\n", m_nChannels);
2416    sDescription += buf;
2417
2418!   sprintf(buf, "Colorant Encoding : %s\r\n", Fmt.GetColorantEncoding((icColorantEncoding)m_nColorantType));
2419    sDescription += buf;
2420
2421    for (i=0; i<m_nChannels; i++) {
2422!     sprintf(buf, "value[%u]: x=%.3lf, y=%.3lf\r\n", i, icUFtoD(m_xy[i].x), icUFtoD(m_xy[i].y));
2423      sDescription += buf;
2424    }
2425
2426--- 2553,2566 ----
2427
2428    icUInt32Number i;
2429    //sDescription.reserve(sDescription.size() + m_nChannels*79);
2430!   sprintf(buf, "Number of Channels : %u\n", m_nChannels);
2431    sDescription += buf;
2432
2433!   sprintf(buf, "Colorant Encoding : %s\n", Fmt.GetColorantEncoding((icColorantEncoding)m_nColorantType));
2434    sDescription += buf;
2435
2436    for (i=0; i<m_nChannels; i++) {
2437!     sprintf(buf, "value[%u]: x=%.3lf, y=%.3lf\n", i, icUFtoD(m_xy[i].x), icUFtoD(m_xy[i].y));
2438      sDescription += buf;
2439    }
2440
2441***************
2442*** 2617,2623 ****
2443      if (m_nChannels!=3) {
2444        sReport += icValidateCriticalErrorMsg;
2445        sReport += sSigName;
2446!       sReport += " - Number of device channels must be three.\r\n";
2447        rv = icMaxStatus(rv, icValidateCriticalError);
2448      }
2449
2450--- 2617,2623 ----
2451      if (m_nChannels!=3) {
2452        sReport += icValidateCriticalErrorMsg;
2453        sReport += sSigName;
2454!       sReport += " - Number of device channels must be three.\n";
2455        rv = icMaxStatus(rv, icValidateCriticalError);
2456      }
2457
2458***************
2459*** 2629,2635 ****
2460                 (m_xy[2].x != icDtoUF((icFloatNumber)0.150)) || (m_xy[2].y != icDtoUF((icFloatNumber)0.060)) ) {
2461                  sReport += icValidateNonCompliantMsg;
2462                  sReport += sSigName;
2463!                 sReport += " - Chromaticity data does not match specification.\r\n";
2464                  rv = icMaxStatus(rv, icValidateNonCompliant);
2465                }
2466            break;
2467--- 2629,2635 ----
2468                 (m_xy[2].x != icDtoUF((icFloatNumber)0.150)) || (m_xy[2].y != icDtoUF((icFloatNumber)0.060)) ) {
2469                  sReport += icValidateNonCompliantMsg;
2470                  sReport += sSigName;
2471!                 sReport += " - Chromaticity data does not match specification.\n";
2472                  rv = icMaxStatus(rv, icValidateNonCompliant);
2473                }
2474            break;
2475***************
2476*** 2642,2648 ****
2477                 (m_xy[2].x != icDtoUF((icFloatNumber)0.155)) || (m_xy[2].y != icDtoUF((icFloatNumber)0.070)) ) {
2478                sReport += icValidateNonCompliantMsg;
2479                sReport += sSigName;
2480!               sReport += " - Chromaticity data does not match specification.\r\n";
2481                rv = icMaxStatus(rv, icValidateNonCompliant);
2482              }
2483              break;
2484--- 2642,2648 ----
2485                 (m_xy[2].x != icDtoUF((icFloatNumber)0.155)) || (m_xy[2].y != icDtoUF((icFloatNumber)0.070)) ) {
2486                sReport += icValidateNonCompliantMsg;
2487                sReport += sSigName;
2488!               sReport += " - Chromaticity data does not match specification.\n";
2489                rv = icMaxStatus(rv, icValidateNonCompliant);
2490              }
2491              break;
2492***************
2493*** 2655,2661 ****
2494                 (m_xy[2].x != icDtoUF((icFloatNumber)0.15)) || (m_xy[2].y != icDtoUF((icFloatNumber)0.06)) ) {
2495                sReport += icValidateNonCompliantMsg;
2496                sReport += sSigName;
2497!               sReport += " - Chromaticity data does not match specification.\r\n";
2498                rv = icMaxStatus(rv, icValidateNonCompliant);
2499              }
2500              break;
2501--- 2655,2661 ----
2502                 (m_xy[2].x != icDtoUF((icFloatNumber)0.15)) || (m_xy[2].y != icDtoUF((icFloatNumber)0.06)) ) {
2503                sReport += icValidateNonCompliantMsg;
2504                sReport += sSigName;
2505!               sReport += " - Chromaticity data does not match specification.\n";
2506                rv = icMaxStatus(rv, icValidateNonCompliant);
2507              }
2508              break;
2509***************
2510*** 2668,2674 ****
2511                 (m_xy[2].x != icDtoUF((icFloatNumber)0.155)) || (m_xy[2].y != icDtoUF((icFloatNumber)0.070)) ) {
2512                sReport += icValidateNonCompliantMsg;
2513                sReport += sSigName;
2514!               sReport += " - Chromaticity data does not match specification.\r\n";
2515                rv = icMaxStatus(rv, icValidateNonCompliant);
2516              }
2517              break;
2518--- 2668,2674 ----
2519                 (m_xy[2].x != icDtoUF((icFloatNumber)0.155)) || (m_xy[2].y != icDtoUF((icFloatNumber)0.070)) ) {
2520                sReport += icValidateNonCompliantMsg;
2521                sReport += sSigName;
2522!               sReport += " - Chromaticity data does not match specification.\n";
2523                rv = icMaxStatus(rv, icValidateNonCompliant);
2524              }
2525              break;
2526***************
2527*** 2678,2684 ****
2528          {
2529            sReport += icValidateNonCompliantMsg;
2530            sReport += sSigName;
2531!           sReport += " - Invalid colorant type encoding.\r\n";
2532            rv = icMaxStatus(rv, icValidateNonCompliant);
2533          }
2534      }
2535--- 2678,2684 ----
2536          {
2537            sReport += icValidateNonCompliantMsg;
2538            sReport += sSigName;
2539!           sReport += " - Invalid colorant type encoding.\n";
2540            rv = icMaxStatus(rv, icValidateNonCompliant);
2541          }
2542      }
2543***************
2544*** 2884,2892 ****
2545
2546    if (m_nSize == 1 ) {
2547      if (Tsig==icSigS15Fixed16ArrayType)
2548!       sprintf(buf, "Value = %.4lf\r\n", icFtoD(m_Num[0]));
2549      else
2550!       sprintf(buf, "Value = %.4lf\r\n", icUFtoD(m_Num[0]));
2551      sDescription += buf;
2552    }
2553    else {
2554--- 2884,2892 ----
2555
2556    if (m_nSize == 1 ) {
2557      if (Tsig==icSigS15Fixed16ArrayType)
2558!       sprintf(buf, "Value = %.4lf\n", icFtoD(m_Num[0]));
2559      else
2560!       sprintf(buf, "Value = %.4lf\n", icUFtoD(m_Num[0]));
2561      sDescription += buf;
2562    }
2563    else {
2564***************
2565*** 2893,2910 ****
2566      icUInt32Number i;
2567
2568      if (Tsig==icSigS15Fixed16ArrayType && m_nSize==9) {
2569!       sDescription += "Matrix Form:\r\n";
2570        icMatrixDump(sDescription, (icS15Fixed16Number*)m_Num);
2571
2572!       sDescription += "\r\nArrayForm:\r\n";
2573      }
2574      sDescription.reserve(sDescription.size() + m_nSize*79);
2575
2576      for (i=0; i<m_nSize; i++) {
2577        if (Tsig==icSigS15Fixed16ArrayType)
2578!         sprintf(buf, "Value[%u] = %.4lf\r\n", i, icFtoD(m_Num[i]));
2579        else
2580!         sprintf(buf, "Value[%u] = %.4lf\r\n", i, icUFtoD(m_Num[i]));
2581        sDescription += buf;
2582      }
2583    }
2584--- 2893,2910 ----
2585      icUInt32Number i;
2586
2587      if (Tsig==icSigS15Fixed16ArrayType && m_nSize==9) {
2588!       sDescription += "Matrix Form:\n";
2589        icMatrixDump(sDescription, (icS15Fixed16Number*)m_Num);
2590
2591!       sDescription += "\nArrayForm:\n";
2592      }
2593      sDescription.reserve(sDescription.size() + m_nSize*79);
2594
2595      for (i=0; i<m_nSize; i++) {
2596        if (Tsig==icSigS15Fixed16ArrayType)
2597!         sprintf(buf, "Value[%u] = %.4lf\n", i, icFtoD(m_Num[i]));
2598        else
2599!         sprintf(buf, "Value[%u] = %.4lf\n", i, icUFtoD(m_Num[i]));
2600        sDescription += buf;
2601      }
2602    }
2603***************
2604*** 3172,3178 ****
2605    icChar buf[128];
2606
2607    if (m_nSize == 1 ) {
2608!     sprintf(buf, "Value = %u (0x%x)\r\n", m_Num[0], m_Num[0]);
2609      sDescription += buf;
2610    }
2611    else {
2612--- 3172,3178 ----
2613    icChar buf[128];
2614
2615    if (m_nSize == 1 ) {
2616!     sprintf(buf, "Value = %u (0x%x)\n", m_Num[0], m_Num[0]);
2617      sDescription += buf;
2618    }
2619    else {
2620***************
2621*** 3180,3186 ****
2622      sDescription.reserve(sDescription.size() + m_nSize*79);
2623
2624      for (i=0; i<m_nSize; i++) {
2625!       sprintf(buf, "Value[%u] = %u (0x%x)\r\n", i, m_Num[i], m_Num[i]);
2626        sDescription += buf;
2627      }
2628    }
2629--- 3180,3186 ----
2630      sDescription.reserve(sDescription.size() + m_nSize*79);
2631
2632      for (i=0; i<m_nSize; i++) {
2633!       sprintf(buf, "Value[%u] = %u (0x%x)\n", i, m_Num[i], m_Num[i]);
2634        sDescription += buf;
2635      }
2636    }
2637***************
2638*** 3374,3388 ****
2639    CIccInfo Fmt;
2640    icChar buf[128];
2641
2642!    sDescription += Fmt.GetStandardObserverName(m_Data.stdObserver); sDescription += "\r\n";
2643!    sprintf(buf, "Backing measurement: X=%.4lf, Y=%.4lf, Z=%.4lf\r\n",
2644             icFtoD(m_Data.backing.X),
2645             icFtoD(m_Data.backing.Y),
2646             icFtoD(m_Data.backing.Z));
2647     sDescription += buf;
2648!    sDescription += Fmt.GetMeasurementGeometryName(m_Data.geometry); sDescription += "\r\n";
2649!    sDescription += Fmt.GetMeasurementFlareName(m_Data.flare); sDescription += "\r\n";
2650!    sDescription += Fmt.GetIlluminantName(m_Data.illuminant); sDescription += "\r\n";
2651  }
2652
2653
2654--- 3374,3388 ----
2655    CIccInfo Fmt;
2656    icChar buf[128];
2657
2658!    sDescription += Fmt.GetStandardObserverName(m_Data.stdObserver); sDescription += "\n";
2659!    sprintf(buf, "Backing measurement: X=%.4lf, Y=%.4lf, Z=%.4lf\n",
2660             icFtoD(m_Data.backing.X),
2661             icFtoD(m_Data.backing.Y),
2662             icFtoD(m_Data.backing.Z));
2663     sDescription += buf;
2664!    sDescription += Fmt.GetMeasurementGeometryName(m_Data.geometry); sDescription += "\n";
2665!    sDescription += Fmt.GetMeasurementFlareName(m_Data.flare); sDescription += "\n";
2666!    sDescription += Fmt.GetIlluminantName(m_Data.illuminant); sDescription += "\n";
2667  }
2668
2669
2670***************
2671*** 3416,3422 ****
2672    default:
2673      sReport += icValidateNonCompliantMsg;
2674      sReport += sSigName;
2675!     sReport += " - Invalid standard observer encoding.\r\n";
2676      rv = icMaxStatus(rv, icValidateNonCompliant);
2677    }
2678
2679--- 3416,3422 ----
2680    default:
2681      sReport += icValidateNonCompliantMsg;
2682      sReport += sSigName;
2683!     sReport += " - Invalid standard observer encoding.\n";
2684      rv = icMaxStatus(rv, icValidateNonCompliant);
2685    }
2686
2687***************
2688*** 3429,3435 ****
2689    default:
2690      sReport += icValidateNonCompliantMsg;
2691      sReport += sSigName;
2692!     sReport += " - Invalid measurement geometry encoding.\r\n";
2693      rv = icMaxStatus(rv, icValidateNonCompliant);
2694    }
2695
2696--- 3429,3435 ----
2697    default:
2698      sReport += icValidateNonCompliantMsg;
2699      sReport += sSigName;
2700!     sReport += " - Invalid measurement geometry encoding.\n";
2701      rv = icMaxStatus(rv, icValidateNonCompliant);
2702    }
2703
2704***************
2705*** 3448,3454 ****
2706    default:
2707      sReport += icValidateNonCompliantMsg;
2708      sReport += sSigName;
2709!     sReport += " - Invalid standard illuminant encoding.\r\n";
2710      rv = icMaxStatus(rv, icValidateNonCompliant);
2711    }
2712
2713--- 3448,3454 ----
2714    default:
2715      sReport += icValidateNonCompliantMsg;
2716      sReport += sSigName;
2717!     sReport += " - Invalid standard illuminant encoding.\n";
2718      rv = icMaxStatus(rv, icValidateNonCompliant);
2719    }
2720
2721***************
2722*** 3902,3910 ****
2723
2724    for (i=m_Strings->begin(); i!=m_Strings->end(); i++) {
2725      if (i!=m_Strings->begin())
2726!       sDescription += "\r\n";
2727
2728!     sprintf(szBuf, "Language = '%c%c', Region = '%c%c'\r\n",
2729        i->m_nLanguageCode>>8, i->m_nLanguageCode,
2730        i->m_nCountryCode>>8, i->m_nCountryCode);
2731
2732--- 3902,3910 ----
2733
2734    for (i=m_Strings->begin(); i!=m_Strings->end(); i++) {
2735      if (i!=m_Strings->begin())
2736!       sDescription += "\n";
2737
2738!     sprintf(szBuf, "Language = '%c%c', Region = '%c%c'\n",
2739        i->m_nLanguageCode>>8, i->m_nLanguageCode,
2740        i->m_nCountryCode>>8, i->m_nCountryCode);
2741
2742***************
2743*** 3919,3925 ****
2744      i->GetAnsi(szBuf, nSize);
2745      sDescription += "\"";
2746      sDescription += szBuf;
2747!     sDescription += "\"\r\n";
2748    }
2749  }
2750
2751--- 3919,3925 ----
2752      i->GetAnsi(szBuf, nSize);
2753      sDescription += "\"";
2754      sDescription += szBuf;
2755!     sDescription += "\"\n";
2756    }
2757  }
2758
2759***************
2760*** 3948,3954 ****
2761    if (!m_Strings->size()) {
2762      sReport += icValidateWarningMsg;
2763      sReport += sSigName;
2764!     sReport += " - Empty tag!\r\n";
2765      rv = icMaxStatus(rv, icValidateWarning);
2766    }
2767
2768--- 3948,3954 ----
2769    if (!m_Strings->size()) {
2770      sReport += icValidateWarningMsg;
2771      sReport += sSigName;
2772!     sReport += " - Empty tag!\n";
2773      rv = icMaxStatus(rv, icValidateWarning);
2774    }
2775
2776***************
2777*** 4246,4260 ****
2778  {
2779    icChar buf[128];
2780
2781!   sDescription = "\r\nData:\r\n";
2782
2783    if (IsTypeAscii()) {
2784!       sprintf(buf, "%s\r\n", (icChar*)m_pData);
2785        sDescription += buf;
2786    }
2787    else
2788      for (int i = 0; i<(int)m_nSize; i++) {
2789!       sprintf(buf, "%d\r\n", m_pData[i]);
2790        sDescription += buf;
2791      }
2792
2793--- 4246,4260 ----
2794  {
2795    icChar buf[128];
2796
2797!   sDescription = "\nData:\n";
2798
2799    if (IsTypeAscii()) {
2800!       sprintf(buf, "%s\n", (icChar*)m_pData);
2801        sDescription += buf;
2802    }
2803    else
2804      for (int i = 0; i<(int)m_nSize; i++) {
2805!       sprintf(buf, "%d\n", m_pData[i]);
2806        sDescription += buf;
2807      }
2808
2809***************
2810*** 4312,4318 ****
2811    default:
2812      sReport += icValidateNonCompliantMsg;
2813      sReport += sSigName;
2814!     sReport += " - Invalid data flag encoding.\r\n";
2815      rv = icMaxStatus(rv, icValidateNonCompliant);
2816    }
2817
2818--- 4312,4318 ----
2819    default:
2820      sReport += icValidateNonCompliantMsg;
2821      sReport += sSigName;
2822!     sReport += " - Invalid data flag encoding.\n";
2823      rv = icMaxStatus(rv, icValidateNonCompliant);
2824    }
2825
2826***************
2827*** 4477,4487 ****
2828    icChar buf[128];
2829
2830    sDescription = "Date = ";
2831!   sprintf(buf, "%u-%u-%u\r\n", m_DateTime.month, m_DateTime.day, m_DateTime.year);
2832    sDescription += buf;
2833
2834    sDescription += "Time = ";
2835!   sprintf(buf, "%u:%u:%u\r\n", m_DateTime.hours, m_DateTime.minutes, m_DateTime.seconds);
2836    sDescription += buf;
2837  }
2838
2839--- 4477,4487 ----
2840    icChar buf[128];
2841
2842    sDescription = "Date = ";
2843!   sprintf(buf, "%u-%u-%u\n", m_DateTime.month, m_DateTime.day, m_DateTime.year);
2844    sDescription += buf;
2845
2846    sDescription += "Time = ";
2847!   sprintf(buf, "%u:%u:%u\n", m_DateTime.hours, m_DateTime.minutes, m_DateTime.seconds);
2848    sDescription += buf;
2849  }
2850
2851***************
2852*** 4697,4708 ****
2853  {
2854    icChar buf[128];
2855
2856!   sprintf(buf, "Colorant Count : %u\r\n", m_nCount);
2857    sDescription += buf;
2858!   sDescription += "Order of Colorants:\r\n";
2859
2860    for (int i=0; i<(int)m_nCount; i++) {
2861!     sprintf(buf, "%u\r\n", m_pData[i]);
2862      sDescription += buf;
2863    }
2864  }
2865--- 4697,4708 ----
2866  {
2867    icChar buf[128];
2868
2869!   sprintf(buf, "Colorant Count : %u\n", m_nCount);
2870    sDescription += buf;
2871!   sDescription += "Order of Colorants:\n";
2872
2873    for (int i=0; i<(int)m_nCount; i++) {
2874!     sprintf(buf, "%u\n", m_pData[i]);
2875      sDescription += buf;
2876    }
2877  }
2878***************
2879*** 4757,4763 ****
2880    if (!pProfile) {
2881      sReport += icValidateWarningMsg;
2882      sReport += sSigName;
2883!     sReport += " - Tag validation incomplete: Pointer to profile unavailable.\r\n";
2884      rv = icMaxStatus(rv, icValidateWarning);
2885      return rv;
2886    }
2887--- 4757,4763 ----
2888    if (!pProfile) {
2889      sReport += icValidateWarningMsg;
2890      sReport += sSigName;
2891!     sReport += " - Tag validation incomplete: Pointer to profile unavailable.\n";
2892      rv = icMaxStatus(rv, icValidateWarning);
2893      return rv;
2894    }
2895***************
2896*** 4765,4771 ****
2897    if (m_nCount != icGetSpaceSamples(pProfile->m_Header.colorSpace)) {
2898      sReport += icValidateNonCompliantMsg;
2899      sReport += sSigName;
2900!     sReport += " - Incorrect number of colorants.\r\n";
2901      rv = icMaxStatus(rv, icValidateNonCompliant);
2902    }
2903
2904--- 4765,4771 ----
2905    if (m_nCount != icGetSpaceSamples(pProfile->m_Header.colorSpace)) {
2906      sReport += icValidateNonCompliantMsg;
2907      sReport += sSigName;
2908!     sReport += " - Incorrect number of colorants.\n";
2909      rv = icMaxStatus(rv, icValidateNonCompliant);
2910    }
2911
2912***************
2913*** 4977,4983 ****
2914    icUInt32Number i, nLen, nMaxLen=0;
2915    icFloatNumber Lab[3];
2916
2917!   sprintf(buf, "BEGIN_COLORANTS %u\r\n", m_nCount);
2918    sDescription += buf;
2919
2920    for (i=0; i<m_nCount; i++) {
2921--- 4977,4983 ----
2922    icUInt32Number i, nLen, nMaxLen=0;
2923    icFloatNumber Lab[3];
2924
2925!   sprintf(buf, "BEGIN_COLORANTS %u\n", m_nCount);
2926    sDescription += buf;
2927
2928    for (i=0; i<m_nCount; i++) {
2929***************
2930*** 4988,4998 ****
2931    sDescription += "# NAME ";
2932
2933    if (m_PCS == icSigXYZData) {
2934!     sprintf(buf, "XYZ_X XYZ_Y XYZ_Z\r\n");
2935      sDescription += buf;
2936    }
2937    else {
2938!     sprintf(buf, "Lab_L Lab_a Lab_b\r\n");
2939      sDescription += buf;
2940    }
2941    for (i=0; i<m_nCount; i++) {
2942--- 4988,4998 ----
2943    sDescription += "# NAME ";
2944
2945    if (m_PCS == icSigXYZData) {
2946!     sprintf(buf, "XYZ_X XYZ_Y XYZ_Z\n");
2947      sDescription += buf;
2948    }
2949    else {
2950!     sprintf(buf, "Lab_L Lab_a Lab_b\n");
2951      sDescription += buf;
2952    }
2953    for (i=0; i<m_nCount; i++) {
2954***************
2955*** 5003,5009 ****
2956      sDescription += buf;
2957
2958      if (m_PCS == icSigXYZData) {
2959!       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]));
2960        sDescription += buf;
2961      }
2962      else {
2963--- 5003,5009 ----
2964      sDescription += buf;
2965
2966      if (m_PCS == icSigXYZData) {
2967!       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]));
2968        sDescription += buf;
2969      }
2970      else {
2971***************
2972*** 5011,5017 ****
2973        Lab[1] = icU16toF(m_pData[i].data[1]);
2974        Lab[2] = icU16toF(m_pData[i].data[2]);
2975        icLabFromPcs(Lab);
2976!       sprintf(buf, "%7.4lf %8.4lf %8.4lf\r\n", Lab[0], Lab[1], Lab[2]);
2977        sDescription += buf;
2978      }
2979    }
2980--- 5011,5017 ----
2981        Lab[1] = icU16toF(m_pData[i].data[1]);
2982        Lab[2] = icU16toF(m_pData[i].data[2]);
2983        icLabFromPcs(Lab);
2984!       sprintf(buf, "%7.4lf %8.4lf %8.4lf\n", Lab[0], Lab[1], Lab[2]);
2985        sDescription += buf;
2986      }
2987    }
2988***************
2989*** 5066,5072 ****
2990    if (!pProfile) {
2991      sReport += icValidateWarningMsg;
2992      sReport += sSigName;
2993!     sReport += " - Tag validation incomplete: Pointer to profile unavailable.\r\n";
2994      rv = icMaxStatus(rv, icValidateWarning);
2995      return rv;
2996    }
2997--- 5066,5072 ----
2998    if (!pProfile) {
2999      sReport += icValidateWarningMsg;
3000      sReport += sSigName;
3001!     sReport += " - Tag validation incomplete: Pointer to profile unavailable.\n";
3002      rv = icMaxStatus(rv, icValidateWarning);
3003      return rv;
3004    }
3005***************
3006*** 5076,5082 ****
3007      if (pProfile->m_Header.deviceClass!=icSigLinkClass) {
3008        sReport += icValidateNonCompliantMsg;
3009        sReport += sSigName;
3010!       sReport += " - Use of this tag is allowed only in DeviceLink Profiles.\r\n";
3011        rv = icMaxStatus(rv, icValidateNonCompliant);
3012      }
3013    }
3014--- 5076,5082 ----
3015      if (pProfile->m_Header.deviceClass!=icSigLinkClass) {
3016        sReport += icValidateNonCompliantMsg;
3017        sReport += sSigName;
3018!       sReport += " - Use of this tag is allowed only in DeviceLink Profiles.\n";
3019        rv = icMaxStatus(rv, icValidateNonCompliant);
3020      }
3021    }
3022***************
3023*** 5084,5090 ****
3024    if (m_nCount != icGetSpaceSamples(pProfile->m_Header.colorSpace)) {
3025      sReport += icValidateNonCompliantMsg;
3026      sReport += sSigName;
3027!     sReport += " - Incorrect number of colorants.\r\n";
3028      rv = icMaxStatus(rv, icValidateNonCompliant);
3029    }
3030
3031--- 5084,5090 ----
3032    if (m_nCount != icGetSpaceSamples(pProfile->m_Header.colorSpace)) {
3033      sReport += icValidateNonCompliantMsg;
3034      sReport += sSigName;
3035!     sReport += " - Incorrect number of colorants.\n";
3036      rv = icMaxStatus(rv, icValidateNonCompliant);
3037    }
3038
3039***************
3040*** 5261,5273 ****
3041    icChar buf[128];
3042    CIccInfo Fmt;
3043
3044!   sprintf(buf, "Illuminant Tristimulus values: X = %.4lf, Y = %.4lf, Z = %.4lf\r\n",
3045                 icFtoD(m_XYZIllum.X),
3046                 icFtoD(m_XYZIllum.Y),
3047                 icFtoD(m_XYZIllum.Z));
3048    sDescription += buf;
3049
3050!   sprintf(buf, "Surround Tristimulus values: X = %.4lf, Y = %.4lf, Z = %.4lf\r\n",
3051                 icFtoD(m_XYZSurround.X),
3052                 icFtoD(m_XYZSurround.Y),
3053                 icFtoD(m_XYZSurround.Z));
3054--- 5261,5273 ----
3055    icChar buf[128];
3056    CIccInfo Fmt;
3057
3058!   sprintf(buf, "Illuminant Tristimulus values: X = %.4lf, Y = %.4lf, Z = %.4lf\n",
3059                 icFtoD(m_XYZIllum.X),
3060                 icFtoD(m_XYZIllum.Y),
3061                 icFtoD(m_XYZIllum.Z));
3062    sDescription += buf;
3063
3064!   sprintf(buf, "Surround Tristimulus values: X = %.4lf, Y = %.4lf, Z = %.4lf\n",
3065                 icFtoD(m_XYZSurround.X),
3066                 icFtoD(m_XYZSurround.Y),
3067                 icFtoD(m_XYZSurround.Z));
3068***************
3069*** 5276,5282 ****
3070    sDescription += "Illuminant Type: ";
3071
3072    sDescription += Fmt.GetIlluminantName(m_illumType);
3073!   sDescription += "\r\n";
3074
3075  }
3076
3077--- 5276,5282 ----
3078    sDescription += "Illuminant Type: ";
3079
3080    sDescription += Fmt.GetIlluminantName(m_illumType);
3081!   sDescription += "\n";
3082
3083  }
3084
3085***************
3086*** 5800,5831 ****
3087    icChar buf[128], buf2[28];
3088    icUInt32Number count=0;
3089
3090!   sprintf(buf, "Number of Profile Description Structures: %u\r\n", m_Descriptions->size());
3091    sDescription += buf;
3092
3093    for (i=m_Descriptions->begin(); i!=m_Descriptions->end(); i++, count++) {
3094!     sDescription += "\r\n";
3095
3096!     sprintf(buf, "Profile Description Structure Number [%u] follows:\r\n", count+1);
3097      sDescription += buf;
3098
3099!     sprintf(buf, "Device Manufacturer Signature: %s\r\n", icGetSig(buf2, i->m_deviceMfg, false));
3100      sDescription += buf;
3101
3102!     sprintf(buf, "Device Model Signature: %s\r\n", icGetSig(buf2, i->m_deviceModel, false));
3103      sDescription += buf;
3104
3105!     sprintf(buf, "Device Attributes: %08x%08x\r\n", (icUInt32Number)(i->m_attributes >> 32), (icUInt32Number)(i->m_attributes));
3106      sDescription += buf;
3107
3108!     sprintf(buf, "Device Technology Signature: %s\r\n", icGetSig(buf2, i->m_technology, false));
3109      sDescription += buf;
3110
3111!     sprintf(buf, "Description of device manufacturer: \r\n");
3112      sDescription += buf;
3113      i->m_deviceMfgDesc.Describe(sDescription);
3114
3115!     sprintf(buf, "Description of device model: \r\n");
3116      sDescription += buf;
3117      i->m_deviceModelDesc.Describe(sDescription);
3118    }
3119--- 5800,5831 ----
3120    icChar buf[128], buf2[28];
3121    icUInt32Number count=0;
3122
3123!   sprintf(buf, "Number of Profile Description Structures: %u\n", m_Descriptions->size());
3124    sDescription += buf;
3125
3126    for (i=m_Descriptions->begin(); i!=m_Descriptions->end(); i++, count++) {
3127!     sDescription += "\n";
3128
3129!     sprintf(buf, "Profile Description Structure Number [%u] follows:\n", count+1);
3130      sDescription += buf;
3131
3132!     sprintf(buf, "Device Manufacturer Signature: %s\n", icGetSig(buf2, i->m_deviceMfg, false));
3133      sDescription += buf;
3134
3135!     sprintf(buf, "Device Model Signature: %s\n", icGetSig(buf2, i->m_deviceModel, false));
3136      sDescription += buf;
3137
3138!     sprintf(buf, "Device Attributes: %08x%08x\n", (icUInt32Number)(i->m_attributes >> 32), (icUInt32Number)(i->m_attributes));
3139      sDescription += buf;
3140
3141!     sprintf(buf, "Device Technology Signature: %s\n", icGetSig(buf2, i->m_technology, false));
3142      sDescription += buf;
3143
3144!     sprintf(buf, "Description of device manufacturer: \n");
3145      sDescription += buf;
3146      i->m_deviceMfgDesc.Describe(sDescription);
3147
3148!     sprintf(buf, "Description of device model: \n");
3149      sDescription += buf;
3150      i->m_deviceModelDesc.Describe(sDescription);
3151    }
3152***************
3153*** 5886,5892 ****
3154        {
3155          sReport += icValidateNonCompliantMsg;
3156          sReport += sSigName;
3157!         sprintf(buf, " - %s: Unknown Technology.\r\n", Info.GetSigName(i->m_technology));
3158          sReport += buf;
3159          rv = icMaxStatus(rv, icValidateNonCompliant);
3160        }
3161--- 5886,5892 ----
3162        {
3163          sReport += icValidateNonCompliantMsg;
3164          sReport += sSigName;
3165!         sprintf(buf, " - %s: Unknown Technology.\n", Info.GetSigName(i->m_technology));
3166          sReport += buf;
3167          rv = icMaxStatus(rv, icValidateNonCompliant);
3168        }
3169***************
3170*** 5896,5902 ****
3171        sReport += icValidateNonCompliantMsg;
3172        sReport += sSigName;
3173
3174!       sReport += " Contains non-aligned deviceMfgDesc text tag information\r\n";
3175
3176        rv = icMaxStatus(rv, icValidateNonCompliant);
3177      }
3178--- 5896,5902 ----
3179        sReport += icValidateNonCompliantMsg;
3180        sReport += sSigName;
3181
3182!       sReport += " Contains non-aligned deviceMfgDesc text tag information\n";
3183
3184        rv = icMaxStatus(rv, icValidateNonCompliant);
3185      }
3186***************
3187*** 5905,5911 ****
3188        sReport += icValidateNonCompliantMsg;
3189        sReport += sSigName;
3190
3191!       sReport += " Contains non-aligned deviceModelDesc text tag information\r\n";
3192
3193        rv = icMaxStatus(rv, icValidateNonCompliant);
3194      }
3195--- 5905,5911 ----
3196        sReport += icValidateNonCompliantMsg;
3197        sReport += sSigName;
3198
3199!       sReport += " Contains non-aligned deviceModelDesc text tag information\n";
3200
3201        rv = icMaxStatus(rv, icValidateNonCompliant);
3202      }
3203***************
3204*** 6174,6198 ****
3205    CIccResponse16List::iterator j;
3206
3207    sDescription += "Measurement Unit: ";
3208!   sDescription += Fmt.GetMeasurementUnit((icSignature)GetMeasurementType()); sDescription += "\r\n";
3209
3210
3211    for (int i=0; i<m_nChannels; i++) {
3212      nResponseList = m_Response16ListArray[i];
3213
3214!     sDescription += "\r\n";
3215!     sprintf(buf, "Maximum Colorant XYZ Measurement for Channel-%u : X=%.4lf, Y=%.4lf, Z=%.4lf\r\n", i+1,
3216        icFtoD(m_maxColorantXYZ[i].X), icFtoD(m_maxColorantXYZ[i].Y), icFtoD(m_maxColorantXYZ[i].Z));
3217      sDescription += buf;
3218
3219!     sprintf(buf, "Number of Measurements for Channel-%u : %u\r\n", i+1, nResponseList.size());
3220      sDescription += buf;
3221
3222!     sprintf(buf, "Measurement Data for Channel-%u follows:\r\n", i+1);
3223      sDescription += buf;
3224
3225      for (j=nResponseList.begin(); j!=nResponseList.end(); j++) {
3226!       sprintf(buf, "Device Value= %u : Measurement Value= %.4lf\r\n", j->deviceCode, icFtoD(j->measurementValue));
3227        sDescription += buf;
3228      }
3229    }
3230--- 6174,6198 ----
3231    CIccResponse16List::iterator j;
3232
3233    sDescription += "Measurement Unit: ";
3234!   sDescription += Fmt.GetMeasurementUnit((icSignature)GetMeasurementType()); sDescription += "\n";
3235
3236
3237    for (int i=0; i<m_nChannels; i++) {
3238      nResponseList = m_Response16ListArray[i];
3239
3240!     sDescription += "\n";
3241!     sprintf(buf, "Maximum Colorant XYZ Measurement for Channel-%u : X=%.4lf, Y=%.4lf, Z=%.4lf\n", i+1,
3242        icFtoD(m_maxColorantXYZ[i].X), icFtoD(m_maxColorantXYZ[i].Y), icFtoD(m_maxColorantXYZ[i].Z));
3243      sDescription += buf;
3244
3245!     sprintf(buf, "Number of Measurements for Channel-%u : %u\n", i+1, nResponseList.size());
3246      sDescription += buf;
3247
3248!     sprintf(buf, "Measurement Data for Channel-%u follows:\n", i+1);
3249      sDescription += buf;
3250
3251      for (j=nResponseList.begin(); j!=nResponseList.end(); j++) {
3252!       sprintf(buf, "Device Value= %u : Measurement Value= %.4lf\n", j->deviceCode, icFtoD(j->measurementValue));
3253        sDescription += buf;
3254      }
3255    }
3256***************
3257*** 6234,6240 ****
3258    default:
3259      sReport += icValidateNonCompliantMsg;
3260      sReport += sSigName;
3261!     sReport += " - Unknown measurement unit signature.\r\n";
3262      rv = icMaxStatus(rv, icValidateNonCompliant);
3263    }
3264
3265--- 6234,6240 ----
3266    default:
3267      sReport += icValidateNonCompliantMsg;
3268      sReport += sSigName;
3269!     sReport += " - Unknown measurement unit signature.\n";
3270      rv = icMaxStatus(rv, icValidateNonCompliant);
3271    }
3272
3273***************
3274*** 6241,6247 ****
3275    if (!m_nChannels) {
3276      sReport += icValidateNonCompliantMsg;
3277      sReport += sSigName;
3278!     sReport += " - Incorrect number of channels.\r\n";
3279      rv = icMaxStatus(rv, icValidateNonCompliant);
3280      return rv;
3281    }
3282--- 6241,6247 ----
3283    if (!m_nChannels) {
3284      sReport += icValidateNonCompliantMsg;
3285      sReport += sSigName;
3286!     sReport += " - Incorrect number of channels.\n";
3287      rv = icMaxStatus(rv, icValidateNonCompliant);
3288      return rv;
3289    }
3290***************
3291*** 6479,6495 ****
3292    CIccResponseCurveSet::iterator i;
3293    icChar buf[128];
3294
3295!   sprintf(buf, "Number of Channels: %u\r\n", m_nChannels);
3296    sDescription += buf;
3297
3298!   sprintf(buf, "Number of Measurement Types used: %u\r\n", m_ResponseCurves->size());
3299    sDescription += buf;
3300
3301    int count = 0;
3302    for (i=m_ResponseCurves->begin(); i!=m_ResponseCurves->end(); i++, count++) {
3303!      sDescription += "\r\n";
3304
3305!     sprintf(buf, "Response Curve for measurement type [%u] follows:\r\n", count+1);
3306      sDescription += buf;
3307
3308      i->Describe(sDescription);
3309--- 6479,6495 ----
3310    CIccResponseCurveSet::iterator i;
3311    icChar buf[128];
3312
3313!   sprintf(buf, "Number of Channels: %u\n", m_nChannels);
3314    sDescription += buf;
3315
3316!   sprintf(buf, "Number of Measurement Types used: %u\n", m_ResponseCurves->size());
3317    sDescription += buf;
3318
3319    int count = 0;
3320    for (i=m_ResponseCurves->begin(); i!=m_ResponseCurves->end(); i++, count++) {
3321!      sDescription += "\n";
3322
3323!     sprintf(buf, "Response Curve for measurement type [%u] follows:\n", count+1);
3324      sDescription += buf;
3325
3326      i->Describe(sDescription);
3327***************
3328*** 6658,6664 ****
3329    if (!pProfile) {
3330      sReport += icValidateWarningMsg;
3331      sReport += sSigName;
3332!     sReport += " - Tag validation incomplete: Pointer to profile unavailable.\r\n";
3333      rv = icMaxStatus(rv, icValidateWarning);
3334      return rv;
3335    }
3336--- 6658,6664 ----
3337    if (!pProfile) {
3338      sReport += icValidateWarningMsg;
3339      sReport += sSigName;
3340!     sReport += " - Tag validation incomplete: Pointer to profile unavailable.\n";
3341      rv = icMaxStatus(rv, icValidateWarning);
3342      return rv;
3343    }
3344***************
3345*** 6666,6678 ****
3346    if (m_nChannels!=icGetSpaceSamples(pProfile->m_Header.colorSpace)) {
3347      sReport += icValidateWarningMsg;
3348      sReport += sSigName;
3349!     sReport += " - Incorrect number of channels.\r\n";
3350    }
3351
3352    if (!GetNumResponseCurveTypes()) {
3353      sReport += icValidateWarningMsg;
3354      sReport += sSigName;
3355!     sReport += " - Empty Tag!.\r\n";
3356      rv = icMaxStatus(rv, icValidateWarning);
3357    }
3358    else {
3359--- 6666,6678 ----
3360    if (m_nChannels!=icGetSpaceSamples(pProfile->m_Header.colorSpace)) {
3361      sReport += icValidateWarningMsg;
3362      sReport += sSigName;
3363!     sReport += " - Incorrect number of channels.\n";
3364    }
3365
3366    if (!GetNumResponseCurveTypes()) {
3367      sReport += icValidateWarningMsg;
3368      sReport += sSigName;
3369!     sReport += " - Empty Tag!.\n";
3370      rv = icMaxStatus(rv, icValidateWarning);
3371    }
3372    else {
3373*** misc/SampleICC-1.3.2/IccProfLib/IccTagLut.cpp	Mon Aug 20 22:05:00 2007
3374--- misc/build/SampleICC-1.3.2/IccProfLib/IccTagLut.cpp	Fri Jan 25 14:23:09 2008
3375***************
3376*** 323,345 ****
3377    icChar buf[128], *ptr;
3378
3379    if (!m_nSize) {
3380!     sprintf(buf, "BEGIN_CURVE In_Out\r\n");
3381      sDescription += buf;
3382!     sDescription += "Y = X\r\n";
3383    }
3384    else if (m_nSize==1) {
3385      icFloatNumber dGamma = (icFloatNumber)(m_Curve[0] * 256.0);
3386!     sprintf(buf, "BEGIN_CURVE In_Out\r\n");
3387      sDescription += buf;
3388!     sprintf(buf, "Y = X ^ %.4lf\r\n", dGamma);
3389      sDescription += buf;
3390    }
3391    else {
3392      int i;
3393
3394!     sprintf(buf, "BEGIN_LUT In_Out 1 1\r\n");
3395      sDescription += buf;
3396!     sDescription += "IN OUT\r\n";
3397
3398      for (i=0; i<(int)m_nSize; i++) {
3399        ptr = buf;
3400--- 323,345 ----
3401    icChar buf[128], *ptr;
3402
3403    if (!m_nSize) {
3404!     sprintf(buf, "BEGIN_CURVE In_Out\n");
3405      sDescription += buf;
3406!     sDescription += "Y = X\n";
3407    }
3408    else if (m_nSize==1) {
3409      icFloatNumber dGamma = (icFloatNumber)(m_Curve[0] * 256.0);
3410!     sprintf(buf, "BEGIN_CURVE In_Out\n");
3411      sDescription += buf;
3412!     sprintf(buf, "Y = X ^ %.4lf\n", dGamma);
3413      sDescription += buf;
3414    }
3415    else {
3416      int i;
3417
3418!     sprintf(buf, "BEGIN_LUT In_Out 1 1\n");
3419      sDescription += buf;
3420!     sDescription += "IN OUT\n";
3421
3422      for (i=0; i<(int)m_nSize; i++) {
3423        ptr = buf;
3424***************
3425*** 354,365 ****
3426
3427        ptr += strlen(ptr);
3428
3429!       strcpy(ptr, "\r\n");
3430
3431        sDescription += buf;
3432      }
3433    }
3434!   sDescription += "\r\n";
3435  }
3436
3437
3438--- 354,365 ----
3439
3440        ptr += strlen(ptr);
3441
3442!       strcpy(ptr, "\n");
3443
3444        sDescription += buf;
3445      }
3446    }
3447!   sDescription += "\n";
3448  }
3449
3450
3451***************
3452*** 383,405 ****
3453    icChar buf[128], *ptr;
3454
3455    if (!m_nSize) {
3456!     sprintf(buf, "BEGIN_CURVE %s\r\n", szName);
3457      sDescription += buf;
3458!     sDescription += "Y = X\r\n";
3459    }
3460    else if (m_nSize==1) {
3461      icFloatNumber dGamma = (icFloatNumber)(m_Curve[0] * 256.0);
3462!     sprintf(buf, "BEGIN_CURVE %s\r\n", szName);
3463      sDescription += buf;
3464!     sprintf(buf, "Y = X ^ %.4lf\r\n", dGamma);
3465      sDescription += buf;
3466    }
3467    else {
3468      int i;
3469
3470!     sprintf(buf, "BEGIN_LUT %s 1 1\r\n", szName);
3471      sDescription += buf;
3472!     sDescription += "IN OUT\r\n";
3473
3474      sDescription.reserve(sDescription.size() + m_nSize * 20);
3475
3476--- 383,405 ----
3477    icChar buf[128], *ptr;
3478
3479    if (!m_nSize) {
3480!     sprintf(buf, "BEGIN_CURVE %s\n", szName);
3481      sDescription += buf;
3482!     sDescription += "Y = X\n";
3483    }
3484    else if (m_nSize==1) {
3485      icFloatNumber dGamma = (icFloatNumber)(m_Curve[0] * 256.0);
3486!     sprintf(buf, "BEGIN_CURVE %s\n", szName);
3487      sDescription += buf;
3488!     sprintf(buf, "Y = X ^ %.4lf\n", dGamma);
3489      sDescription += buf;
3490    }
3491    else {
3492      int i;
3493
3494!     sprintf(buf, "BEGIN_LUT %s 1 1\n", szName);
3495      sDescription += buf;
3496!     sDescription += "IN OUT\n";
3497
3498      sDescription.reserve(sDescription.size() + m_nSize * 20);
3499
3500***************
3501*** 416,427 ****
3502
3503        ptr += strlen(ptr);
3504
3505!       strcpy(ptr, "\r\n");
3506
3507        sDescription += buf;
3508      }
3509    }
3510!   sDescription += "\r\n";
3511  }
3512
3513
3514--- 416,427 ----
3515
3516        ptr += strlen(ptr);
3517
3518!       strcpy(ptr, "\n");
3519
3520        sDescription += buf;
3521      }
3522    }
3523!   sDescription += "\n";
3524  }
3525
3526
3527***************
3528*** 614,620 ****
3529          if (m_Curve[0]>0.0 || m_Curve[m_nSize-1]<1.0) {
3530            sReport += icValidateWarningMsg;
3531            sReport += sSigName;
3532!           sReport += " - Curve cannot be accurately inverted.\r\n";
3533            rv = icMaxStatus(rv, icValidateWarning);
3534          }
3535        }
3536--- 614,620 ----
3537          if (m_Curve[0]>0.0 || m_Curve[m_nSize-1]<1.0) {
3538            sReport += icValidateWarningMsg;
3539            sReport += sSigName;
3540!           sReport += " - Curve cannot be accurately inverted.\n";
3541            rv = icMaxStatus(rv, icValidateWarning);
3542          }
3543        }
3544***************
3545*** 822,877 ****
3546  {
3547    icChar buf[128];
3548
3549!   sprintf(buf, "FunctionType: %04Xh\r\n", m_nFunctionType);
3550    sDescription += buf;
3551
3552    switch(m_nFunctionType) {
3553  case 0x0000:
3554!   sprintf(buf, "Y = X ^ %.4lf\r\n", icFtoD(m_Param[0]));
3555    sDescription += buf;
3556    return;
3557
3558  case 0x0001:
3559!   sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf   when (X >= %.4lf / %.4lf)\r\n",
3560      icFtoD(m_Param[1]), icFtoD(m_Param[2]), icFtoD(m_Param[0]),
3561      -icFtoD(m_Param[2]), icFtoD(m_Param[1]));
3562    sDescription += buf;
3563
3564!   sprintf(buf, "Y = 0 when (X < %.4lf / %.4lf)\r\n",
3565      -icFtoD(m_Param[2]), icFtoD(m_Param[1]));
3566    sDescription += buf;
3567    return;
3568
3569  case 0x0002:
3570!   sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf + %.4lf   when (X >= %.4lf / %.4lf)\r\n",
3571      icFtoD(m_Param[1]), icFtoD(m_Param[2]), icFtoD(m_Param[0]),
3572      icFtoD(m_Param[3]),
3573      -icFtoD(m_Param[2]), icFtoD(m_Param[1]));
3574    sDescription += buf;
3575
3576!   sprintf(buf, "Y = %.4lf   when (X < %.4lf / %.4lf)\r\n", icFtoD(m_Param[3]),
3577      -icFtoD(m_Param[2]), icFtoD(m_Param[1]));
3578    sDescription += buf;
3579    return;
3580
3581  case 0x0003:
3582!   sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf   when (X >= %.4lf)\r\n",
3583      icFtoD(m_Param[1]), icFtoD(m_Param[2]), icFtoD(m_Param[0]),
3584      icFtoD(m_Param[4]));
3585    sDescription += buf;
3586
3587!   sprintf(buf, "Y = %lf * X   when (X < %.4lf)\r\n",
3588      icFtoD(m_Param[3]), icFtoD(m_Param[4]));
3589    sDescription += buf;
3590    return;
3591
3592  case 0x0004:
3593!   sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf + %.4lf  when (X >= %.4lf)\r\n",
3594      icFtoD(m_Param[1]), icFtoD(m_Param[2]), icFtoD(m_Param[0]),
3595      icFtoD(m_Param[5]), icFtoD(m_Param[4]));
3596    sDescription += buf;
3597
3598!   sprintf(buf, "Y = %lf * X + %.4lf  when (X < %.4lf)\r\n",
3599      icFtoD(m_Param[3]), icFtoD(m_Param[6]), icFtoD(m_Param[4]));
3600    sDescription += buf;
3601    return;
3602--- 822,877 ----
3603  {
3604    icChar buf[128];
3605
3606!   sprintf(buf, "FunctionType: %04Xh\n", m_nFunctionType);
3607    sDescription += buf;
3608
3609    switch(m_nFunctionType) {
3610  case 0x0000:
3611!   sprintf(buf, "Y = X ^ %.4lf\n", icFtoD(m_Param[0]));
3612    sDescription += buf;
3613    return;
3614
3615  case 0x0001:
3616!   sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf   when (X >= %.4lf / %.4lf)\n",
3617      icFtoD(m_Param[1]), icFtoD(m_Param[2]), icFtoD(m_Param[0]),
3618      -icFtoD(m_Param[2]), icFtoD(m_Param[1]));
3619    sDescription += buf;
3620
3621!   sprintf(buf, "Y = 0 when (X < %.4lf / %.4lf)\n",
3622      -icFtoD(m_Param[2]), icFtoD(m_Param[1]));
3623    sDescription += buf;
3624    return;
3625
3626  case 0x0002:
3627!   sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf + %.4lf   when (X >= %.4lf / %.4lf)\n",
3628      icFtoD(m_Param[1]), icFtoD(m_Param[2]), icFtoD(m_Param[0]),
3629      icFtoD(m_Param[3]),
3630      -icFtoD(m_Param[2]), icFtoD(m_Param[1]));
3631    sDescription += buf;
3632
3633!   sprintf(buf, "Y = %.4lf   when (X < %.4lf / %.4lf)\n", icFtoD(m_Param[3]),
3634      -icFtoD(m_Param[2]), icFtoD(m_Param[1]));
3635    sDescription += buf;
3636    return;
3637
3638  case 0x0003:
3639!   sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf   when (X >= %.4lf)\n",
3640      icFtoD(m_Param[1]), icFtoD(m_Param[2]), icFtoD(m_Param[0]),
3641      icFtoD(m_Param[4]));
3642    sDescription += buf;
3643
3644!   sprintf(buf, "Y = %lf * X   when (X < %.4lf)\n",
3645      icFtoD(m_Param[3]), icFtoD(m_Param[4]));
3646    sDescription += buf;
3647    return;
3648
3649  case 0x0004:
3650!   sprintf(buf, "Y = (%.4lf * X + %.4lf) ^ %.4lf + %.4lf  when (X >= %.4lf)\n",
3651      icFtoD(m_Param[1]), icFtoD(m_Param[2]), icFtoD(m_Param[0]),
3652      icFtoD(m_Param[5]), icFtoD(m_Param[4]));
3653    sDescription += buf;
3654
3655!   sprintf(buf, "Y = %lf * X + %.4lf  when (X < %.4lf)\n",
3656      icFtoD(m_Param[3]), icFtoD(m_Param[6]), icFtoD(m_Param[4]));
3657    sDescription += buf;
3658    return;
3659***************
3660*** 878,888 ****
3661
3662  default:
3663    int i;
3664!   sprintf(buf, "Unknown Function with %d parameters:\r\n");
3665    sDescription += buf;
3666
3667    for (i=0; i<m_nNumParam; i++) {
3668!     sprintf(buf, "Param[%d] = %.4lf\r\n", i, icFtoD(m_Param[i]));
3669      sDescription += buf;
3670    }
3671    }
3672--- 878,888 ----
3673
3674  default:
3675    int i;
3676!   sprintf(buf, "Unknown Function with %d parameters:\n", m_nNumParam);
3677    sDescription += buf;
3678
3679    for (i=0; i<m_nNumParam; i++) {
3680!     sprintf(buf, "Param[%d] = %.4lf\n", i, icFtoD(m_Param[i]));
3681      sDescription += buf;
3682    }
3683    }
3684***************
3685*** 907,916 ****
3686  {
3687    icChar buf[128];
3688
3689!   sprintf(buf, "BEGIN_CURVE %s\r\n", szName);
3690    sDescription += buf;
3691    Describe(sDescription);
3692!   sDescription += "\r\n";
3693  }
3694
3695
3696--- 907,916 ----
3697  {
3698    icChar buf[128];
3699
3700!   sprintf(buf, "BEGIN_CURVE %s\n", szName);
3701    sDescription += buf;
3702    Describe(sDescription);
3703!   sDescription += "\n";
3704  }
3705
3706
3707***************
3708*** 1106,1112 ****
3709    if (m_nReserved2!=0) {
3710      sReport += icValidateNonCompliantMsg;
3711      sReport += sSigName;
3712!     sReport += " - Reserved Value must be zero.\r\n";
3713
3714      rv = icMaxStatus(rv, icValidateNonCompliant);
3715    }
3716--- 1106,1112 ----
3717    if (m_nReserved2!=0) {
3718      sReport += icValidateNonCompliantMsg;
3719      sReport += sSigName;
3720!     sReport += " - Reserved Value must be zero.\n";
3721
3722      rv = icMaxStatus(rv, icValidateNonCompliant);
3723    }
3724***************
3725*** 1116,1122 ****
3726    if (m_nNumParam!=1) {
3727      sReport += icValidateCriticalErrorMsg;
3728      sReport += sSigName;
3729!     sReport += " - Number of parameters inconsistent with function type.\r\n";
3730      rv = icMaxStatus(rv, icValidateCriticalError);
3731    }
3732    break;
3733--- 1116,1122 ----
3734    if (m_nNumParam!=1) {
3735      sReport += icValidateCriticalErrorMsg;
3736      sReport += sSigName;
3737!     sReport += " - Number of parameters inconsistent with function type.\n";
3738      rv = icMaxStatus(rv, icValidateCriticalError);
3739    }
3740    break;
3741***************
3742*** 1125,1131 ****
3743    if (m_nNumParam!=3) {
3744      sReport += icValidateCriticalErrorMsg;
3745      sReport += sSigName;
3746!     sReport += " - Number of parameters inconsistent with function type.\r\n";
3747      rv = icMaxStatus(rv, icValidateCriticalError);
3748    }
3749    break;
3750--- 1125,1131 ----
3751    if (m_nNumParam!=3) {
3752      sReport += icValidateCriticalErrorMsg;
3753      sReport += sSigName;
3754!     sReport += " - Number of parameters inconsistent with function type.\n";
3755      rv = icMaxStatus(rv, icValidateCriticalError);
3756    }
3757    break;
3758***************
3759*** 1134,1140 ****
3760    if (m_nNumParam!=4) {
3761      sReport += icValidateCriticalErrorMsg;
3762      sReport += sSigName;
3763!     sReport += " - Number of parameters inconsistent with function type.\r\n";
3764      rv = icMaxStatus(rv, icValidateCriticalError);
3765    }
3766    break;
3767--- 1134,1140 ----
3768    if (m_nNumParam!=4) {
3769      sReport += icValidateCriticalErrorMsg;
3770      sReport += sSigName;
3771!     sReport += " - Number of parameters inconsistent with function type.\n";
3772      rv = icMaxStatus(rv, icValidateCriticalError);
3773    }
3774    break;
3775***************
3776*** 1143,1149 ****
3777    if (m_nNumParam!=5) {
3778      sReport += icValidateCriticalErrorMsg;
3779      sReport += sSigName;
3780!     sReport += " - Number of parameters inconsistent with function type.\r\n";
3781      rv = icMaxStatus(rv, icValidateCriticalError);
3782    }
3783    break;
3784--- 1143,1149 ----
3785    if (m_nNumParam!=5) {
3786      sReport += icValidateCriticalErrorMsg;
3787      sReport += sSigName;
3788!     sReport += " - Number of parameters inconsistent with function type.\n";
3789      rv = icMaxStatus(rv, icValidateCriticalError);
3790    }
3791    break;
3792***************
3793*** 1152,1158 ****
3794    if (m_nNumParam!=7) {
3795      sReport += icValidateCriticalErrorMsg;
3796      sReport += sSigName;
3797!     sReport += " - Number of parameters inconsistent with function type.\r\n";
3798      rv = icMaxStatus(rv, icValidateCriticalError);
3799    }
3800    break;
3801--- 1152,1158 ----
3802    if (m_nNumParam!=7) {
3803      sReport += icValidateCriticalErrorMsg;
3804      sReport += sSigName;
3805!     sReport += " - Number of parameters inconsistent with function type.\n";
3806      rv = icMaxStatus(rv, icValidateCriticalError);
3807    }
3808    break;
3809***************
3810*** 1160,1166 ****
3811  default:
3812    sReport += icValidateCriticalErrorMsg;
3813    sReport += sSigName;
3814!   sReport += " - Unknown function type.\r\n";
3815    rv = icMaxStatus(rv, icValidateCriticalError);
3816    }
3817
3818--- 1160,1166 ----
3819  default:
3820    sReport += icValidateCriticalErrorMsg;
3821    sReport += sSigName;
3822!   sReport += " - Unknown function type.\n";
3823    rv = icMaxStatus(rv, icValidateCriticalError);
3824    }
3825
3826***************
3827*** 1170,1176 ****
3828      if (lval>0.0 || uval<1.0) {
3829        sReport += icValidateWarningMsg;
3830        sReport += sSigName;
3831!       sReport += " - Curve cannot be accurately inverted.\r\n";
3832        rv = icMaxStatus(rv, icValidateWarning);
3833      }
3834    }
3835--- 1170,1176 ----
3836      if (lval>0.0 || uval<1.0) {
3837        sReport += icValidateWarningMsg;
3838        sReport += sSigName;
3839!       sReport += " - Curve cannot be accurately inverted.\n";
3840        rv = icMaxStatus(rv, icValidateWarning);
3841      }
3842    }
3843***************
3844*** 1255,1286 ****
3845  {
3846    icChar buf[128];
3847
3848!   sprintf(buf, "BEGIN_MATRIX %s\r\n", szName);
3849    sDescription += buf;
3850
3851    if (!m_bUseConstants) {
3852!     sprintf(buf, "%8.4lf %8.4lf %8.4lf\r\n",
3853        m_e[0], m_e[1], m_e[2]);
3854      sDescription += buf;
3855!     sprintf(buf, "%8.4lf %8.4lf %8.4lf\r\n",
3856        m_e[3], m_e[4], m_e[5]);
3857      sDescription += buf;
3858!     sprintf(buf, "%8.4lf %8.4lf %8.4lf\r\n",
3859        m_e[6], m_e[7], m_e[8]);
3860      sDescription += buf;
3861    }
3862    else {
3863!     sprintf(buf, "%8.4lf %8.4lf %8.4lf  +  %8.4lf\r\n",
3864        m_e[0], m_e[1], m_e[2], m_e[9]);
3865      sDescription += buf;
3866!     sprintf(buf, "%8.4lf %8.4lf %8.4lf  +  %8.4lf\r\n",
3867        m_e[3], m_e[4], m_e[5], m_e[10]);
3868      sDescription += buf;
3869!     sprintf(buf, "%8.4lf %8.4lf %8.4lf  +  %8.4lf\r\n",
3870        m_e[6], m_e[7], m_e[8], m_e[11]);
3871      sDescription += buf;
3872    }
3873!   sDescription += "\r\n";
3874  }
3875
3876  /**
3877--- 1255,1286 ----
3878  {
3879    icChar buf[128];
3880
3881!   sprintf(buf, "BEGIN_MATRIX %s\n", szName);
3882    sDescription += buf;
3883
3884    if (!m_bUseConstants) {
3885!     sprintf(buf, "%8.4lf %8.4lf %8.4lf\n",
3886        m_e[0], m_e[1], m_e[2]);
3887      sDescription += buf;
3888!     sprintf(buf, "%8.4lf %8.4lf %8.4lf\n",
3889        m_e[3], m_e[4], m_e[5]);
3890      sDescription += buf;
3891!     sprintf(buf, "%8.4lf %8.4lf %8.4lf\n",
3892        m_e[6], m_e[7], m_e[8]);
3893      sDescription += buf;
3894    }
3895    else {
3896!     sprintf(buf, "%8.4lf %8.4lf %8.4lf  +  %8.4lf\n",
3897        m_e[0], m_e[1], m_e[2], m_e[9]);
3898      sDescription += buf;
3899!     sprintf(buf, "%8.4lf %8.4lf %8.4lf  +  %8.4lf\n",
3900        m_e[3], m_e[4], m_e[5], m_e[10]);
3901      sDescription += buf;
3902!     sprintf(buf, "%8.4lf %8.4lf %8.4lf  +  %8.4lf\n",
3903        m_e[6], m_e[7], m_e[8], m_e[11]);
3904      sDescription += buf;
3905    }
3906!   sDescription += "\n";
3907  }
3908
3909  /**
3910***************
3911*** 1377,1383 ****
3912        if (m_e[0]!=1.0 || m_e[4]!=1.0 || m_e[9]!=1.0 || sum!=3.0) {
3913          sReport += icValidateNonCompliantMsg;
3914          sReport += sSigName;
3915!         sReport += " - Matrix must be identity.\r\n";
3916          rv = icValidateNonCompliant;
3917        }
3918      }
3919--- 1377,1383 ----
3920        if (m_e[0]!=1.0 || m_e[4]!=1.0 || m_e[9]!=1.0 || sum!=3.0) {
3921          sReport += icValidateNonCompliantMsg;
3922          sReport += sSigName;
3923!         sReport += " - Matrix must be identity.\n";
3924          rv = icValidateNonCompliant;
3925        }
3926      }
3927***************
3928*** 1754,1760 ****
3929
3930        ptr += sprintf(ptr, " %s", m_pVal);
3931      }
3932!     strcpy(ptr, "\r\n");
3933      sDescription += (const icChar*)m_pOutText;
3934
3935    }
3936--- 1754,1760 ----
3937
3938        ptr += sprintf(ptr, " %s", m_pVal);
3939      }
3940!     strcpy(ptr, "\n");
3941      sDescription += (const icChar*)m_pOutText;
3942
3943    }
3944***************
3945*** 1866,1872 ****
3946    icChar szOutText[2048], szColor[40];
3947    int i, len;
3948
3949!   sprintf(szOutText, "BEGIN_LUT %s %d %d\r\n", szName, m_nInput, m_nOutput);
3950    sDescription += szOutText;
3951
3952    for (i=0; i<m_nInput; i++) {
3953--- 1866,1872 ----
3954    icChar szOutText[2048], szColor[40];
3955    int i, len;
3956
3957!   sprintf(szOutText, "BEGIN_LUT %s %d %d\n", szName, m_nInput, m_nOutput);
3958    sDescription += szOutText;
3959
3960    for (i=0; i<m_nInput; i++) {
3961***************
3962*** 1883,1889 ****
3963      sDescription += szOutText;
3964    }
3965
3966!   sDescription += "\r\n";
3967
3968    len = 0;
3969    for (i=0; i<m_nInput; i++) {
3970--- 1883,1889 ----
3971      sDescription += szOutText;
3972    }
3973
3974!   sDescription += "\n";
3975
3976    len = 0;
3977    for (i=0; i<m_nInput; i++) {
3978***************
3979*** 1907,1913 ****
3980
3981    Iterate(sDescription, 0, 0);
3982
3983!   sDescription += "\r\n";
3984  }
3985
3986
3987--- 1907,1913 ----
3988
3989    Iterate(sDescription, 0, 0);
3990
3991!   sDescription += "\n";
3992  }
3993
3994
3995***************
3996*** 2693,2699 ****
3997    if (m_nReserved2[0]!=0 || m_nReserved2[1]!=0 || m_nReserved2[2]!=0) {
3998      sReport += icValidateNonCompliantMsg;
3999      sReport += sSigName;
4000!     sReport += " - Reserved Value must be zero.\r\n";
4001
4002      rv = icValidateNonCompliant;
4003    }
4004--- 2693,2699 ----
4005    if (m_nReserved2[0]!=0 || m_nReserved2[1]!=0 || m_nReserved2[2]!=0) {
4006      sReport += icValidateNonCompliantMsg;
4007      sReport += sSigName;
4008!     sReport += " - Reserved Value must be zero.\n";
4009
4010      rv = icValidateNonCompliant;
4011    }
4012***************
4013*** 2704,2710 ****
4014        if (m_GridPoints[i]<2) {
4015          sReport += icValidateCriticalErrorMsg;
4016          sReport += sSigName;
4017!         sprintf(temp, " - CLUT: At least 2 grid points should be present in dimension %u.\r\n",i );
4018          sReport += temp;
4019          rv = icMaxStatus(rv, icValidateCriticalError);
4020        }
4021--- 2704,2710 ----
4022        if (m_GridPoints[i]<2) {
4023          sReport += icValidateCriticalErrorMsg;
4024          sReport += sSigName;
4025!         sprintf(temp, " - CLUT: At least 2 grid points should be present in dimension %u.\n",i );
4026          sReport += temp;
4027          rv = icMaxStatus(rv, icValidateCriticalError);
4028        }
4029***************
4030*** 3122,3128 ****
4031    if (!pProfile) {
4032      sReport += icValidateWarningMsg;
4033      sReport += sSigName;
4034!     sReport += " - Tag validation incomplete: Pointer to profile unavailable.\r\n";
4035      rv = icMaxStatus(rv, icValidateWarning);
4036      return rv;
4037    }
4038--- 3122,3128 ----
4039    if (!pProfile) {
4040      sReport += icValidateWarningMsg;
4041      sReport += sSigName;
4042!     sReport += " - Tag validation incomplete: Pointer to profile unavailable.\n";
4043      rv = icMaxStatus(rv, icValidateWarning);
4044      return rv;
4045    }
4046***************
4047*** 3138,3144 ****
4048        if (m_nInput!=nInput) {
4049          sReport += icValidateCriticalErrorMsg;
4050          sReport += sSigName;
4051!         sReport += " - Incorrect number of input channels.\r\n";
4052          rv = icMaxStatus(rv, icValidateCriticalError);
4053        }
4054
4055--- 3138,3144 ----
4056        if (m_nInput!=nInput) {
4057          sReport += icValidateCriticalErrorMsg;
4058          sReport += sSigName;
4059!         sReport += " - Incorrect number of input channels.\n";
4060          rv = icMaxStatus(rv, icValidateCriticalError);
4061        }
4062
4063***************
4064*** 3146,3152 ****
4065        if (m_nOutput!=nOutput) {
4066          sReport += icValidateCriticalErrorMsg;
4067          sReport += sSigName;
4068!         sReport += " - Incorrect number of output channels.\r\n";
4069          rv = icMaxStatus(rv, icValidateCriticalError);
4070        }
4071
4072--- 3146,3152 ----
4073        if (m_nOutput!=nOutput) {
4074          sReport += icValidateCriticalErrorMsg;
4075          sReport += sSigName;
4076!         sReport += " - Incorrect number of output channels.\n";
4077          rv = icMaxStatus(rv, icValidateCriticalError);
4078        }
4079
4080***************
4081*** 3160,3166 ****
4082        if (m_nInput!=nInput) {
4083          sReport += icValidateCriticalErrorMsg;
4084          sReport += sSigName;
4085!         sReport += " - Incorrect number of input channels.\r\n";
4086          rv = icMaxStatus(rv, icValidateCriticalError);
4087        }
4088
4089--- 3160,3166 ----
4090        if (m_nInput!=nInput) {
4091          sReport += icValidateCriticalErrorMsg;
4092          sReport += sSigName;
4093!         sReport += " - Incorrect number of input channels.\n";
4094          rv = icMaxStatus(rv, icValidateCriticalError);
4095        }
4096
4097***************
4098*** 3168,3174 ****
4099        if (m_nOutput!=nOutput) {
4100          sReport += icValidateCriticalErrorMsg;
4101          sReport += sSigName;
4102!         sReport += " - Incorrect number of output channels.\r\n";
4103          rv = icMaxStatus(rv, icValidateCriticalError);
4104        }
4105
4106--- 3168,3174 ----
4107        if (m_nOutput!=nOutput) {
4108          sReport += icValidateCriticalErrorMsg;
4109          sReport += sSigName;
4110!         sReport += " - Incorrect number of output channels.\n";
4111          rv = icMaxStatus(rv, icValidateCriticalError);
4112        }
4113
4114***************
4115*** 3180,3186 ****
4116        if (m_nInput!=nInput) {
4117          sReport += icValidateCriticalErrorMsg;
4118          sReport += sSigName;
4119!         sReport += " - Incorrect number of input channels.\r\n";
4120          rv = icMaxStatus(rv, icValidateCriticalError);
4121        }
4122
4123--- 3180,3186 ----
4124        if (m_nInput!=nInput) {
4125          sReport += icValidateCriticalErrorMsg;
4126          sReport += sSigName;
4127!         sReport += " - Incorrect number of input channels.\n";
4128          rv = icMaxStatus(rv, icValidateCriticalError);
4129        }
4130
4131***************
4132*** 3188,3194 ****
4133        if (m_nOutput!=nOutput) {
4134          sReport += icValidateCriticalErrorMsg;
4135          sReport += sSigName;
4136!         sReport += " - Incorrect number of output channels.\r\n";
4137          rv = icMaxStatus(rv, icValidateCriticalError);
4138        }
4139
4140--- 3188,3194 ----
4141        if (m_nOutput!=nOutput) {
4142          sReport += icValidateCriticalErrorMsg;
4143          sReport += sSigName;
4144!         sReport += " - Incorrect number of output channels.\n";
4145          rv = icMaxStatus(rv, icValidateCriticalError);
4146        }
4147
4148***************
4149*** 3206,3212 ****
4150      if (!m_CLUT) {
4151        sReport += icValidateCriticalErrorMsg;
4152        sReport += sSigName;
4153!       sReport += " - CLUT must be present.\r\n";
4154        rv = icMaxStatus(rv, icValidateCriticalError);
4155      }
4156    }
4157--- 3206,3212 ----
4158      if (!m_CLUT) {
4159        sReport += icValidateCriticalErrorMsg;
4160        sReport += sSigName;
4161!       sReport += " - CLUT must be present.\n";
4162        rv = icMaxStatus(rv, icValidateCriticalError);
4163      }
4164    }
4165***************
4166*** 3748,3754 ****
4167            else {
4168              sReport += icValidateCriticalErrorMsg;
4169              sReport += sSigName;
4170!             sReport += " - Incorrect number of B-curves.\r\n";
4171              rv = icMaxStatus(rv, icValidateCriticalError);
4172            }
4173          }
4174--- 3748,3754 ----
4175            else {
4176              sReport += icValidateCriticalErrorMsg;
4177              sReport += sSigName;
4178!             sReport += " - Incorrect number of B-curves.\n";
4179              rv = icMaxStatus(rv, icValidateCriticalError);
4180            }
4181          }
4182***************
4183*** 3762,3768 ****
4184            else {
4185              sReport += icValidateCriticalErrorMsg;
4186              sReport += sSigName;
4187!             sReport += " - Incorrect number of M-curves.\r\n";
4188              rv = icMaxStatus(rv, icValidateCriticalError);
4189            }
4190          }
4191--- 3762,3768 ----
4192            else {
4193              sReport += icValidateCriticalErrorMsg;
4194              sReport += sSigName;
4195!             sReport += " - Incorrect number of M-curves.\n";
4196              rv = icMaxStatus(rv, icValidateCriticalError);
4197            }
4198          }
4199***************
4200*** 3772,3778 ****
4201          if (!m_CLUT) {
4202            sReport += icValidateNonCompliantMsg;
4203            sReport += sSigName;
4204!           sReport += " - CLUT must be present if using A-curves.\r\n";
4205
4206            rv = icMaxStatus(rv, icValidateNonCompliant);
4207          }
4208--- 3772,3778 ----
4209          if (!m_CLUT) {
4210            sReport += icValidateNonCompliantMsg;
4211            sReport += sSigName;
4212!           sReport += " - CLUT must be present if using A-curves.\n";
4213
4214            rv = icMaxStatus(rv, icValidateNonCompliant);
4215          }
4216***************
4217*** 3784,3790 ****
4218            else {
4219              sReport += icValidateCriticalErrorMsg;
4220              sReport += sSigName;
4221!             sReport += " - Incorrect number of A-curves.\r\n";
4222              rv = icMaxStatus(rv, icValidateCriticalError);
4223            }
4224          }
4225--- 3784,3790 ----
4226            else {
4227              sReport += icValidateCriticalErrorMsg;
4228              sReport += sSigName;
4229!             sReport += " - Incorrect number of A-curves.\n";
4230              rv = icMaxStatus(rv, icValidateCriticalError);
4231            }
4232          }
4233***************
4234*** 3876,3882 ****
4235    if (!pProfile) {
4236      sReport += icValidateWarningMsg;
4237      sReport += sSigName;
4238!     sReport += " - Tag validation incomplete: Pointer to profile unavailable.\r\n";
4239      rv = icMaxStatus(rv, icValidateCriticalError);
4240      return rv;
4241    }
4242--- 3876,3882 ----
4243    if (!pProfile) {
4244      sReport += icValidateWarningMsg;
4245      sReport += sSigName;
4246!     sReport += " - Tag validation incomplete: Pointer to profile unavailable.\n";
4247      rv = icMaxStatus(rv, icValidateCriticalError);
4248      return rv;
4249    }
4250***************
4251*** 3900,3906 ****
4252        if (m_nOutput!=nOutput) {
4253          sReport += icValidateCriticalErrorMsg;
4254          sReport += sSigName;
4255!         sReport += " - Incorrect number of output channels.\r\n";
4256          rv = icMaxStatus(rv, icValidateCriticalError);
4257        }
4258
4259--- 3900,3906 ----
4260        if (m_nOutput!=nOutput) {
4261          sReport += icValidateCriticalErrorMsg;
4262          sReport += sSigName;
4263!         sReport += " - Incorrect number of output channels.\n";
4264          rv = icMaxStatus(rv, icValidateCriticalError);
4265        }
4266
4267***************
4268*** 3913,3919 ****
4269            else {
4270              sReport += icValidateCriticalErrorMsg;
4271              sReport += sSigName;
4272!             sReport += " - Incorrect number of B-curves.\r\n";
4273              rv = icMaxStatus(rv, icValidateCriticalError);
4274            }
4275          }
4276--- 3913,3919 ----
4277            else {
4278              sReport += icValidateCriticalErrorMsg;
4279              sReport += sSigName;
4280!             sReport += " - Incorrect number of B-curves.\n";
4281              rv = icMaxStatus(rv, icValidateCriticalError);
4282            }
4283          }
4284***************
4285*** 3927,3933 ****
4286            else {
4287              sReport += icValidateCriticalErrorMsg;
4288              sReport += sSigName;
4289!             sReport += " - Incorrect number of M-curves.\r\n";
4290              rv = icMaxStatus(rv, icValidateCriticalError);
4291            }
4292          }
4293--- 3927,3933 ----
4294            else {
4295              sReport += icValidateCriticalErrorMsg;
4296              sReport += sSigName;
4297!             sReport += " - Incorrect number of M-curves.\n";
4298              rv = icMaxStatus(rv, icValidateCriticalError);
4299            }
4300          }
4301***************
4302*** 3937,3943 ****
4303          if (!m_CLUT) {
4304            sReport += icValidateNonCompliantMsg;
4305            sReport += sSigName;
4306!           sReport += " - CLUT must be present if using A-curves.\r\n";
4307
4308            rv = icMaxStatus(rv, icValidateNonCompliant);
4309          }
4310--- 3937,3943 ----
4311          if (!m_CLUT) {
4312            sReport += icValidateNonCompliantMsg;
4313            sReport += sSigName;
4314!           sReport += " - CLUT must be present if using A-curves.\n";
4315
4316            rv = icMaxStatus(rv, icValidateNonCompliant);
4317          }
4318***************
4319*** 3949,3955 ****
4320            else {
4321              sReport += icValidateCriticalErrorMsg;
4322              sReport += sSigName;
4323!             sReport += " - Incorrect number of A-curves.\r\n";
4324              rv = icMaxStatus(rv, icValidateCriticalError);
4325            }
4326          }
4327--- 3949,3955 ----
4328            else {
4329              sReport += icValidateCriticalErrorMsg;
4330              sReport += sSigName;
4331!             sReport += " - Incorrect number of A-curves.\n";
4332              rv = icMaxStatus(rv, icValidateCriticalError);
4333            }
4334          }
4335***************
4336*** 4311,4317 ****
4337                if (pTagCurve->GetSize()==1) {
4338                  sReport += icValidateCriticalErrorMsg;
4339                  sReport += sSigName;
4340!                 sReport += " - lut8Tags do not support single entry gamma curves.\r\n";
4341                  rv = icMaxStatus(rv, icValidateCriticalError);
4342                }
4343              }
4344--- 4311,4317 ----
4345                if (pTagCurve->GetSize()==1) {
4346                  sReport += icValidateCriticalErrorMsg;
4347                  sReport += sSigName;
4348!                 sReport += " - lut8Tags do not support single entry gamma curves.\n";
4349                  rv = icMaxStatus(rv, icValidateCriticalError);
4350                }
4351              }
4352***************
4353*** 4319,4325 ****
4354            else {
4355              sReport += icValidateCriticalErrorMsg;
4356              sReport += sSigName;
4357!             sReport += " - Incorrect number of B-curves.\r\n";
4358              rv = icMaxStatus(rv, icValidateCriticalError);
4359            }
4360          }
4361--- 4319,4325 ----
4362            else {
4363              sReport += icValidateCriticalErrorMsg;
4364              sReport += sSigName;
4365!             sReport += " - Incorrect number of B-curves.\n";
4366              rv = icMaxStatus(rv, icValidateCriticalError);
4367            }
4368          }
4369***************
4370*** 4336,4342 ****
4371          if (m_XYZMatrix[0]!=1.0 || m_XYZMatrix[4]!=1.0 || m_XYZMatrix[9]!=1.0 || sum!=3.0) {
4372            sReport += icValidateWarningMsg;
4373            sReport += sSigName;
4374!           sReport += " - Matrix must be identity.\r\n";
4375            rv = icMaxStatus(rv, icValidateWarning);
4376          }
4377        }
4378--- 4336,4342 ----
4379          if (m_XYZMatrix[0]!=1.0 || m_XYZMatrix[4]!=1.0 || m_XYZMatrix[9]!=1.0 || sum!=3.0) {
4380            sReport += icValidateWarningMsg;
4381            sReport += sSigName;
4382!           sReport += " - Matrix must be identity.\n";
4383            rv = icMaxStatus(rv, icValidateWarning);
4384          }
4385        }
4386***************
4387*** 4351,4357 ****
4388                if (pTagCurve->GetSize()==1) {
4389                  sReport += icValidateCriticalErrorMsg;
4390                  sReport += sSigName;
4391!                 sReport += " - lut8Tags do not support single entry gamma curves.\r\n";
4392                  rv = icMaxStatus(rv, icValidateCriticalError);
4393                }
4394              }
4395--- 4351,4357 ----
4396                if (pTagCurve->GetSize()==1) {
4397                  sReport += icValidateCriticalErrorMsg;
4398                  sReport += sSigName;
4399!                 sReport += " - lut8Tags do not support single entry gamma curves.\n";
4400                  rv = icMaxStatus(rv, icValidateCriticalError);
4401                }
4402              }
4403***************
4404*** 4359,4365 ****
4405            else {
4406              sReport += icValidateCriticalErrorMsg;
4407              sReport += sSigName;
4408!             sReport += " - Incorrect number of A-curves.\r\n";
4409              rv = icMaxStatus(rv, icValidateCriticalError);
4410            }
4411          }
4412--- 4359,4365 ----
4413            else {
4414              sReport += icValidateCriticalErrorMsg;
4415              sReport += sSigName;
4416!             sReport += " - Incorrect number of A-curves.\n";
4417              rv = icMaxStatus(rv, icValidateCriticalError);
4418            }
4419          }
4420***************
4421*** 4721,4727 ****
4422                if (pTagCurve->GetSize()==1) {
4423                  sReport += icValidateCriticalErrorMsg;
4424                  sReport += sSigName;
4425!                 sReport += " - lut16Tags do not support single entry gamma curves.\r\n";
4426                  rv = icMaxStatus(rv, icValidateCriticalError);
4427                }
4428              }
4429--- 4721,4727 ----
4430                if (pTagCurve->GetSize()==1) {
4431                  sReport += icValidateCriticalErrorMsg;
4432                  sReport += sSigName;
4433!                 sReport += " - lut16Tags do not support single entry gamma curves.\n";
4434                  rv = icMaxStatus(rv, icValidateCriticalError);
4435                }
4436              }
4437***************
4438*** 4729,4735 ****
4439            else {
4440              sReport += icValidateCriticalErrorMsg;
4441              sReport += sSigName;
4442!             sReport += " - Incorrect number of B-curves.\r\n";
4443              rv = icMaxStatus(rv, icValidateCriticalError);
4444            }
4445          }
4446--- 4729,4735 ----
4447            else {
4448              sReport += icValidateCriticalErrorMsg;
4449              sReport += sSigName;
4450!             sReport += " - Incorrect number of B-curves.\n";
4451              rv = icMaxStatus(rv, icValidateCriticalError);
4452            }
4453          }
4454***************
4455*** 4746,4752 ****
4456          if (m_XYZMatrix[0]!=1.0 || m_XYZMatrix[4]!=1.0 || m_XYZMatrix[9]!=1.0 || sum!=3.0) {
4457            sReport += icValidateWarningMsg;
4458            sReport += sSigName;
4459!           sReport += " - Matrix must be identity.\r\n";
4460            rv = icMaxStatus(rv, icValidateWarning);
4461          }
4462        }
4463--- 4746,4752 ----
4464          if (m_XYZMatrix[0]!=1.0 || m_XYZMatrix[4]!=1.0 || m_XYZMatrix[9]!=1.0 || sum!=3.0) {
4465            sReport += icValidateWarningMsg;
4466            sReport += sSigName;
4467!           sReport += " - Matrix must be identity.\n";
4468            rv = icMaxStatus(rv, icValidateWarning);
4469          }
4470        }
4471***************
4472*** 4761,4767 ****
4473                if (pTagCurve->GetSize()==1) {
4474                  sReport += icValidateCriticalErrorMsg;
4475                  sReport += sSigName;
4476!                 sReport += " - lut16Tags do not support single entry gamma curves.\r\n";
4477                  rv = icMaxStatus(rv, icValidateCriticalError);
4478                }
4479              }
4480--- 4761,4767 ----
4481                if (pTagCurve->GetSize()==1) {
4482                  sReport += icValidateCriticalErrorMsg;
4483                  sReport += sSigName;
4484!                 sReport += " - lut16Tags do not support single entry gamma curves.\n";
4485                  rv = icMaxStatus(rv, icValidateCriticalError);
4486                }
4487              }
4488***************
4489*** 4769,4775 ****
4490            else {
4491              sReport += icValidateCriticalErrorMsg;
4492              sReport += sSigName;
4493!             sReport += " - Incorrect number of A-curves.\r\n";
4494              rv = icMaxStatus(rv, icValidateCriticalError);
4495            }
4496          }
4497--- 4769,4775 ----
4498            else {
4499              sReport += icValidateCriticalErrorMsg;
4500              sReport += sSigName;
4501!             sReport += " - Incorrect number of A-curves.\n";
4502              rv = icMaxStatus(rv, icValidateCriticalError);
4503            }
4504          }
4505*** misc/SampleICC-1.3.2/IccProfLib/IccTagMPE.cpp	Mon Aug 20 22:05:00 2007
4506--- misc/build/SampleICC-1.3.2/IccProfLib/IccTagMPE.cpp	Fri Jan 25 14:23:09 2008
4507***************
4508*** 218,224 ****
4509            icGetSig(sigbuf, m_sig), m_nSize);
4510    sDescription += buf;
4511
4512!   sDescription += "\r\n\r\nData Follows:\r\n";
4513
4514    icMemDump(sDescription, m_pData, m_nSize);
4515
4516--- 218,224 ----
4517            icGetSig(sigbuf, m_sig), m_nSize);
4518    sDescription += buf;
4519
4520!   sDescription += "\n\nData Follows:\n";
4521
4522    icMemDump(sDescription, m_pData, m_nSize);
4523
4524***************
4525*** 364,370 ****
4526    sReport += " - Contains unknown processing element type (";
4527    icGetSig(buf, m_sig, true);
4528    sReport += buf;
4529!   sReport += ").\r\n";
4530
4531    return icValidateCriticalError;
4532  }
4533--- 364,370 ----
4534    sReport += " - Contains unknown processing element type (";
4535    icGetSig(buf, m_sig, true);
4536    sReport += buf;
4537!   sReport += ").\n";
4538
4539    return icValidateCriticalError;
4540  }
4541***************
4542*** 392,398 ****
4543      sReport += " - Element ";
4544      sSigName = Info.GetSigName(GetType());
4545      sReport += sSigName;
4546!     sReport += " - Reserved Value must be zero.\r\n";
4547
4548      rv = icValidateNonCompliant;
4549    }
4550--- 392,398 ----
4551      sReport += " - Element ";
4552      sSigName = Info.GetSigName(GetType());
4553      sReport += sSigName;
4554!     sReport += " - Reserved Value must be zero.\n";
4555
4556      rv = icValidateNonCompliant;
4557    }
4558***************
4559*** 738,755 ****
4560  {
4561    icChar buf[128];
4562
4563!   sprintf(buf, "BEGIN MULTI_PROCESS_ELEMENT_TAG %d %d\r\n", m_nInputChannels, m_nOutputChannels);
4564    sDescription += buf;
4565!   sDescription += "\r\n";
4566
4567    CIccMultiProcessElementList::iterator i;
4568    int j;
4569
4570    for (j=0, i=m_list->begin(); i!=m_list->end(); j++, i++) {
4571!     sprintf(buf, "PROCESS_ELEMENT #%d\r\n", j+1);
4572      sDescription += buf;
4573      i->ptr->Describe(sDescription);
4574!     sDescription += "\r\n";
4575    }
4576  }
4577
4578--- 738,755 ----
4579  {
4580    icChar buf[128];
4581
4582!   sprintf(buf, "BEGIN MULTI_PROCESS_ELEMENT_TAG %d %d\n", m_nInputChannels, m_nOutputChannels);
4583    sDescription += buf;
4584!   sDescription += "\n";
4585
4586    CIccMultiProcessElementList::iterator i;
4587    int j;
4588
4589    for (j=0, i=m_list->begin(); i!=m_list->end(); j++, i++) {
4590!     sprintf(buf, "PROCESS_ELEMENT #%d\n", j+1);
4591      sDescription += buf;
4592      i->ptr->Describe(sDescription);
4593!     sDescription += "\n";
4594    }
4595  }
4596
4597***************
4598*** 1207,1219 ****
4599      if (m_nInputChannels != m_nOutputChannels) {
4600        sReport += icValidateCriticalErrorMsg;
4601        sReport += sSigName;
4602!       sReport += " No processing elements and input and output channels do not match!\r\n";
4603        return icValidateCriticalError;
4604      }
4605      else {
4606        sReport += icValidateWarningMsg;
4607        sReport += sSigName;
4608!       sReport += " No processing elements.\r\n";
4609        return icValidateWarning;
4610      }
4611    }
4612--- 1207,1219 ----
4613      if (m_nInputChannels != m_nOutputChannels) {
4614        sReport += icValidateCriticalErrorMsg;
4615        sReport += sSigName;
4616!       sReport += " No processing elements and input and output channels do not match!\n";
4617        return icValidateCriticalError;
4618      }
4619      else {
4620        sReport += icValidateWarningMsg;
4621        sReport += sSigName;
4622!       sReport += " No processing elements.\n";
4623        return icValidateWarning;
4624      }
4625    }
4626***************
4627*** 1224,1230 ****
4628    if (i->ptr->NumInputChannels() != m_nInputChannels) {
4629      sReport += icValidateCriticalErrorMsg;
4630      sReport += sSigName;
4631!     sReport += " Mis-matching number of input channels!\r\n";
4632      return icValidateCriticalError;
4633    }
4634
4635--- 1224,1230 ----
4636    if (i->ptr->NumInputChannels() != m_nInputChannels) {
4637      sReport += icValidateCriticalErrorMsg;
4638      sReport += sSigName;
4639!     sReport += " Mis-matching number of input channels!\n";
4640      return icValidateCriticalError;
4641    }
4642
4643***************
4644*** 1239,1245 ****
4645          sReport += "->";
4646          sReport += i->ptr->GetClassName();
4647
4648!         sReport += " Mis-matching number of channels!\r\n";
4649          return icValidateCriticalError;
4650        }
4651      }
4652--- 1239,1245 ----
4653          sReport += "->";
4654          sReport += i->ptr->GetClassName();
4655
4656!         sReport += " Mis-matching number of channels!\n";
4657          return icValidateCriticalError;
4658        }
4659      }
4660***************
4661*** 1251,1257 ****
4662    if (last && last->NumOutputChannels() != m_nOutputChannels) {
4663      sReport += icValidateCriticalErrorMsg;
4664      sReport += sSigName;
4665!     sReport += " Mis-matching number of output channels!\r\n";
4666      return icValidateCriticalError;
4667    }
4668
4669--- 1251,1257 ----
4670    if (last && last->NumOutputChannels() != m_nOutputChannels) {
4671      sReport += icValidateCriticalErrorMsg;
4672      sReport += sSigName;
4673!     sReport += " Mis-matching number of output channels!\n";
4674      return icValidateCriticalError;
4675    }
4676
4677*** misc/SampleICC-1.3.2/IccProfLib/IccTagProfSeqId.cpp	Mon Aug 20 22:05:00 2007
4678--- misc/build/SampleICC-1.3.2/IccProfLib/IccTagProfSeqId.cpp	Fri Jan 25 14:23:09 2008
4679***************
4680*** 234,240 ****
4681  {
4682    std::string Dump;
4683
4684!   sDescription += "ProfileID:\r\n";
4685
4686    int i;
4687    char buf[20];
4688--- 234,240 ----
4689  {
4690    std::string Dump;
4691
4692!   sDescription += "ProfileID:\n";
4693
4694    int i;
4695    char buf[20];
4696***************
4697*** 244,255 ****
4698      sprintf(buf, "%2x", m_profileID.ID8[i]);
4699      sDescription += buf;
4700    }
4701!   sDescription += "\r\n";
4702
4703!   sDescription += "Description:\r\n";
4704    m_desc.Describe(sDescription);
4705
4706!   sDescription += "\r\n";
4707  }
4708
4709
4710--- 244,255 ----
4711      sprintf(buf, "%2x", m_profileID.ID8[i]);
4712      sDescription += buf;
4713    }
4714!   sDescription += "\n";
4715
4716!   sDescription += "Description:\n";
4717    m_desc.Describe(sDescription);
4718
4719!   sDescription += "\n";
4720  }
4721
4722
4723***************
4724*** 434,454 ****
4725  {
4726    icChar buf[128];
4727
4728!   sprintf(buf, "BEGIN ProfileSequenceIdentification_TAG\r\n");
4729    sDescription += buf;
4730!   sDescription += "\r\n";
4731
4732    int i;
4733    CIccProfileIdDescList::iterator j;
4734    for (i=0, j=m_list->begin(); j!=m_list->end(); i++, j++) {
4735!     sprintf(buf, "ProfileDescription_%d:\r\n", i+1);
4736      sDescription += buf;
4737      j->Describe(sDescription);
4738    }
4739
4740!   sprintf(buf, "END ProfileSequenceIdentification_TAG\r\n");
4741    sDescription += buf;
4742!   sDescription += "\r\n";
4743  }
4744
4745
4746--- 434,454 ----
4747  {
4748    icChar buf[128];
4749
4750!   sprintf(buf, "BEGIN ProfileSequenceIdentification_TAG\n");
4751    sDescription += buf;
4752!   sDescription += "\n";
4753
4754    int i;
4755    CIccProfileIdDescList::iterator j;
4756    for (i=0, j=m_list->begin(); j!=m_list->end(); i++, j++) {
4757!     sprintf(buf, "ProfileDescription_%d:\n", i+1);
4758      sDescription += buf;
4759      j->Describe(sDescription);
4760    }
4761
4762!   sprintf(buf, "END ProfileSequenceIdentification_TAG\n");
4763    sDescription += buf;
4764!   sDescription += "\n";
4765  }
4766
4767
4768*** misc/SampleICC-1.3.2/IccProfLib/IccTagProfSeqId.h	Mon Aug 20 22:05:00 2007
4769--- misc/build/SampleICC-1.3.2/IccProfLib/IccTagProfSeqId.h	Fri Jan 25 14:23:09 2008
4770***************
4771*** 161,164 ****
4772  }
4773  #endif
4774
4775! #endif //_ICCTAGPROFSEQID_H
4776--- 161,164 ----
4777  }
4778  #endif
4779
4780! #endif //_ICCTAGPROFSEQID_H
4781*** misc/SampleICC-1.3.2/IccProfLib/IccUtil.cpp	Mon Aug 20 22:05:00 2007
4782--- misc/build/SampleICC-1.3.2/IccProfLib/IccUtil.cpp	Fri Jan 25 14:23:09 2008
4783***************
4784*** 79,85 ****
4785  #include "IccUtil.h"
4786  #include "IccTagFactory.h"
4787  #include <stdlib.h>
4788! #include <memory.h>
4789  #include <ctype.h>
4790  #include <math.h>
4791  #include <string.h>
4792--- 79,85 ----
4793  #include "IccUtil.h"
4794  #include "IccTagFactory.h"
4795  #include <stdlib.h>
4796! #include <memory>
4797  #include <ctype.h>
4798  #include <math.h>
4799  #include <string.h>
4800***************
4801*** 678,688 ****
4802  {
4803    icChar buf[128];
4804
4805!   sprintf(buf, "%8.4lf %8.4lf %8.4lf\r\n", icFtoD(pMatrix[0]), icFtoD(pMatrix[1]), icFtoD(pMatrix[2]));
4806    sDump += buf;
4807!   sprintf(buf, "%8.4lf %8.4lf %8.4lf\r\n", icFtoD(pMatrix[3]), icFtoD(pMatrix[4]), icFtoD(pMatrix[5]));
4808    sDump += buf;
4809!   sprintf(buf, "%8.4lf %8.4lf %8.4lf\r\n", icFtoD(pMatrix[6]), icFtoD(pMatrix[7]), icFtoD(pMatrix[8]));
4810    sDump += buf;
4811  }
4812
4813--- 679,689 ----
4814  {
4815    icChar buf[128];
4816
4817!   sprintf(buf, "%8.4lf %8.4lf %8.4lf\n", icFtoD(pMatrix[0]), icFtoD(pMatrix[1]), icFtoD(pMatrix[2]));
4818    sDump += buf;
4819!   sprintf(buf, "%8.4lf %8.4lf %8.4lf\n", icFtoD(pMatrix[3]), icFtoD(pMatrix[4]), icFtoD(pMatrix[5]));
4820    sDump += buf;
4821!   sprintf(buf, "%8.4lf %8.4lf %8.4lf\n", icFtoD(pMatrix[6]), icFtoD(pMatrix[7]), icFtoD(pMatrix[8]));
4822    sDump += buf;
4823  }
4824
4825***************
4826*** 1516,1534 ****
4827
4828    if (XYZ.X < 0) {
4829      sReport += icValidateNonCompliantMsg;
4830!     sReport += " - XYZNumber: Negative X value!\r\n";
4831      rv = icValidateNonCompliant;
4832    }
4833
4834    if (XYZ.Y < 0) {
4835      sReport += icValidateNonCompliantMsg;
4836!     sReport += " - XYZNumber: Negative Y value!\r\n";
4837      rv = icMaxStatus(rv, icValidateNonCompliant);
4838    }
4839
4840    if (XYZ.Z < 0) {
4841      sReport += icValidateNonCompliantMsg;
4842!     sReport += " - XYZNumber: Negative Z value!\r\n";
4843      rv = icMaxStatus(rv, icValidateNonCompliant);
4844    }
4845
4846--- 1517,1535 ----
4847
4848    if (XYZ.X < 0) {
4849      sReport += icValidateNonCompliantMsg;
4850!     sReport += " - XYZNumber: Negative X value!\n";
4851      rv = icValidateNonCompliant;
4852    }
4853
4854    if (XYZ.Y < 0) {
4855      sReport += icValidateNonCompliantMsg;
4856!     sReport += " - XYZNumber: Negative Y value!\n";
4857      rv = icMaxStatus(rv, icValidateNonCompliant);
4858    }
4859
4860    if (XYZ.Z < 0) {
4861      sReport += icValidateNonCompliantMsg;
4862!     sReport += " - XYZNumber: Negative Z value!\n";
4863      rv = icMaxStatus(rv, icValidateNonCompliant);
4864    }
4865
4866***************
4867*** 1548,1554 ****
4868    icChar buf[128];
4869    if (dateTime.year<1992) {
4870      sReport += icValidateWarningMsg;
4871!     sprintf(buf," - %u: Invalid year!\r\n",dateTime.year);
4872      sReport += buf;
4873      rv = icValidateWarning;
4874    }
4875--- 1549,1555 ----
4876    icChar buf[128];
4877    if (dateTime.year<1992) {
4878      sReport += icValidateWarningMsg;
4879!     sprintf(buf," - %u: Invalid year!\n",dateTime.year);
4880      sReport += buf;
4881      rv = icValidateWarning;
4882    }
4883***************
4884*** 1557,1563 ****
4885    if (newtime->tm_mon==11 && newtime->tm_mday==31) {
4886      if (dateTime.year>(year+1)) {
4887        sReport += icValidateWarningMsg;
4888!       sprintf(buf," - %u: Invalid year!\r\n",dateTime.year);
4889        sReport += buf;
4890        rv = icMaxStatus(rv, icValidateWarning);
4891      }
4892--- 1558,1564 ----
4893    if (newtime->tm_mon==11 && newtime->tm_mday==31) {
4894      if (dateTime.year>(year+1)) {
4895        sReport += icValidateWarningMsg;
4896!       sprintf(buf," - %u: Invalid year!\n",dateTime.year);
4897        sReport += buf;
4898        rv = icMaxStatus(rv, icValidateWarning);
4899      }
4900***************
4901*** 1565,1571 ****
4902    else {
4903      if (dateTime.year>year) {
4904        sReport += icValidateWarningMsg;
4905!       sprintf(buf," - %u: Invalid year!\r\n",dateTime.year);
4906        sReport += buf;
4907        rv = icMaxStatus(rv, icValidateWarning);
4908      }
4909--- 1566,1572 ----
4910    else {
4911      if (dateTime.year>year) {
4912        sReport += icValidateWarningMsg;
4913!       sprintf(buf," - %u: Invalid year!\n",dateTime.year);
4914        sReport += buf;
4915        rv = icMaxStatus(rv, icValidateWarning);
4916      }
4917***************
4918*** 1573,1579 ****
4919
4920    if (dateTime.month<1 || dateTime.month>12) {
4921      sReport += icValidateWarningMsg;
4922!     sprintf(buf," - %u: Invalid month!\r\n",dateTime.month);
4923      sReport += buf;
4924      rv = icMaxStatus(rv, icValidateWarning);
4925    }
4926--- 1574,1580 ----
4927
4928    if (dateTime.month<1 || dateTime.month>12) {
4929      sReport += icValidateWarningMsg;
4930!     sprintf(buf," - %u: Invalid month!\n",dateTime.month);
4931      sReport += buf;
4932      rv = icMaxStatus(rv, icValidateWarning);
4933    }
4934***************
4935*** 1580,1586 ****
4936
4937    if (dateTime.day<1 || dateTime.day>31) {
4938      sReport += icValidateWarningMsg;
4939!     sprintf(buf," - %u: Invalid day!\r\n",dateTime.day);
4940      sReport += buf;
4941      rv = icMaxStatus(rv, icValidateWarning);
4942    }
4943--- 1581,1587 ----
4944
4945    if (dateTime.day<1 || dateTime.day>31) {
4946      sReport += icValidateWarningMsg;
4947!     sprintf(buf," - %u: Invalid day!\n",dateTime.day);
4948      sReport += buf;
4949      rv = icMaxStatus(rv, icValidateWarning);
4950    }
4951***************
4952*** 1588,1594 ****
4953    if (dateTime.month==2) {
4954      if (dateTime.day>29) {
4955        sReport += icValidateWarningMsg;
4956!       sprintf(buf," - %u: Invalid day for February!\r\n",dateTime.day);
4957        sReport += buf;
4958        rv = icMaxStatus(rv, icValidateWarning);
4959      }
4960--- 1589,1595 ----
4961    if (dateTime.month==2) {
4962      if (dateTime.day>29) {
4963        sReport += icValidateWarningMsg;
4964!       sprintf(buf," - %u: Invalid day for February!\n",dateTime.day);
4965        sReport += buf;
4966        rv = icMaxStatus(rv, icValidateWarning);
4967      }
4968***************
4969*** 1596,1602 ****
4970      if (dateTime.day==29) {
4971        if ((dateTime.year%4)!=0) {
4972          sReport += icValidateWarningMsg;
4973!         sprintf(buf," - %u: Invalid day for February, year is not a leap year(%u)!\r\n",dateTime.day, dateTime.year);
4974          sReport += buf;
4975          rv = icMaxStatus(rv, icValidateWarning);
4976        }
4977--- 1597,1603 ----
4978      if (dateTime.day==29) {
4979        if ((dateTime.year%4)!=0) {
4980          sReport += icValidateWarningMsg;
4981!         sprintf(buf," - %u: Invalid day for February, year is not a leap year(%u)!\n",dateTime.day, dateTime.year);
4982          sReport += buf;
4983          rv = icMaxStatus(rv, icValidateWarning);
4984        }
4985***************
4986*** 1605,1611 ****
4987
4988    if (dateTime.hours>23) {
4989      sReport += icValidateWarningMsg;
4990!     sprintf(buf," - %u: Invalid hour!\r\n",dateTime.hours);
4991      sReport += buf;
4992      rv = icMaxStatus(rv, icValidateWarning);
4993    }
4994--- 1606,1612 ----
4995
4996    if (dateTime.hours>23) {
4997      sReport += icValidateWarningMsg;
4998!     sprintf(buf," - %u: Invalid hour!\n",dateTime.hours);
4999      sReport += buf;
5000      rv = icMaxStatus(rv, icValidateWarning);
5001    }
5002***************
5003*** 1612,1618 ****
5004
5005    if (dateTime.minutes>59) {
5006      sReport += icValidateWarningMsg;
5007!     sprintf(buf," - %u: Invalid minutes!\r\n",dateTime.minutes);
5008      sReport += buf;
5009      rv = icMaxStatus(rv, icValidateWarning);
5010    }
5011--- 1613,1619 ----
5012
5013    if (dateTime.minutes>59) {
5014      sReport += icValidateWarningMsg;
5015!     sprintf(buf," - %u: Invalid minutes!\n",dateTime.minutes);
5016      sReport += buf;
5017      rv = icMaxStatus(rv, icValidateWarning);
5018    }
5019***************
5020*** 1619,1625 ****
5021
5022    if (dateTime.seconds>59) {
5023      sReport += icValidateWarningMsg;
5024!     sprintf(buf," - %u: Invalid seconds!\r\n",dateTime.hours);
5025      sReport += buf;
5026      rv = icMaxStatus(rv, icValidateWarning);
5027    }
5028--- 1620,1626 ----
5029
5030    if (dateTime.seconds>59) {
5031      sReport += icValidateWarningMsg;
5032!     sprintf(buf," - %u: Invalid seconds!\n",dateTime.hours);
5033      sReport += buf;
5034      rv = icMaxStatus(rv, icValidateWarning);
5035    }
5036*** misc/SampleICC-1.3.2/IccProfLib/icProfileHeader.h	Mon Aug 20 22:05:00 2007
5037--- misc/build/SampleICC-1.3.2/IccProfLib/icProfileHeader.h	Fri Jan 25 14:23:09 2008
5038***************
5039*** 659,668 ****
5040  typedef enum {
5041      icFlare0                            = 0x00000000,  /* 0% flare */
5042      icFlare100                          = 0x00000001,  /* 100% flare */
5043  } icMeasurementFlare;
5044
5045  /** Convenience Enum Definition - Not defined in ICC specification*/
5046! #define icMaxEnumFlare ((icMeasurementFlare) 0xFFFFFFFF)
5047  #define icMaxFlare     ((icMeasurementFlare) 0xFFFFFFFF) /* as defined by earlier versions */
5048
5049
5050--- 659,669 ----
5051  typedef enum {
5052      icFlare0                            = 0x00000000,  /* 0% flare */
5053      icFlare100                          = 0x00000001,  /* 100% flare */
5054+     icMaxEnumFlare                      = 0xFFFFFFFF
5055  } icMeasurementFlare;
5056
5057  /** Convenience Enum Definition - Not defined in ICC specification*/
5058! /*#define icMaxEnumFlare ((icMeasurementFlare) 0xFFFFFFFF)*/
5059  #define icMaxFlare     ((icMeasurementFlare) 0xFFFFFFFF) /* as defined by earlier versions */
5060
5061
5062*** misc/SampleICC-1.3.2/Tools/CmdLine/Makefile.in	Mon Aug 20 22:10:42 2007
5063--- misc/build/SampleICC-1.3.2/Tools/CmdLine/Makefile.in	Fri Jan 25 14:23:09 2008
5064***************
5065*** 101,117 ****
5066  am__quote = @am__quote@
5067  install_sh = @install_sh@
5068
5069! SUBDIRS = IccApplyNamedCmm \
5070! 	@SICC_ICC_APPLY_PROFILES@ \
5071! 	IccDumpProfile \
5072  	IccProfLibTest \
5073  	IccStripUnknownTags \
5074  	IccV4ToMPE
5075
5076
5077! DIST_SUBDIRS = IccApplyNamedCmm \
5078! 	IccApplyProfiles \
5079! 	IccDumpProfile \
5080  	IccProfLibTest \
5081  	IccStripUnknownTags \
5082  	IccV4ToMPE
5083--- 101,113 ----
5084  am__quote = @am__quote@
5085  install_sh = @install_sh@
5086
5087! SUBDIRS = IccDumpProfile \
5088  	IccProfLibTest \
5089  	IccStripUnknownTags \
5090  	IccV4ToMPE
5091
5092
5093! DIST_SUBDIRS = IccDumpProfile \
5094  	IccProfLibTest \
5095  	IccStripUnknownTags \
5096  	IccV4ToMPE
5097*** misc/SampleICC-1.3.2/Contrib/ICC_utils/CLUT.cpp	2007-08-20 22:04:53.000000000 +0200
5098--- misc/build/SampleICC-1.3.2/Contrib/ICC_utils/CLUT.cpp	2008-01-31 13:53:16.000000000 +0100
5099***************
5100*** 77,82 ****
5101--- 77,84 ----
5102  //
5103  //////////////////////////////////////////////////////////////////////
5104
5105+ #include <stdlib.h>
5106+ #include <string.h>
5107  #include <iostream>
5108  #include <fstream>
5109  #include <sstream>
5110*** misc/SampleICC-1.3.2/Contrib/ICC_utils/ICC_tool_exception.h	2007-08-20 22:04:54.000000000 +0200
5111--- misc/build/SampleICC-1.3.2/Contrib/ICC_utils/ICC_tool_exception.h	2008-01-31 13:54:51.000000000 +0100
5112***************
5113*** 83,88 ****
5114--- 83,89 ----
5115  #ifndef __DEFINED_ICC_TOOL_EXCEPTION_H__
5116  #define __DEFINED_ICC_TOOL_EXCEPTION_H__
5117
5118+ #include <string.h>
5119  #include <exception>
5120  #include <string>
5121
5122*** misc/SampleICC-1.3.2/IccProfLib/IccCmm.cpp	2007-08-20 22:05:00.000000000 +0200
5123--- misc/build/SampleICC-1.3.2/IccProfLib/IccCmm.cpp	2008-01-31 13:49:54.000000000 +0100
5124***************
5125*** 79,84 ****
5126--- 79,86 ----
5127  #pragma warning( disable: 4786) //disable warning in <list.h>
5128  #endif
5129
5130+ #include <stdlib.h>
5131+ #include <string.h>
5132  #include "IccCmm.h"
5133  #include "IccTag.h"
5134  #include "IccIO.h"
5135*** misc/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.h	2007-08-20 22:04:53.000000000 +0200
5136--- misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.h	2008-01-31 14:05:58.000000000 +0100
5137***************
5138*** 83,88 ****
5139--- 83,89 ----
5140  #include <string>
5141  #include <sys/types.h>
5142  #include <sys/stat.h>
5143+ #include <stdlib.h>
5144
5145  #ifdef WIN32
5146  typedef unsigned short mode_t;
5147