Return-Path: X-Original-To: apmail-incubator-ooo-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-ooo-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2496E9259 for ; Fri, 27 Jan 2012 23:15:04 +0000 (UTC) Received: (qmail 2522 invoked by uid 500); 27 Jan 2012 23:15:04 -0000 Delivered-To: apmail-incubator-ooo-commits-archive@incubator.apache.org Received: (qmail 2490 invoked by uid 500); 27 Jan 2012 23:15:03 -0000 Mailing-List: contact ooo-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ooo-dev@incubator.apache.org Delivered-To: mailing list ooo-commits@incubator.apache.org Received: (qmail 2483 invoked by uid 99); 27 Jan 2012 23:15:03 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 27 Jan 2012 23:15:03 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 27 Jan 2012 23:14:52 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id AD3A02388900; Fri, 27 Jan 2012 23:14:29 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r1236920 [2/2] - /incubator/ooo/trunk/main/icc/SampleICC-1.3.2.patch Date: Fri, 27 Jan 2012 23:14:29 -0000 To: ooo-commits@incubator.apache.org From: pfg@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120127231429.AD3A02388900@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Modified: incubator/ooo/trunk/main/icc/SampleICC-1.3.2.patch URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/icc/SampleICC-1.3.2.patch?rev=1236920&r1=1236919&r2=1236920&view=diff ============================================================================== --- incubator/ooo/trunk/main/icc/SampleICC-1.3.2.patch (original) +++ incubator/ooo/trunk/main/icc/SampleICC-1.3.2.patch Fri Jan 27 23:14:28 2012 @@ -1,3187 +1,5146 @@ -diff -ru misc/SampleICC-1.3.2/Contrib/CmdLine/Makefile.in misc/build/SampleICC-1.3.2/Contrib/CmdLine/Makefile.in ---- misc/SampleICC-1.3.2/Contrib/CmdLine/Makefile.in 2007-08-20 15:10:34.000000000 -0500 -+++ misc/build/SampleICC-1.3.2/Contrib/CmdLine/Makefile.in 2012-01-24 10:39:23.000000000 -0500 -@@ -102,15 +102,11 @@ - install_sh = @install_sh@ - - SUBDIRS = \ -- create_CLUT_profile \ -- create_CLUT_profile_from_probe \ -- create_display_profile -+ create_sRGB_profile - - - DIST_SUBDIRS = \ -- create_CLUT_profile \ -- create_CLUT_profile_from_probe \ -- create_display_profile -+ create_sRGB_profile - - subdir = Contrib/CmdLine - mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -Only in misc/build/SampleICC-1.3.2/Contrib/CmdLine: create_sRGB_profile -diff -ru misc/SampleICC-1.3.2/Contrib/ICC_utils/CLUT.cpp misc/build/SampleICC-1.3.2/Contrib/ICC_utils/CLUT.cpp ---- misc/SampleICC-1.3.2/Contrib/ICC_utils/CLUT.cpp 2007-08-20 15:04:53.000000000 -0500 -+++ misc/build/SampleICC-1.3.2/Contrib/ICC_utils/CLUT.cpp 2012-01-24 10:39:23.000000000 -0500 -@@ -77,6 +77,8 @@ - // - ////////////////////////////////////////////////////////////////////// - -+#include -+#include - #include - #include - #include -diff -ru misc/SampleICC-1.3.2/Contrib/ICC_utils/ICC_tool_exception.h misc/build/SampleICC-1.3.2/Contrib/ICC_utils/ICC_tool_exception.h ---- misc/SampleICC-1.3.2/Contrib/ICC_utils/ICC_tool_exception.h 2007-08-20 15:04:54.000000000 -0500 -+++ misc/build/SampleICC-1.3.2/Contrib/ICC_utils/ICC_tool_exception.h 2012-01-24 10:39:23.000000000 -0500 -@@ -83,6 +83,7 @@ - #ifndef __DEFINED_ICC_TOOL_EXCEPTION_H__ - #define __DEFINED_ICC_TOOL_EXCEPTION_H__ - -+#include - #include - #include - -diff -ru misc/SampleICC-1.3.2/Contrib/ICC_utils/Makefile.in misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Makefile.in ---- misc/SampleICC-1.3.2/Contrib/ICC_utils/Makefile.in 2007-08-20 15:10:35.000000000 -0500 -+++ misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Makefile.in 2012-01-24 10:39:23.000000000 -0500 -@@ -133,7 +133,7 @@ - CONFIG_CLEAN_FILES = - LTLIBRARIES = $(lib_LTLIBRARIES) - --libICC_utils_la_LIBADD = -+libICC_utils_la_LIBADD = $(LDADD) - am_libICC_utils_la_OBJECTS = Stubs.lo CAT.lo CLUT.lo CLUT_stuffer.lo \ - ICC_tool_exception.lo Vetters.lo - libICC_utils_la_OBJECTS = $(am_libICC_utils_la_OBJECTS) -diff -ru misc/SampleICC-1.3.2/Contrib/ICC_utils/Stubs.h misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Stubs.h ---- misc/SampleICC-1.3.2/Contrib/ICC_utils/Stubs.h 2007-08-20 15:04:53.000000000 -0500 -+++ misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Stubs.h 2012-01-24 10:39:23.000000000 -0500 -@@ -130,7 +130,7 @@ - - // use one of these to force desired sort order in assoc. containers of DPX - bool -- DPX::operator<(const DPX& p) const -+ operator<(const DPX& p) const - { - return (r_ != p.r_) ? (r_ < p.r_) : ((g_ != p.g_) ? (g_ < p.g_) : (b_ < p.b_)); - } -diff -ru misc/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.cpp misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.cpp ---- misc/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.cpp 2007-08-20 15:04:54.000000000 -0500 -+++ misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.cpp 2012-01-24 10:39:23.000000000 -0500 -@@ -1,322 +1,329 @@ --/* -- File: Vetters.cpp -- -- Contains: Utility functions to handle common argument-checking tasks, in a -- way that hides platform-specific details from higher-level code. -- -- Version: V1 -- -- Copyright: ?? see below -- */ -- --/* -- * The ICC Software License, Version 0.1 -- * -- * -- * Copyright (c) 2003-2006 The International Color Consortium. All rights -- * reserved. -- * -- * Redistribution and use in source and binary forms, with or without -- * modification, are permitted provided that the following conditions -- * are met: -- * -- * 1. Redistributions of source code must retain the above copyright -- * notice, this list of conditions and the following disclaimer. -- * -- * 2. Redistributions in binary form must reproduce the above copyright -- * notice, this list of conditions and the following disclaimer in -- * the documentation and/or other materials provided with the -- * distribution. -- * -- * 3. The end-user documentation included with the redistribution, -- * if any, must include the following acknowledgment: -- * "This product includes software developed by the -- * The International Color Consortium (www.color.org)" -- * Alternately, this acknowledgment may appear in the software itself, -- * if and wherever such third-party acknowledgments normally appear. -- * -- * 4. The names "ICC" and "The International Color Consortium" must -- * not be used to imply that the ICC organization endorses or -- * promotes products derived from this software without prior -- * written permission. For written permission, please see -- * . -- * -- * -- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED -- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -- * DISCLAIMED. IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR -- * ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -- * SUCH DAMAGE. -- * ==================================================================== -- * -- * This software consists of voluntary contributions made by many -- * individuals on behalf of the The International Color Consortium. -- * -- * -- * Membership in the ICC is encouraged when this software is used for -- * commercial purposes. -- * -- * -- * For more information on The International Color Consortium, please -- * see . -- * -- * -- */ -- --////////////////////////////////////////////////////////////////////// --// HISTORY: --// --// -Initial implementation by Joseph Goldstone sumer 2007 --// --////////////////////////////////////////////////////////////////////// -- --#include "Vetters.h" -- --#include --using namespace std; -- --#ifndef WIN32 --#include --#else --#include --int strerror_r(int errnum, char *str, int strsize) --{ -- const char *errstr = strerror(errnum); -- -- if (errstr) { -- strncpy(str, errstr, strsize); -- return 0; -- } -- -- return -1; --} --#define stat _stat --#endif -- --#include "ICC_tool_exception.h" -- --const char* --path_tail(const char* const s) --{ -- const char* tail = strdup(s); -- const char* last_slash = strrchr(tail, '/'); -- if (last_slash != NULL) -- tail = last_slash + 1; -- return tail; --} -- --void --vet_as_int(const char* const s, const string& name, -- const string& description) --{ -- istringstream ss(s); -- int i; -- ss >> i; -- if (ss.fail()) -- { -- ostringstream oss; -- oss << "The " << name << " argument given, `" << s << "', cannot be parsed as" -- << " an integer. It should be an integer representing " -- << description << "."; -- throw ICC_tool_exception(oss.str()); -- } --} -- --void --vet_as_float(const char* const s, const string& name, -- const string& description) --{ -- istringstream ss(s); -- float i; -- ss >> i; -- if (ss.fail()) -- { -- ostringstream oss; -- oss << "The " << name << " argument given, `" << s << "', cannot be parsed as" -- << " a floating-point number. It should be a floating-point number" -- << " representing " << description << "."; -- throw ICC_tool_exception(oss.str()); -- } --} -- --#define STRERROR_BUF_SIZE 256 --off_t --get_size(const char* const s) --{ -- struct stat sb; -- int stat_returned = stat(s, &sb); -- if (stat_returned < 0) -- { -- int stat_errno = errno; -- char strerror_buf[STRERROR_BUF_SIZE]; -- strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE); -- ostringstream oss; -- oss << "Could not access information for file `" << s << "': " -- << strerror_buf; -- throw ICC_tool_exception(oss.str()); -- } -- return sb.st_size; --} -- --bool --check_mode(const char* const s, mode_t mode) --{ -- struct stat sb; -- int stat_returned = stat(s, &sb); -- if (stat_returned < 0) -- { -- int stat_errno = errno; -- char strerror_buf[STRERROR_BUF_SIZE]; -- strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE); -- ostringstream oss; -- oss << "Could not access information for file `" << s << "': " -- << strerror_buf; -- throw ICC_tool_exception(oss.str()); -- } -- return (sb.st_mode & mode) != 0; --} -- --bool --is_existent_file_pathname(const char* const s) --{ -- struct stat sb; -- return stat(s, &sb) == 0; --} -- --bool --is_plain_file_pathname(const char* const s) --{ -- return check_mode(s, S_IFREG); --} -- --bool --is_directory(const char* const s) --{ -- return check_mode(s, S_IFDIR); --} -- --const char* const --containing_directory(const char* const s) --{ -- if (strlen(s) == 0) -- throw ICC_tool_exception("name of directory passed to containing_directory" -- " function was zero-length."); -- char* tmp = strdup(s); -- // lop off any trailing seperator -- if (tmp[strlen(tmp) - 1] == '/') -- tmp[strlen(tmp) - 1] = 0; -- if (strlen(tmp) == 0) -- throw ICC_tool_exception("root directory (which has no containing" -- " directory) passed to containing_directory" -- " function"); -- char* idx = strrchr(tmp, '/'); -- if (idx != NULL) -- { -- *idx = 0; -- return tmp; -- } -- char* current_directory = getenv("PWD"); -- if (current_directory == NULL) -- throw ICC_tool_exception("pathname passed to containing_directory has no" -- " embedded seperator, and there is no value for" -- " PWD defined in the environment"); -- return strdup(current_directory); --} -- --bool --is_readable_pathname(const char* const s) --{ -- return check_mode(s, S_IRUSR) -- || check_mode(s, S_IRGRP) -- || check_mode(s, S_IROTH); --} -- --bool --is_writable_pathname(const char* const s) --{ -- return check_mode(s, S_IWUSR) -- || check_mode(s, S_IWGRP) -- || check_mode(s, S_IWOTH); --} -- --bool --is_pathname_of_empty_file(const char* const s) --{ -- return get_size(s) > 0; --} -- --void --vet_input_file_pathname(const char* const s, const string& name, -- const string& description) --{ -- if (! is_plain_file_pathname(s)) -- { -- ostringstream oss; -- oss << "The " << name << " argument given, `" << s << "', is not the pathname" -- << " of a plain file (i.e. it is the pathname of a directory, or of a" -- << " symbolic link, or of some other sort of special file.) It should be" -- << " " << description << "."; -- throw ICC_tool_exception(oss.str()); -- } -- if (! is_readable_pathname(s)) -- { -- ostringstream oss; -- oss << "The " << name << " argument given, `" << s << "', is not the pathname" -- << " of a readable file (i.e. you do not have permission to read that" -- << " file, or you do not have permission to read some directory" -- << " containing that file."; -- throw ICC_tool_exception(oss.str()); -- } -- if (! is_pathname_of_empty_file(s)) -- { -- ostringstream oss; -- oss << "The " << name << " argument given, `" << s << "', is not the pathname" -- << " of an existing readable file, but that file is of zero length." -- << " The argument should be " << description << "."; -- throw ICC_tool_exception(oss.str()); -- } --} -- --void --vet_output_file_pathname(const char* const s, const string& name, -- const string& description, -- bool silent_overwrite_OK) --{ -- const char* const container = containing_directory(s); -- if (! is_writable_pathname(container)) -- { -- ostringstream oss; -- oss << "The " << name << " argument given, `" << s << "', has a directory" -- << " component which is not writable." -- << " The argument should be " << description << "."; -- throw ICC_tool_exception(oss.str()); -- } -- if (is_existent_file_pathname(s)) -- { -- if (is_plain_file_pathname(s)) -- if (is_writable_pathname(s)) -- { -- if (! silent_overwrite_OK) -- { -- ostringstream oss; -- oss << "The " << name << " argument given, `" << s << "' is of an existing" -- << " file." -- << " The argument should be " << description << "."; -- throw ICC_tool_exception(oss.str()); -- } -- } else { -- ostringstream oss; -- oss << "The " << name << " argument given, `" << s << "' is of an existing" -- << " file which is not writable." -- << " The argument should be " << description << "."; -- throw ICC_tool_exception(oss.str()); -- } -- } --} -\ No newline at end of file -+/* -+ File: Vetters.cpp -+ -+ Contains: Utility functions to handle common argument-checking tasks, in a -+ way that hides platform-specific details from higher-level code. -+ -+ Version: V1 -+ -+ Copyright: ?? see below -+ */ -+ -+/* -+ * The ICC Software License, Version 0.1 -+ * -+ * -+ * Copyright (c) 2003-2006 The International Color Consortium. All rights -+ * reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in -+ * the documentation and/or other materials provided with the -+ * distribution. -+ * -+ * 3. The end-user documentation included with the redistribution, -+ * if any, must include the following acknowledgment: -+ * "This product includes software developed by the -+ * The International Color Consortium (www.color.org)" -+ * Alternately, this acknowledgment may appear in the software itself, -+ * if and wherever such third-party acknowledgments normally appear. -+ * -+ * 4. The names "ICC" and "The International Color Consortium" must -+ * not be used to imply that the ICC organization endorses or -+ * promotes products derived from this software without prior -+ * written permission. For written permission, please see -+ * . -+ * -+ * -+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED -+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+ * DISCLAIMED. IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR -+ * ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ * ==================================================================== -+ * -+ * This software consists of voluntary contributions made by many -+ * individuals on behalf of the The International Color Consortium. -+ * -+ * -+ * Membership in the ICC is encouraged when this software is used for -+ * commercial purposes. -+ * -+ * -+ * For more information on The International Color Consortium, please -+ * see . -+ * -+ * -+ */ -+ -+////////////////////////////////////////////////////////////////////// -+// HISTORY: -+// -+// -Initial implementation by Joseph Goldstone sumer 2007 -+// -+////////////////////////////////////////////////////////////////////// -+ -+#include "Vetters.h" -+ -+#include -+using namespace std; -+ -+#ifndef WIN32 -+#ifdef sun -+#include -+#else -+#include -+#endif -+#else -+#include -+#define stat _stat -+#endif -+ -+#if defined WIN32 || defined sun -+int strerror_r(int errnum, char *str, int strsize) -+{ -+ const char *errstr = strerror(errnum); -+ -+ if (errstr) { -+ strncpy(str, errstr, strsize); -+ return 0; -+ } -+ -+ return -1; -+} -+#endif -+ -+#include "ICC_tool_exception.h" -+ -+const char* -+path_tail(const char* const s) -+{ -+ const char* tail = strdup(s); -+ const char* last_slash = strrchr(tail, '/'); -+ if (last_slash != NULL) -+ tail = last_slash + 1; -+ return tail; -+} -+ -+void -+vet_as_int(const char* const s, const string& name, -+ const string& description) -+{ -+ istringstream ss(s); -+ int i; -+ ss >> i; -+ if (ss.fail()) -+ { -+ ostringstream oss; -+ oss << "The " << name << " argument given, `" << s << "', cannot be parsed as" -+ << " an integer. It should be an integer representing " -+ << description << "."; -+ throw ICC_tool_exception(oss.str()); -+ } -+} -+ -+void -+vet_as_float(const char* const s, const string& name, -+ const string& description) -+{ -+ istringstream ss(s); -+ float i; -+ ss >> i; -+ if (ss.fail()) -+ { -+ ostringstream oss; -+ oss << "The " << name << " argument given, `" << s << "', cannot be parsed as" -+ << " a floating-point number. It should be a floating-point number" -+ << " representing " << description << "."; -+ throw ICC_tool_exception(oss.str()); -+ } -+} -+ -+#define STRERROR_BUF_SIZE 256 -+off_t -+get_size(const char* const s) -+{ -+ struct stat sb; -+ int stat_returned = stat(s, &sb); -+ if (stat_returned < 0) -+ { -+ int stat_errno = errno; -+ char strerror_buf[STRERROR_BUF_SIZE]; -+ strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE); -+ ostringstream oss; -+ oss << "Could not access information for file `" << s << "': " -+ << strerror_buf; -+ throw ICC_tool_exception(oss.str()); -+ } -+ return sb.st_size; -+} -+ -+bool -+check_mode(const char* const s, mode_t mode) -+{ -+ struct stat sb; -+ int stat_returned = stat(s, &sb); -+ if (stat_returned < 0) -+ { -+ int stat_errno = errno; -+ char strerror_buf[STRERROR_BUF_SIZE]; -+ strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE); -+ ostringstream oss; -+ oss << "Could not access information for file `" << s << "': " -+ << strerror_buf; -+ throw ICC_tool_exception(oss.str()); -+ } -+ return (sb.st_mode & mode) != 0; -+} -+ -+bool -+is_existent_file_pathname(const char* const s) -+{ -+ struct stat sb; -+ return stat(s, &sb) == 0; -+} -+ -+bool -+is_plain_file_pathname(const char* const s) -+{ -+ return check_mode(s, S_IFREG); -+} -+ -+bool -+is_directory(const char* const s) -+{ -+ return check_mode(s, S_IFDIR); -+} -+ -+const char* const -+containing_directory(const char* const s) -+{ -+ if (strlen(s) == 0) -+ throw ICC_tool_exception("name of directory passed to containing_directory" -+ " function was zero-length."); -+ char* tmp = strdup(s); -+ // lop off any trailing seperator -+ if (tmp[strlen(tmp) - 1] == '/') -+ tmp[strlen(tmp) - 1] = 0; -+ if (strlen(tmp) == 0) -+ throw ICC_tool_exception("root directory (which has no containing" -+ " directory) passed to containing_directory" -+ " function"); -+ char* idx = strrchr(tmp, '/'); -+ if (idx != NULL) -+ { -+ *idx = 0; -+ return tmp; -+ } -+ char* current_directory = getenv("PWD"); -+ if (current_directory == NULL) -+ throw ICC_tool_exception("pathname passed to containing_directory has no" -+ " embedded seperator, and there is no value for" -+ " PWD defined in the environment"); -+ return strdup(current_directory); -+} -+ -+bool -+is_readable_pathname(const char* const s) -+{ -+ return check_mode(s, S_IRUSR) -+ || check_mode(s, S_IRGRP) -+ || check_mode(s, S_IROTH); -+} -+ -+bool -+is_writable_pathname(const char* const s) -+{ -+ return check_mode(s, S_IWUSR) -+ || check_mode(s, S_IWGRP) -+ || check_mode(s, S_IWOTH); -+} -+ -+bool -+is_pathname_of_empty_file(const char* const s) -+{ -+ return get_size(s) > 0; -+} -+ -+void -+vet_input_file_pathname(const char* const s, const string& name, -+ const string& description) -+{ -+ if (! is_plain_file_pathname(s)) -+ { -+ ostringstream oss; -+ oss << "The " << name << " argument given, `" << s << "', is not the pathname" -+ << " of a plain file (i.e. it is the pathname of a directory, or of a" -+ << " symbolic link, or of some other sort of special file.) It should be" -+ << " " << description << "."; -+ throw ICC_tool_exception(oss.str()); -+ } -+ if (! is_readable_pathname(s)) -+ { -+ ostringstream oss; -+ oss << "The " << name << " argument given, `" << s << "', is not the pathname" -+ << " of a readable file (i.e. you do not have permission to read that" -+ << " file, or you do not have permission to read some directory" -+ << " containing that file."; -+ throw ICC_tool_exception(oss.str()); -+ } -+ if (! is_pathname_of_empty_file(s)) -+ { -+ ostringstream oss; -+ oss << "The " << name << " argument given, `" << s << "', is not the pathname" -+ << " of an existing readable file, but that file is of zero length." -+ << " The argument should be " << description << "."; -+ throw ICC_tool_exception(oss.str()); -+ } -+} -+ -+void -+vet_output_file_pathname(const char* const s, const string& name, -+ const string& description, -+ bool silent_overwrite_OK) -+{ -+ const char* const container = containing_directory(s); -+ if (! is_writable_pathname(container)) -+ { -+ ostringstream oss; -+ oss << "The " << name << " argument given, `" << s << "', has a directory" -+ << " component which is not writable." -+ << " The argument should be " << description << "."; -+ throw ICC_tool_exception(oss.str()); -+ } -+ if (is_existent_file_pathname(s)) -+ { -+ if (is_plain_file_pathname(s)) -+ if (is_writable_pathname(s)) -+ { -+ if (! silent_overwrite_OK) -+ { -+ ostringstream oss; -+ oss << "The " << name << " argument given, `" << s << "' is of an existing" -+ << " file." -+ << " The argument should be " << description << "."; -+ throw ICC_tool_exception(oss.str()); -+ } -+ } else { -+ ostringstream oss; -+ oss << "The " << name << " argument given, `" << s << "' is of an existing" -+ << " file which is not writable." -+ << " The argument should be " << description << "."; -+ throw ICC_tool_exception(oss.str()); -+ } -+ } -+} -diff -ru misc/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.h misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.h ---- misc/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.h 2007-08-20 15:04:53.000000000 -0500 -+++ misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.h 2012-01-24 10:39:23.000000000 -0500 -@@ -83,6 +83,7 @@ - #include - #include - #include -+#include - - #ifdef WIN32 - typedef unsigned short mode_t; -Only in misc/build/SampleICC-1.3.2/Contrib/ICC_utils: makefile.mk -diff -ru misc/SampleICC-1.3.2/Contrib/Makefile.in misc/build/SampleICC-1.3.2/Contrib/Makefile.in ---- misc/SampleICC-1.3.2/Contrib/Makefile.in 2007-08-20 15:10:37.000000000 -0500 -+++ misc/build/SampleICC-1.3.2/Contrib/Makefile.in 2012-01-24 10:39:23.000000000 -0500 -@@ -103,18 +103,12 @@ - - SUBDIRS = \ - ICC_utils \ -- CmdLine \ -- examples \ -- Mac_OS_X \ -- tests -+ CmdLine - - - DIST_SUBDIRS = \ - ICC_utils \ -- CmdLine \ -- examples \ -- Mac_OS_X \ -- tests -+ CmdLine - - subdir = Contrib - mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -diff -ru misc/SampleICC-1.3.2/IccProfLib/IccCmm.cpp misc/build/SampleICC-1.3.2/IccProfLib/IccCmm.cpp ---- misc/SampleICC-1.3.2/IccProfLib/IccCmm.cpp 2007-08-20 15:05:00.000000000 -0500 -+++ misc/build/SampleICC-1.3.2/IccProfLib/IccCmm.cpp 2012-01-24 10:39:23.000000000 -0500 -@@ -79,6 +79,8 @@ - #pragma warning( disable: 4786) //disable warning in - #endif - -+#include -+#include - #include "IccCmm.h" - #include "IccTag.h" - #include "IccIO.h" -diff -ru misc/SampleICC-1.3.2/IccProfLib/IccIO.cpp misc/build/SampleICC-1.3.2/IccProfLib/IccIO.cpp ---- misc/SampleICC-1.3.2/IccProfLib/IccIO.cpp 2007-08-20 15:05:00.000000000 -0500 -+++ misc/build/SampleICC-1.3.2/IccProfLib/IccIO.cpp 2012-01-24 10:39:23.000000000 -0500 -@@ -78,7 +78,7 @@ - #include "IccIO.h" - #include "IccUtil.h" - #include --#include -+#include - #include - - #ifndef __max -diff -ru misc/SampleICC-1.3.2/IccProfLib/IccIO.h misc/build/SampleICC-1.3.2/IccProfLib/IccIO.h ---- misc/SampleICC-1.3.2/IccProfLib/IccIO.h 2007-08-20 15:05:00.000000000 -0500 -+++ misc/build/SampleICC-1.3.2/IccProfLib/IccIO.h 2012-01-24 10:39:23.000000000 -0500 -@@ -79,6 +79,7 @@ - #define _ICCIO_H - - #include "IccDefs.h" -+#include "memory" - #include "stdio.h" - - #ifdef USESAMPLEICCNAMESPACE -diff -ru misc/SampleICC-1.3.2/IccProfLib/IccMpeACS.cpp misc/build/SampleICC-1.3.2/IccProfLib/IccMpeACS.cpp ---- misc/SampleICC-1.3.2/IccProfLib/IccMpeACS.cpp 2007-08-20 15:05:00.000000000 -0500 -+++ misc/build/SampleICC-1.3.2/IccProfLib/IccMpeACS.cpp 2012-01-24 10:39:23.000000000 -0500 -@@ -136,17 +136,17 @@ - icChar sigBuf[30]; - - if (GetBAcsSig()) -- sDescription += "ELEM_bACS\r\n"; -+ sDescription += "ELEM_bACS\n"; - else -- sDescription += "ELEM_eACS\r\n"; -+ sDescription += "ELEM_eACS\n"; - - icGetSig(sigBuf, m_signature); - sDescription += " Signature = "; - sDescription += sigBuf; -- sDescription += "\r\n"; -+ sDescription += "\n"; - - if (m_pData) { -- sDescription += "\r\nData Follows:\r\n"; -+ sDescription += "\nData Follows:\n"; - - icMemDump(sDescription, m_pData, m_nDataSize); - } -diff -ru misc/SampleICC-1.3.2/IccProfLib/IccMpeBasic.cpp misc/build/SampleICC-1.3.2/IccProfLib/IccMpeBasic.cpp ---- misc/SampleICC-1.3.2/IccProfLib/IccMpeBasic.cpp 2007-08-20 15:05:00.000000000 -0500 -+++ misc/build/SampleICC-1.3.2/IccProfLib/IccMpeBasic.cpp 2012-01-24 10:39:23.000000000 -0500 -@@ -218,43 +218,43 @@ - sprintf(buf, "%.8f", m_endPoint); - sDescription += buf; - } -- sprintf(buf, "]\r\nFunctionType: %04Xh\r\n", m_nFunctionType); -+ sprintf(buf, "]\nFunctionType: %04Xh\n", m_nFunctionType); - sDescription += buf; - - switch(m_nFunctionType) { - case 0x0000: - if (m_params[1]==0.0 && m_params[2]==0.0) -- sprintf(buf, "Y = %.8f\r\n\r\n", m_params[3]); -+ sprintf(buf, "Y = %.8f\n\n", m_params[3]); - else if (m_params[0]==1.0 && m_params[1]==1.0 && m_params[2]==0.0 && m_params[3]==0.0) -- sprintf(buf, "Y = X\r\n\r\n"); -+ sprintf(buf, "Y = X\n\n"); - else if (m_params[0]==1.0 && m_params[2]==0.0) -- sprintf(buf, "Y = %.8f * X + %.8f\r\n\r\n", -+ sprintf(buf, "Y = %.8f * X + %.8f\n\n", - m_params[1], m_params[3]); - else -- sprintf(buf, "Y = (%.8f * X + %.8f)^%.4f + %.8f\r\n\r\n", -+ sprintf(buf, "Y = (%.8f * X + %.8f)^%.4f + %.8f\n\n", - m_params[1], m_params[2], m_params[0], m_params[3]); - sDescription += buf; - return; - - case 0x0001: -- sprintf(buf, "Y = %.8f * log (%.8f * (X ^ %.8f) + %.8f) + %.8f\r\n\r\n", -+ sprintf(buf, "Y = %.8f * log (%.8f * (X ^ %.8f) + %.8f) + %.8f\n\n", - m_params[1], m_params[2], m_params[0], m_params[3], m_params[4]); - sDescription += buf; - return; - - case 0x0002: -- sprintf(buf, "Y = %.8f * (%.8f ^ (%.8f * X + %.8f)) + %.8f\r\n\r\n", -+ sprintf(buf, "Y = %.8f * (%.8f ^ (%.8f * X + %.8f)) + %.8f\n\n", - m_params[0], m_params[1], m_params[2], m_params[3], m_params[4]); - sDescription += buf; - return; - - default: - int i; -- sprintf(buf, "Unknown Function with %d parameters:\r\n\r\n", m_nParameters); -+ sprintf(buf, "Unknown Function with %d parameters:\n\n", m_nParameters); - sDescription += buf; - - for (i=0; i 4) { - sReport += icValidateWarningMsg; - sReport += sSigName; -- sReport += " formula curve has too many formulaCurveSegment parameters.\r\n"; -+ sReport += " formula curve has too many formulaCurveSegment parameters.\n"; - rv = icValidateWarning; - } - break; -@@ -520,13 +520,13 @@ - if (!m_params || m_nParameters<5) { - sReport += icValidateCriticalErrorMsg; - sReport += sSigName; -- sReport += " formula curve has Invalid formulaCurveSegment parameters.\r\n"; -+ sReport += " formula curve has Invalid formulaCurveSegment parameters.\n"; - rv = icValidateCriticalError; - } - else if (m_nParameters > 5) { - sReport += icValidateWarningMsg; - sReport += sSigName; -- sReport += " formula curve has too many formulaCurveSegment parameters.\r\n"; -+ sReport += " formula curve has too many formulaCurveSegment parameters.\n"; - rv = icValidateWarning; - } - break; -@@ -535,13 +535,13 @@ - if (!m_params || m_nParameters<5) { - sReport += icValidateCriticalErrorMsg; - sReport += sSigName; -- sReport += " formula curve has Invalid formulaCurveSegment parameters.\r\n"; -+ sReport += " formula curve has Invalid formulaCurveSegment parameters.\n"; - rv = icValidateCriticalError; - } - else if (m_nParameters > 5) { - sReport += icValidateWarningMsg; - sReport += sSigName; -- sReport += " formula curve has too many formulaCurveSegment parameters.\r\n"; -+ sReport += " formula curve has too many formulaCurveSegment parameters.\n"; - rv = icValidateWarning; - } - break; -@@ -551,7 +551,7 @@ - icChar buf[128]; - sReport += icValidateCriticalErrorMsg; - sReport += sSigName; -- sprintf(buf, " formula curve uses unknown formulaCurveSegment function type %d\r\n", m_nFunctionType); -+ sprintf(buf, " formula curve uses unknown formulaCurveSegment function type %d\n", m_nFunctionType); - sReport += buf; - rv = icValidateCriticalError; - } -@@ -727,7 +727,7 @@ - sDescription += buf; - } - -- sprintf(buf, "]\r\n"); -+ sprintf(buf, "]\n"); - sDescription += buf; - } - else { -@@ -744,9 +744,9 @@ - sprintf(buf, "%.8f", m_endPoint); - sDescription += buf; - } -- sprintf(buf, "]\r\n"); -+ sprintf(buf, "]\n"); - sDescription += buf; -- sDescription += "IN OUT\r\n"; -+ sDescription += "IN OUT\n"; - - icUInt32Number i; - -@@ -754,11 +754,11 @@ - icFloatNumber last = (icFloatNumber)(m_nCount-1); - - for (i=0; ibegin(); i!=m_list->end(); i++) { - (*i)->Describe(sDescription); - } -@@ -1342,14 +1342,14 @@ - if (m_nReserved1 || m_nReserved2) { - sReport += icValidateWarningMsg; - sReport += sSigName; -- sReport += " Segmented curve has non zero reserved data.\r\n"; -+ sReport += " Segmented curve has non zero reserved data.\n"; - rv = icValidateWarning; - } - - if (m_list->size()==0) { - sReport += icValidateCriticalErrorMsg; - sReport += sSigName; -- sReport += " Has Empty CurveSegment!\r\n"; -+ sReport += " Has Empty CurveSegment!\n"; - return icValidateCriticalError; - } - -@@ -1599,11 +1599,11 @@ - icChar buf[81]; - int i; - -- sprintf(buf, "BEGIN_CURVE_SET %d\r\n", m_nInputChannels); -+ sprintf(buf, "BEGIN_CURVE_SET %d\n", m_nInputChannels); - sDescription += buf; - - for (i=0; iDescribe(sDescription); -@@ -1877,7 +1877,7 @@ - sReport += " - Element "; - sSigName = Info.GetSigName(GetType()); - sReport += sSigName; -- sReport += " Has Empty Curve Element(s)!\r\n"; -+ sReport += " Has Empty Curve Element(s)!\n"; - return icValidateCriticalError; - } - -@@ -2042,7 +2042,7 @@ - int i, j; - icFloatNumber *data = m_pMatrix; - -- sprintf(buf, "BEGIN_ELEM_MATRIX %d %d\r\n", m_nInputChannels, m_nOutputChannels); -+ sprintf(buf, "BEGIN_ELEM_MATRIX %d %d\n", m_nInputChannels, m_nOutputChannels); - sDescription += buf; - - for (j=0; j -+#include -+ -+ #define ICCUINT64 sal_uInt64 -+ #define ICCINT64 sal_Int64 -+ #define ICUINT64TYPE sal_uInt64 -+ #define ICINT64TYPE sal_Int64 -+ #define ICINT32TYPE sal_Int32 -+ #define ICUINT32TYPE sal_uInt32 -+ -+#if defined(_LITTLE_ENDIAN) -+# define ICC_BYTE_ORDER_LITTLE_ENDIAN -+#elif defined(_BIG_ENDIAN) -+# define ICC_BYTE_ORDER_BIG_ENDIAN -+#else -+# error "ENDIAN unknown" -+#endif - - #define ICCPROFLIB_API - #define ICCPROFLIB_EXTERN -diff -ru misc/SampleICC-1.3.2/IccProfLib/IccProfile.cpp misc/build/SampleICC-1.3.2/IccProfLib/IccProfile.cpp ---- misc/SampleICC-1.3.2/IccProfLib/IccProfile.cpp 2007-08-20 15:05:00.000000000 -0500 -+++ misc/build/SampleICC-1.3.2/IccProfLib/IccProfile.cpp 2012-01-24 10:39:23.000000000 -0500 -@@ -567,7 +567,7 @@ - - if (!ReadBasic(pIO)) { - sReport += icValidateCriticalErrorMsg; -- sReport += " - Unable to read profile!**\r\n\tProfile has invalid structure!\r\n"; -+ sReport += " - Unable to read profile!**\n\tProfile has invalid structure!\n"; - Cleanup(); - - return icValidateCriticalError; -@@ -576,7 +576,7 @@ - // Check profile header - if (!CheckFileSize(pIO)) { - sReport += icValidateNonCompliantMsg; -- sReport += "Bad Header File Size\r\n"; -+ sReport += "Bad Header File Size\n"; - rv = icMaxStatus(rv, icValidateNonCompliant); - } - -@@ -588,7 +588,7 @@ - CalcProfileID(pIO, &profileID); - if (strncmp((char*)profileID.ID8, (char*)m_Header.profileID.ID8, 16) != 0) { - sReport += icValidateNonCompliantMsg; -- sReport += "Bad Profile ID\r\n"; -+ sReport += "Bad Profile ID\n"; - - rv = icMaxStatus(rv, icValidateNonCompliant); - } -@@ -601,7 +601,7 @@ - sReport += icValidateCriticalErrorMsg; - sReport += " - "; - sReport += Info.GetTagSigName(i->TagInfo.sig); -- sReport += " - Tag has invalid structure!\r\n"; -+ sReport += " - Tag has invalid structure!\n"; - - rv = icMaxStatus(rv, icValidateCriticalError); - } -@@ -1026,14 +1026,14 @@ - - default: - sReport += icValidateCriticalErrorMsg; -- sprintf(buf, " - %s: Unknown profile class!\r\n", Info.GetProfileClassSigName(m_Header.deviceClass)); -+ sprintf(buf, " - %s: Unknown profile class!\n", Info.GetProfileClassSigName(m_Header.deviceClass)); - sReport += buf; - rv = icMaxStatus(rv, icValidateCriticalError); - } - - if (!Info.IsValidSpace(m_Header.colorSpace)) { - sReport += icValidateCriticalErrorMsg; -- sprintf(buf, " - %s: Unknown color space!\r\n", Info.GetColorSpaceSigName(m_Header.colorSpace)); -+ sprintf(buf, " - %s: Unknown color space!\n", Info.GetColorSpaceSigName(m_Header.colorSpace)); - sReport += buf; - rv = icMaxStatus(rv, icValidateCriticalError); - } -@@ -1041,7 +1041,7 @@ - if (m_Header.deviceClass==icSigLinkClass) { - if (!Info.IsValidSpace(m_Header.pcs)) { - sReport += icValidateCriticalErrorMsg; -- sprintf(buf, " - %s: Unknown pcs color space!\r\n", Info.GetColorSpaceSigName(m_Header.pcs)); -+ sprintf(buf, " - %s: Unknown pcs color space!\n", Info.GetColorSpaceSigName(m_Header.pcs)); - sReport += buf; - rv = icMaxStatus(rv, icValidateCriticalError); - } -@@ -1049,7 +1049,7 @@ - else { - if (m_Header.pcs!=icSigXYZData && m_Header.pcs!=icSigLabData) { - sReport += icValidateCriticalErrorMsg; -- sprintf(buf, " - %s: Invalid pcs color space!\r\n", Info.GetColorSpaceSigName(m_Header.pcs)); -+ sprintf(buf, " - %s: Invalid pcs color space!\n", Info.GetColorSpaceSigName(m_Header.pcs)); - sReport += buf; - rv = icMaxStatus(rv, icValidateCriticalError); - } -@@ -1068,7 +1068,7 @@ - - default: - sReport += icValidateWarningMsg; -- sprintf(buf, " - %s: Unknown platform signature.\r\n", Info.GetPlatformSigName(m_Header.platform)); -+ sprintf(buf, " - %s: Unknown platform signature.\n", Info.GetPlatformSigName(m_Header.platform)); - sReport += buf; - rv = icMaxStatus(rv, icValidateWarning); - } -@@ -1095,7 +1095,7 @@ - - default: - sReport += icValidateWarningMsg; -- sprintf(buf, " - %s: Unregisterd CMM signature.\r\n", Info.GetCmmSigName((icCmmSignature)m_Header.cmmId)); -+ sprintf(buf, " - %s: Unregisterd CMM signature.\n", Info.GetCmmSigName((icCmmSignature)m_Header.cmmId)); - sReport += buf; - rv = icMaxStatus(rv, icValidateWarning); - } -@@ -1109,7 +1109,7 @@ - - default: - sReport += icValidateCriticalErrorMsg; -- sprintf(buf, " - %s: Unknown rendering intent!\r\n", Info.GetRenderingIntentName((icRenderingIntent)m_Header.renderingIntent)); -+ sprintf(buf, " - %s: Unknown rendering intent!\n", Info.GetRenderingIntentName((icRenderingIntent)m_Header.renderingIntent)); - sReport += buf; - rv = icMaxStatus(rv, icValidateCriticalError); - } -@@ -1120,7 +1120,7 @@ - icFloatNumber Z = icFtoD(m_Header.illuminant.Z); - if (X<0.9640 || X>0.9644 || Y!=1.0 || Z<0.8247 || Z>0.8251) { - sReport += icValidateNonCompliantMsg; -- sReport += " - Non D50 Illuminant XYZ values.\r\n"; -+ sReport += " - Non D50 Illuminant XYZ values.\n"; - rv = icMaxStatus(rv, icValidateNonCompliant); - } - -@@ -1130,7 +1130,7 @@ - } - if (sum) { - sReport += icValidateNonCompliantMsg; -- sReport += " - Reserved value must be zero.\r\n"; -+ sReport += " - Reserved value must be zero.\n"; - rv = icMaxStatus(rv, icValidateNonCompliant); - } - -@@ -1163,7 +1163,7 @@ - { - sReport += icValidateWarningMsg; - sReport += buf; -- sReport += " - Tag exclusion test failed.\r\n"; -+ sReport += " - Tag exclusion test failed.\n"; - rv = false; - } - } -@@ -1177,7 +1177,7 @@ - { - sReport += icValidateWarningMsg; - sReport += buf; -- sReport += " - Tag exclusion test failed.\r\n"; -+ sReport += " - Tag exclusion test failed.\n"; - rv = false; - } - break; -@@ -1192,7 +1192,7 @@ - { - sReport += icValidateWarningMsg; - sReport += buf; -- sReport += " - Tag exclusion test failed.\r\n"; -+ sReport += " - Tag exclusion test failed.\n"; - rv = false; - } - break; -@@ -1234,7 +1234,7 @@ - if (!IsTypeValid(tagsig, typesig)) { - sReport += icValidateNonCompliantMsg; - sReport += buf; -- sprintf(buf," - %s: Invalid tag type (Might be critical!).\r\n", Info.GetTagTypeSigName(typesig)); -+ sprintf(buf," - %s: Invalid tag type (Might be critical!).\n", Info.GetTagTypeSigName(typesig)); - sReport += buf; - rv = icMaxStatus(rv, icValidateNonCompliant); - } -@@ -1477,7 +1477,7 @@ - { - if (m_Tags->size() <= 0) { - sReport += icValidateCriticalErrorMsg; -- sReport += "No tags present.\r\n"; -+ sReport += "No tags present.\n"; - return icValidateCriticalError; - } - -@@ -1486,7 +1486,7 @@ - if (!GetTag(icSigProfileDescriptionTag) || - !GetTag(icSigCopyrightTag)) { +*** misc/SampleICC-1.3.2/configure Mon Aug 20 22:10:59 2007 +--- misc/build/SampleICC-1.3.2/configure Fri Jan 25 14:23:09 2008 +*************** +*** 19991,19997 **** + + + +! 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/t ests/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" + cat >confcache <<\_ACEOF + # This file is a shell script that caches the results of configure + # tests run on this system so they can be shared between configure +--- 19991,19997 ---- + + + +! 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" + cat >confcache <<\_ACEOF + # This file is a shell script that caches the results of configure + # tests run on this system so they can be shared between configure +*************** +*** 20571,20578 **** + "IccProfLib/Makefile" ) CONFIG_FILES="$CONFIG_FILES IccProfLib/Makefile" ;; + "Tools/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/Makefile" ;; + "Tools/CmdLine/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/Makefile" ;; +- "Tools/CmdLine/IccApplyNamedCmm/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccApplyNamedCmm/Makefile" ;; +- "Tools/CmdLine/IccApplyProfiles/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccApplyProfiles/Makefile" ;; + "Tools/CmdLine/IccDumpProfile/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccDumpProfile/Makefile" ;; + "Tools/CmdLine/IccProfLibTest/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccProfLibTest/Makefile" ;; + "Tools/CmdLine/IccStripUnknownTags/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccStripUnknownTags/Makefile" ;; +--- 20571,20576 ---- +*************** +*** 20579,20598 **** + "Tools/CmdLine/IccV4ToMPE/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccV4ToMPE/Makefile" ;; + "Contrib/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/Makefile" ;; + "Contrib/CmdLine/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/Makefile" ;; +! "Contrib/CmdLine/create_CLUT_profile/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/create_CLUT_profile/Makefile" ;; +! "Contrib/CmdLine/create_CLUT_profile_from_probe/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/create_CLUT_profile_from_probe/Makefile" ;; +! "Contrib/CmdLine/create_display_profile/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/create_display_profile/Makefile" ;; + "Contrib/ICC_utils/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/ICC_utils/Makefile" ;; +- "Contrib/Mac_OS_X/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/Mac_OS_X/Makefile" ;; +- "Contrib/Mac_OS_X/create_probe/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/Mac_OS_X/create_probe/Makefile" ;; +- "Contrib/Mac_OS_X/extract_probe_data/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/Mac_OS_X/extract_probe_data/Makefile" ;; +- "Contrib/examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/examples/Makefile" ;; +- "Contrib/examples/RSR/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/examples/RSR/Makefile" ;; +- "Contrib/tests/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/tests/Makefile" ;; +- "Contrib/tests/flatten_AToB_tag/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/tests/flatten_AToB_tag/Makefile" ;; +- "Contrib/tests/generate_device_codes/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/tests/generate_device_codes/Makefile" ;; +- "Contrib/tests/reconstruct_measurements/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/tests/reconstruct_measurements/Makefile" ;; +- "Contrib/tests/round_trip_PCS_LAB/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/tests/round_trip_PCS_LAB/Makefile" ;; + "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 + echo "$as_me: error: invalid argument: $ac_config_target" >&2;} +--- 20577,20584 ---- + "Tools/CmdLine/IccV4ToMPE/Makefile" ) CONFIG_FILES="$CONFIG_FILES Tools/CmdLine/IccV4ToMPE/Makefile" ;; + "Contrib/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/Makefile" ;; + "Contrib/CmdLine/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/Makefile" ;; +! "Contrib/CmdLine/create_sRGB_profile/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/CmdLine/create_sRGB_profile/Makefile" ;; + "Contrib/ICC_utils/Makefile" ) CONFIG_FILES="$CONFIG_FILES Contrib/ICC_utils/Makefile" ;; + "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 + echo "$as_me: error: invalid argument: $ac_config_target" >&2;} +*** misc/SampleICC-1.3.2/Contrib/Makefile.in Mon Aug 20 22:10:37 2007 +--- misc/build/SampleICC-1.3.2/Contrib/Makefile.in Fri Jan 25 14:23:09 2008 +*************** +*** 103,120 **** + + SUBDIRS = \ + ICC_utils \ +! CmdLine \ +! examples \ +! Mac_OS_X \ +! tests + + + DIST_SUBDIRS = \ + ICC_utils \ +! CmdLine \ +! examples \ +! Mac_OS_X \ +! tests + + subdir = Contrib + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +--- 103,114 ---- + + SUBDIRS = \ + ICC_utils \ +! CmdLine + + + DIST_SUBDIRS = \ + ICC_utils \ +! CmdLine + + subdir = Contrib + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +*** misc/SampleICC-1.3.2/Contrib/CmdLine/Makefile.in Mon Aug 20 22:10:34 2007 +--- misc/build/SampleICC-1.3.2/Contrib/CmdLine/Makefile.in Fri Jan 25 14:23:09 2008 +*************** +*** 102,116 **** + install_sh = @install_sh@ + + SUBDIRS = \ +! create_CLUT_profile \ +! create_CLUT_profile_from_probe \ +! create_display_profile + + + DIST_SUBDIRS = \ +! create_CLUT_profile \ +! create_CLUT_profile_from_probe \ +! create_display_profile + + subdir = Contrib/CmdLine + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +--- 102,112 ---- + install_sh = @install_sh@ + + SUBDIRS = \ +! create_sRGB_profile + + + DIST_SUBDIRS = \ +! create_sRGB_profile + + subdir = Contrib/CmdLine + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +*** misc/SampleICC-1.3.2/Contrib/ICC_utils/Makefile.in Mon Aug 20 22:10:35 2007 +--- misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Makefile.in Fri Jan 25 14:23:09 2008 +*************** +*** 133,139 **** + CONFIG_CLEAN_FILES = + LTLIBRARIES = $(lib_LTLIBRARIES) + +! libICC_utils_la_LIBADD = + am_libICC_utils_la_OBJECTS = Stubs.lo CAT.lo CLUT.lo CLUT_stuffer.lo \ + ICC_tool_exception.lo Vetters.lo + libICC_utils_la_OBJECTS = $(am_libICC_utils_la_OBJECTS) +--- 133,139 ---- + CONFIG_CLEAN_FILES = + LTLIBRARIES = $(lib_LTLIBRARIES) + +! libICC_utils_la_LIBADD = $(LDADD) + am_libICC_utils_la_OBJECTS = Stubs.lo CAT.lo CLUT.lo CLUT_stuffer.lo \ + ICC_tool_exception.lo Vetters.lo + libICC_utils_la_OBJECTS = $(am_libICC_utils_la_OBJECTS) +*** misc/SampleICC-1.3.2/Contrib/ICC_utils/Stubs.h Mon Aug 20 22:04:53 2007 +--- misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Stubs.h Fri Jan 25 14:23:09 2008 +*************** +*** 130,136 **** + + // use one of these to force desired sort order in assoc. containers of DPX + bool +! DPX::operator<(const DPX& p) const + { + return (r_ != p.r_) ? (r_ < p.r_) : ((g_ != p.g_) ? (g_ < p.g_) : (b_ < p.b_)); + } +--- 130,136 ---- + + // use one of these to force desired sort order in assoc. containers of DPX + bool +! operator<(const DPX& p) const + { + return (r_ != p.r_) ? (r_ < p.r_) : ((g_ != p.g_) ? (g_ < p.g_) : (b_ < p.b_)); + } +*** misc/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.cpp Mon Aug 20 22:04:54 2007 +--- misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.cpp Fri Jan 25 14:57:06 2008 +*************** +*** 1,322 **** +! /* +! File: Vetters.cpp +! +! Contains: Utility functions to handle common argument-checking tasks, in a +! way that hides platform-specific details from higher-level code. +! +! Version: V1 +! +! Copyright: © see below +! */ +! +! /* +! * The ICC Software License, Version 0.1 +! * +! * +! * Copyright (c) 2003-2006 The International Color Consortium. All rights +! * reserved. +! * +! * Redistribution and use in source and binary forms, with or without +! * modification, are permitted provided that the following conditions +! * are met: +! * +! * 1. Redistributions of source code must retain the above copyright +! * notice, this list of conditions and the following disclaimer. +! * +! * 2. Redistributions in binary form must reproduce the above copyright +! * notice, this list of conditions and the following disclaimer in +! * the documentation and/or other materials provided with the +! * distribution. +! * +! * 3. The end-user documentation included with the redistribution, +! * if any, must include the following acknowledgment: +! * "This product includes software developed by the +! * The International Color Consortium (www.color.org)" +! * Alternately, this acknowledgment may appear in the software itself, +! * if and wherever such third-party acknowledgments normally appear. +! * +! * 4. The names "ICC" and "The International Color Consortium" must +! * not be used to imply that the ICC organization endorses or +! * promotes products derived from this software without prior +! * written permission. For written permission, please see +! * . +! * +! * +! * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +! * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +! * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +! * DISCLAIMED. IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR +! * ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +! * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +! * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +! * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +! * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +! * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +! * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +! * SUCH DAMAGE. +! * ==================================================================== +! * +! * This software consists of voluntary contributions made by many +! * individuals on behalf of the The International Color Consortium. +! * +! * +! * Membership in the ICC is encouraged when this software is used for +! * commercial purposes. +! * +! * +! * For more information on The International Color Consortium, please +! * see . +! * +! * +! */ +! +! ////////////////////////////////////////////////////////////////////// +! // HISTORY: +! // +! // -Initial implementation by Joseph Goldstone sumer 2007 +! // +! ////////////////////////////////////////////////////////////////////// +! +! #include "Vetters.h" +! +! #include +! using namespace std; +! +! #ifndef WIN32 +! #include +! #else +! #include +! int strerror_r(int errnum, char *str, int strsize) +! { +! const char *errstr = strerror(errnum); +! +! if (errstr) { +! strncpy(str, errstr, strsize); +! return 0; +! } +! +! return -1; +! } +! #define stat _stat +! #endif +! +! #include "ICC_tool_exception.h" +! +! const char* +! path_tail(const char* const s) +! { +! const char* tail = strdup(s); +! const char* last_slash = strrchr(tail, '/'); +! if (last_slash != NULL) +! tail = last_slash + 1; +! return tail; +! } +! +! void +! vet_as_int(const char* const s, const string& name, +! const string& description) +! { +! istringstream ss(s); +! int i; +! ss >> i; +! if (ss.fail()) +! { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "', cannot be parsed as" +! << " an integer. It should be an integer representing " +! << description << "."; +! throw ICC_tool_exception(oss.str()); +! } +! } +! +! void +! vet_as_float(const char* const s, const string& name, +! const string& description) +! { +! istringstream ss(s); +! float i; +! ss >> i; +! if (ss.fail()) +! { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "', cannot be parsed as" +! << " a floating-point number. It should be a floating-point number" +! << " representing " << description << "."; +! throw ICC_tool_exception(oss.str()); +! } +! } +! +! #define STRERROR_BUF_SIZE 256 +! off_t +! get_size(const char* const s) +! { +! struct stat sb; +! int stat_returned = stat(s, &sb); +! if (stat_returned < 0) +! { +! int stat_errno = errno; +! char strerror_buf[STRERROR_BUF_SIZE]; +! strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE); +! ostringstream oss; +! oss << "Could not access information for file `" << s << "': " +! << strerror_buf; +! throw ICC_tool_exception(oss.str()); +! } +! return sb.st_size; +! } +! +! bool +! check_mode(const char* const s, mode_t mode) +! { +! struct stat sb; +! int stat_returned = stat(s, &sb); +! if (stat_returned < 0) +! { +! int stat_errno = errno; +! char strerror_buf[STRERROR_BUF_SIZE]; +! strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE); +! ostringstream oss; +! oss << "Could not access information for file `" << s << "': " +! << strerror_buf; +! throw ICC_tool_exception(oss.str()); +! } +! return (sb.st_mode & mode) != 0; +! } +! +! bool +! is_existent_file_pathname(const char* const s) +! { +! struct stat sb; +! return stat(s, &sb) == 0; +! } +! +! bool +! is_plain_file_pathname(const char* const s) +! { +! return check_mode(s, S_IFREG); +! } +! +! bool +! is_directory(const char* const s) +! { +! return check_mode(s, S_IFDIR); +! } +! +! const char* const +! containing_directory(const char* const s) +! { +! if (strlen(s) == 0) +! throw ICC_tool_exception("name of directory passed to containing_directory" +! " function was zero-length."); +! char* tmp = strdup(s); +! // lop off any trailing seperator +! if (tmp[strlen(tmp) - 1] == '/') +! tmp[strlen(tmp) - 1] = 0; +! if (strlen(tmp) == 0) +! throw ICC_tool_exception("root directory (which has no containing" +! " directory) passed to containing_directory" +! " function"); +! char* idx = strrchr(tmp, '/'); +! if (idx != NULL) +! { +! *idx = 0; +! return tmp; +! } +! char* current_directory = getenv("PWD"); +! if (current_directory == NULL) +! throw ICC_tool_exception("pathname passed to containing_directory has no" +! " embedded seperator, and there is no value for" +! " PWD defined in the environment"); +! return strdup(current_directory); +! } +! +! bool +! is_readable_pathname(const char* const s) +! { +! return check_mode(s, S_IRUSR) +! || check_mode(s, S_IRGRP) +! || check_mode(s, S_IROTH); +! } +! +! bool +! is_writable_pathname(const char* const s) +! { +! return check_mode(s, S_IWUSR) +! || check_mode(s, S_IWGRP) +! || check_mode(s, S_IWOTH); +! } +! +! bool +! is_pathname_of_empty_file(const char* const s) +! { +! return get_size(s) > 0; +! } +! +! void +! vet_input_file_pathname(const char* const s, const string& name, +! const string& description) +! { +! if (! is_plain_file_pathname(s)) +! { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "', is not the pathname" +! << " of a plain file (i.e. it is the pathname of a directory, or of a" +! << " symbolic link, or of some other sort of special file.) It should be" +! << " " << description << "."; +! throw ICC_tool_exception(oss.str()); +! } +! if (! is_readable_pathname(s)) +! { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "', is not the pathname" +! << " of a readable file (i.e. you do not have permission to read that" +! << " file, or you do not have permission to read some directory" +! << " containing that file."; +! throw ICC_tool_exception(oss.str()); +! } +! if (! is_pathname_of_empty_file(s)) +! { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "', is not the pathname" +! << " of an existing readable file, but that file is of zero length." +! << " The argument should be " << description << "."; +! throw ICC_tool_exception(oss.str()); +! } +! } +! +! void +! vet_output_file_pathname(const char* const s, const string& name, +! const string& description, +! bool silent_overwrite_OK) +! { +! const char* const container = containing_directory(s); +! if (! is_writable_pathname(container)) +! { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "', has a directory" +! << " component which is not writable." +! << " The argument should be " << description << "."; +! throw ICC_tool_exception(oss.str()); +! } +! if (is_existent_file_pathname(s)) +! { +! if (is_plain_file_pathname(s)) +! if (is_writable_pathname(s)) +! { +! if (! silent_overwrite_OK) +! { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "' is of an existing" +! << " file." +! << " The argument should be " << description << "."; +! throw ICC_tool_exception(oss.str()); +! } +! } else { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "' is of an existing" +! << " file which is not writable." +! << " The argument should be " << description << "."; +! throw ICC_tool_exception(oss.str()); +! } +! } +! } +--- 1,329 ---- +! /* +! File: Vetters.cpp +! +! Contains: Utility functions to handle common argument-checking tasks, in a +! way that hides platform-specific details from higher-level code. +! +! Version: V1 +! +! Copyright: © see below +! */ +! +! /* +! * The ICC Software License, Version 0.1 +! * +! * +! * Copyright (c) 2003-2006 The International Color Consortium. All rights +! * reserved. +! * +! * Redistribution and use in source and binary forms, with or without +! * modification, are permitted provided that the following conditions +! * are met: +! * +! * 1. Redistributions of source code must retain the above copyright +! * notice, this list of conditions and the following disclaimer. +! * +! * 2. Redistributions in binary form must reproduce the above copyright +! * notice, this list of conditions and the following disclaimer in +! * the documentation and/or other materials provided with the +! * distribution. +! * +! * 3. The end-user documentation included with the redistribution, +! * if any, must include the following acknowledgment: +! * "This product includes software developed by the +! * The International Color Consortium (www.color.org)" +! * Alternately, this acknowledgment may appear in the software itself, +! * if and wherever such third-party acknowledgments normally appear. +! * +! * 4. The names "ICC" and "The International Color Consortium" must +! * not be used to imply that the ICC organization endorses or +! * promotes products derived from this software without prior +! * written permission. For written permission, please see +! * . +! * +! * +! * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +! * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +! * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +! * DISCLAIMED. IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR +! * ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +! * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +! * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +! * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +! * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +! * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +! * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +! * SUCH DAMAGE. +! * ==================================================================== +! * +! * This software consists of voluntary contributions made by many +! * individuals on behalf of the The International Color Consortium. +! * +! * +! * Membership in the ICC is encouraged when this software is used for +! * commercial purposes. +! * +! * +! * For more information on The International Color Consortium, please +! * see . +! * +! * +! */ +! +! ////////////////////////////////////////////////////////////////////// +! // HISTORY: +! // +! // -Initial implementation by Joseph Goldstone sumer 2007 +! // +! ////////////////////////////////////////////////////////////////////// +! +! #include "Vetters.h" +! +! #include +! using namespace std; +! +! #ifndef WIN32 +! #ifdef sun +! #include +! #else +! #include +! #endif +! #else +! #include +! #define stat _stat +! #endif +! +! #if defined WIN32 || defined sun +! int strerror_r(int errnum, char *str, int strsize) +! { +! const char *errstr = strerror(errnum); +! +! if (errstr) { +! strncpy(str, errstr, strsize); +! return 0; +! } +! +! return -1; +! } +! #endif +! +! #include "ICC_tool_exception.h" +! +! const char* +! path_tail(const char* const s) +! { +! const char* tail = strdup(s); +! const char* last_slash = strrchr(tail, '/'); +! if (last_slash != NULL) +! tail = last_slash + 1; +! return tail; +! } +! +! void +! vet_as_int(const char* const s, const string& name, +! const string& description) +! { +! istringstream ss(s); +! int i; +! ss >> i; +! if (ss.fail()) +! { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "', cannot be parsed as" +! << " an integer. It should be an integer representing " +! << description << "."; +! throw ICC_tool_exception(oss.str()); +! } +! } +! +! void +! vet_as_float(const char* const s, const string& name, +! const string& description) +! { +! istringstream ss(s); +! float i; +! ss >> i; +! if (ss.fail()) +! { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "', cannot be parsed as" +! << " a floating-point number. It should be a floating-point number" +! << " representing " << description << "."; +! throw ICC_tool_exception(oss.str()); +! } +! } +! +! #define STRERROR_BUF_SIZE 256 +! off_t +! get_size(const char* const s) +! { +! struct stat sb; +! int stat_returned = stat(s, &sb); +! if (stat_returned < 0) +! { +! int stat_errno = errno; +! char strerror_buf[STRERROR_BUF_SIZE]; +! strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE); +! ostringstream oss; +! oss << "Could not access information for file `" << s << "': " +! << strerror_buf; +! throw ICC_tool_exception(oss.str()); +! } +! return sb.st_size; +! } +! +! bool +! check_mode(const char* const s, mode_t mode) +! { +! struct stat sb; +! int stat_returned = stat(s, &sb); +! if (stat_returned < 0) +! { +! int stat_errno = errno; +! char strerror_buf[STRERROR_BUF_SIZE]; +! strerror_r(stat_errno, strerror_buf, STRERROR_BUF_SIZE); +! ostringstream oss; +! oss << "Could not access information for file `" << s << "': " +! << strerror_buf; +! throw ICC_tool_exception(oss.str()); +! } +! return (sb.st_mode & mode) != 0; +! } +! +! bool +! is_existent_file_pathname(const char* const s) +! { +! struct stat sb; +! return stat(s, &sb) == 0; +! } +! +! bool +! is_plain_file_pathname(const char* const s) +! { +! return check_mode(s, S_IFREG); +! } +! +! bool +! is_directory(const char* const s) +! { +! return check_mode(s, S_IFDIR); +! } +! +! const char* const +! containing_directory(const char* const s) +! { +! if (strlen(s) == 0) +! throw ICC_tool_exception("name of directory passed to containing_directory" +! " function was zero-length."); +! char* tmp = strdup(s); +! // lop off any trailing seperator +! if (tmp[strlen(tmp) - 1] == '/') +! tmp[strlen(tmp) - 1] = 0; +! if (strlen(tmp) == 0) +! throw ICC_tool_exception("root directory (which has no containing" +! " directory) passed to containing_directory" +! " function"); +! char* idx = strrchr(tmp, '/'); +! if (idx != NULL) +! { +! *idx = 0; +! return tmp; +! } +! char* current_directory = getenv("PWD"); +! if (current_directory == NULL) +! throw ICC_tool_exception("pathname passed to containing_directory has no" +! " embedded seperator, and there is no value for" +! " PWD defined in the environment"); +! return strdup(current_directory); +! } +! +! bool +! is_readable_pathname(const char* const s) +! { +! return check_mode(s, S_IRUSR) +! || check_mode(s, S_IRGRP) +! || check_mode(s, S_IROTH); +! } +! +! bool +! is_writable_pathname(const char* const s) +! { +! return check_mode(s, S_IWUSR) +! || check_mode(s, S_IWGRP) +! || check_mode(s, S_IWOTH); +! } +! +! bool +! is_pathname_of_empty_file(const char* const s) +! { +! return get_size(s) > 0; +! } +! +! void +! vet_input_file_pathname(const char* const s, const string& name, +! const string& description) +! { +! if (! is_plain_file_pathname(s)) +! { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "', is not the pathname" +! << " of a plain file (i.e. it is the pathname of a directory, or of a" +! << " symbolic link, or of some other sort of special file.) It should be" +! << " " << description << "."; +! throw ICC_tool_exception(oss.str()); +! } +! if (! is_readable_pathname(s)) +! { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "', is not the pathname" +! << " of a readable file (i.e. you do not have permission to read that" +! << " file, or you do not have permission to read some directory" +! << " containing that file."; +! throw ICC_tool_exception(oss.str()); +! } +! if (! is_pathname_of_empty_file(s)) +! { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "', is not the pathname" +! << " of an existing readable file, but that file is of zero length." +! << " The argument should be " << description << "."; +! throw ICC_tool_exception(oss.str()); +! } +! } +! +! void +! vet_output_file_pathname(const char* const s, const string& name, +! const string& description, +! bool silent_overwrite_OK) +! { +! const char* const container = containing_directory(s); +! if (! is_writable_pathname(container)) +! { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "', has a directory" +! << " component which is not writable." +! << " The argument should be " << description << "."; +! throw ICC_tool_exception(oss.str()); +! } +! if (is_existent_file_pathname(s)) +! { +! if (is_plain_file_pathname(s)) +! if (is_writable_pathname(s)) +! { +! if (! silent_overwrite_OK) +! { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "' is of an existing" +! << " file." +! << " The argument should be " << description << "."; +! throw ICC_tool_exception(oss.str()); +! } +! } else { +! ostringstream oss; +! oss << "The " << name << " argument given, `" << s << "' is of an existing" +! << " file which is not writable." +! << " The argument should be " << description << "."; +! throw ICC_tool_exception(oss.str()); +! } +! } +! } +*** misc/SampleICC-1.3.2/IccProfLib/IccIO.cpp Mon Aug 20 22:05:00 2007 +--- misc/build/SampleICC-1.3.2/IccProfLib/IccIO.cpp Fri Jan 25 14:23:09 2008 +*************** +*** 78,84 **** + #include "IccIO.h" + #include "IccUtil.h" + #include +! #include + #include + + #ifndef __max +--- 78,84 ---- + #include "IccIO.h" + #include "IccUtil.h" + #include +! #include + #include + + #ifndef __max +*** misc/SampleICC-1.3.2/IccProfLib/IccIO.h Mon Aug 20 22:05:00 2007 +--- misc/build/SampleICC-1.3.2/IccProfLib/IccIO.h Fri Jan 25 14:23:09 2008 +*************** +*** 79,84 **** +--- 79,85 ---- + #define _ICCIO_H + + #include "IccDefs.h" ++ #include "memory" + #include "stdio.h" + + #ifdef USESAMPLEICCNAMESPACE +*** misc/SampleICC-1.3.2/IccProfLib/IccMpeACS.cpp Mon Aug 20 22:05:00 2007 +--- misc/build/SampleICC-1.3.2/IccProfLib/IccMpeACS.cpp Fri Jan 25 14:23:09 2008 +*************** +*** 136,152 **** + icChar sigBuf[30]; + + if (GetBAcsSig()) +! sDescription += "ELEM_bACS\r\n"; + else +! sDescription += "ELEM_eACS\r\n"; + + icGetSig(sigBuf, m_signature); + sDescription += " Signature = "; + sDescription += sigBuf; +! sDescription += "\r\n"; + + if (m_pData) { +! sDescription += "\r\nData Follows:\r\n"; + + icMemDump(sDescription, m_pData, m_nDataSize); + } +--- 136,152 ---- + icChar sigBuf[30]; + + if (GetBAcsSig()) +! sDescription += "ELEM_bACS\n"; + else +! sDescription += "ELEM_eACS\n"; + + icGetSig(sigBuf, m_signature); + sDescription += " Signature = "; + sDescription += sigBuf; +! sDescription += "\n"; + + if (m_pData) { +! sDescription += "\nData Follows:\n"; + + icMemDump(sDescription, m_pData, m_nDataSize); + } +*** misc/SampleICC-1.3.2/IccProfLib/IccMpeBasic.cpp Mon Aug 20 22:05:00 2007 +--- misc/build/SampleICC-1.3.2/IccProfLib/IccMpeBasic.cpp Fri Jan 25 14:23:09 2008 +*************** +*** 218,249 **** + sprintf(buf, "%.8f", m_endPoint); + sDescription += buf; + } +! sprintf(buf, "]\r\nFunctionType: %04Xh\r\n", m_nFunctionType); + sDescription += buf; + + switch(m_nFunctionType) { + case 0x0000: + if (m_params[1]==0.0 && m_params[2]==0.0) +! sprintf(buf, "Y = %.8f\r\n\r\n", m_params[3]); + else if (m_params[0]==1.0 && m_params[1]==1.0 && m_params[2]==0.0 && m_params[3]==0.0) +! sprintf(buf, "Y = X\r\n\r\n"); + else if (m_params[0]==1.0 && m_params[2]==0.0) +! sprintf(buf, "Y = %.8f * X + %.8f\r\n\r\n", + m_params[1], m_params[3]); + else +! sprintf(buf, "Y = (%.8f * X + %.8f)^%.4f + %.8f\r\n\r\n", + m_params[1], m_params[2], m_params[0], m_params[3]); + sDescription += buf; + return; + + case 0x0001: +! sprintf(buf, "Y = %.8f * log (%.8f * (X ^ %.8f) + %.8f) + %.8f\r\n\r\n", + m_params[1], m_params[2], m_params[0], m_params[3], m_params[4]); + sDescription += buf; + return; + + case 0x0002: +! sprintf(buf, "Y = %.8f * (%.8f ^ (%.8f * X + %.8f)) + %.8f\r\n\r\n", + m_params[0], m_params[1], m_params[2], m_params[3], m_params[4]); + sDescription += buf; + return; +--- 218,249 ---- + sprintf(buf, "%.8f", m_endPoint); + sDescription += buf; + } +! sprintf(buf, "]\nFunctionType: %04Xh\n", m_nFunctionType); + sDescription += buf; + + switch(m_nFunctionType) { + case 0x0000: + if (m_params[1]==0.0 && m_params[2]==0.0) +! sprintf(buf, "Y = %.8f\n\n", m_params[3]); + else if (m_params[0]==1.0 && m_params[1]==1.0 && m_params[2]==0.0 && m_params[3]==0.0) +! sprintf(buf, "Y = X\n\n"); + else if (m_params[0]==1.0 && m_params[2]==0.0) +! sprintf(buf, "Y = %.8f * X + %.8f\n\n", + m_params[1], m_params[3]); + else +! sprintf(buf, "Y = (%.8f * X + %.8f)^%.4f + %.8f\n\n", + m_params[1], m_params[2], m_params[0], m_params[3]); + sDescription += buf; + return; + + case 0x0001: +! sprintf(buf, "Y = %.8f * log (%.8f * (X ^ %.8f) + %.8f) + %.8f\n\n", + m_params[1], m_params[2], m_params[0], m_params[3], m_params[4]); + sDescription += buf; + return; + + case 0x0002: +! sprintf(buf, "Y = %.8f * (%.8f ^ (%.8f * X + %.8f)) + %.8f\n\n", + m_params[0], m_params[1], m_params[2], m_params[3], m_params[4]); + sDescription += buf; + return; +*************** +*** 250,260 **** + + default: + int i; +! sprintf(buf, "Unknown Function with %d parameters:\r\n\r\n", m_nParameters); + sDescription += buf; + + for (i=0; i 4) { + sReport += icValidateWarningMsg; + sReport += sSigName; +! sReport += " formula curve has too many formulaCurveSegment parameters.\r\n"; + rv = icValidateWarning; + } + break; +--- 505,517 ---- + if (!m_params || m_nParameters<4) { + sReport += icValidateCriticalErrorMsg; + sReport += sSigName; +! sReport += " formula curve has Invalid formulaCurveSegment parameters.\n"; + rv = icValidateCriticalError; + } + else if (m_nParameters > 4) { + sReport += icValidateWarningMsg; + sReport += sSigName; +! sReport += " formula curve has too many formulaCurveSegment parameters.\n"; + rv = icValidateWarning; + } + break; +*************** +*** 520,532 **** + if (!m_params || m_nParameters<5) { + sReport += icValidateCriticalErrorMsg; + sReport += sSigName; +! sReport += " formula curve has Invalid formulaCurveSegment parameters.\r\n"; + rv = icValidateCriticalError; + } + else if (m_nParameters > 5) { + sReport += icValidateWarningMsg; + sReport += sSigName; +! sReport += " formula curve has too many formulaCurveSegment parameters.\r\n"; + rv = icValidateWarning; + } + break; +--- 520,532 ---- + if (!m_params || m_nParameters<5) { + sReport += icValidateCriticalErrorMsg; + sReport += sSigName; +! sReport += " formula curve has Invalid formulaCurveSegment parameters.\n"; + rv = icValidateCriticalError; + } + else if (m_nParameters > 5) { + sReport += icValidateWarningMsg; + sReport += sSigName; +! sReport += " formula curve has too many formulaCurveSegment parameters.\n"; + rv = icValidateWarning; + } + break; +*************** +*** 535,547 **** + if (!m_params || m_nParameters<5) { + sReport += icValidateCriticalErrorMsg; + sReport += sSigName; +! sReport += " formula curve has Invalid formulaCurveSegment parameters.\r\n"; + rv = icValidateCriticalError; + } + else if (m_nParameters > 5) { + sReport += icValidateWarningMsg; + sReport += sSigName; +! sReport += " formula curve has too many formulaCurveSegment parameters.\r\n"; + rv = icValidateWarning; + } + break; +--- 535,547 ---- + if (!m_params || m_nParameters<5) { + sReport += icValidateCriticalErrorMsg; + sReport += sSigName; +! sReport += " formula curve has Invalid formulaCurveSegment parameters.\n"; + rv = icValidateCriticalError; + } + else if (m_nParameters > 5) { + sReport += icValidateWarningMsg; + sReport += sSigName; +! sReport += " formula curve has too many formulaCurveSegment parameters.\n"; + rv = icValidateWarning; + } + break; +*************** +*** 551,557 **** + icChar buf[128]; + sReport += icValidateCriticalErrorMsg; + sReport += sSigName; +! sprintf(buf, " formula curve uses unknown formulaCurveSegment function type %d\r\n", m_nFunctionType); + sReport += buf; + rv = icValidateCriticalError; + } +--- 551,557 ---- + icChar buf[128]; + sReport += icValidateCriticalErrorMsg; + sReport += sSigName; +! sprintf(buf, " formula curve uses unknown formulaCurveSegment function type %d\n", m_nFunctionType); + sReport += buf; + rv = icValidateCriticalError; + } +*************** +*** 727,733 **** + sDescription += buf; + } + +! sprintf(buf, "]\r\n"); + sDescription += buf; + } + else { +--- 727,733 ---- + sDescription += buf; + } + +! sprintf(buf, "]\n"); + sDescription += buf; + } + else { +*************** +*** 744,752 **** + sprintf(buf, "%.8f", m_endPoint); + sDescription += buf; + } +! sprintf(buf, "]\r\n"); + sDescription += buf; +! sDescription += "IN OUT\r\n"; + + icUInt32Number i; + +--- 744,752 ---- + sprintf(buf, "%.8f", m_endPoint); + sDescription += buf; + } +! sprintf(buf, "]\n"); + sDescription += buf; +! sDescription += "IN OUT\n"; + + icUInt32Number i; + +*************** +*** 754,764 **** + icFloatNumber last = (icFloatNumber)(m_nCount-1); + + for (i=0; ibegin(); i!=m_list->end(); i++) { + (*i)->Describe(sDescription); + } +--- 1054,1060 ---- + { + CIccCurveSegmentList::iterator i; + +! sDescription += "BEGIN_CURVE\n"; + for (i=m_list->begin(); i!=m_list->end(); i++) { + (*i)->Describe(sDescription); + } +*************** +*** 1342,1348 **** + if (m_nReserved1 || m_nReserved2) { + sReport += icValidateWarningMsg; + sReport += sSigName; +! sReport += " Segmented curve has non zero reserved data.\r\n"; + rv = icValidateWarning; + } + +--- 1342,1348 ---- + if (m_nReserved1 || m_nReserved2) { + sReport += icValidateWarningMsg; + sReport += sSigName; +! sReport += " Segmented curve has non zero reserved data.\n"; + rv = icValidateWarning; + } + +*************** +*** 1349,1355 **** + if (m_list->size()==0) { + sReport += icValidateCriticalErrorMsg; + sReport += sSigName; +! sReport += " Has Empty CurveSegment!\r\n"; + return icValidateCriticalError; + } + +--- 1349,1355 ---- + if (m_list->size()==0) { + sReport += icValidateCriticalErrorMsg; + sReport += sSigName; +! sReport += " Has Empty CurveSegment!\n"; + return icValidateCriticalError; + } + +*************** +*** 1599,1609 **** + icChar buf[81]; + int i; + +! sprintf(buf, "BEGIN_CURVE_SET %d\r\n", m_nInputChannels); + sDescription += buf; + + for (i=0; iDescribe(sDescription); +--- 1599,1609 ---- + icChar buf[81]; + int i; + +! sprintf(buf, "BEGIN_CURVE_SET %d\n", m_nInputChannels); + sDescription += buf; + + for (i=0; iDescribe(sDescription); +*************** +*** 1877,1883 **** + sReport += " - Element "; + sSigName = Info.GetSigName(GetType()); + sReport += sSigName; +! sReport += " Has Empty Curve Element(s)!\r\n"; + return icValidateCriticalError; + } + +--- 1877,1883 ---- + sReport += " - Element "; + sSigName = Info.GetSigName(GetType()); + sReport += sSigName; +! sReport += " Has Empty Curve Element(s)!\n"; + return icValidateCriticalError; + } + +*************** +*** 2042,2048 **** + int i, j; + icFloatNumber *data = m_pMatrix; + +! sprintf(buf, "BEGIN_ELEM_MATRIX %d %d\r\n", m_nInputChannels, m_nOutputChannels); + sDescription += buf; + + for (j=0; j