diff --git a/include/exiv2/exv_msvc.h b/include/exiv2/exv_msvc.h index d86ca8b6..e809ee69 100644 --- a/include/exiv2/exv_msvc.h +++ b/include/exiv2/exv_msvc.h @@ -1,219 +1,217 @@ -/**/ -/* exv_msvc.h */ - -#ifndef _EXV_MSVC_H_ -#define _EXV_MSVC_H_ - -/* Define to 1 if you want to use `libssh' for SshIO. */ -/* #undef EXV_USE_SSH */ - -/* Define to 1 if you want to use `libcurl' in httpIO. */ -/* #undef EXV_USE_CURL */ - -/* Define to 1 if you have the `alarm' function. */ -/* #undef EXV_HAVE_ALARM */ - -/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you - don't. */ -/* #undef EXV_HAVE_DECL_STRERROR_R */ - -/* Define to 1 if you have the `gmtime_r' function. */ -/* #undef EXV_HAVE_GMTIME_R */ - -/* Define to 1 if you have the header file. */ -/* #undef EXV_HAVE_INTTYPES_H */ - -/* Define to 1 if you have the header file. */ -#define EXV_HAVE_LIBINTL_H 1 - -/* Define to 1 if you require video support. */ -/* #undef EXV_ENABLE_VIDEO */ - -/* Define to 1 if you require webready support. */ -/* #undef EXV_ENABLE_WEBREADY */ - -#ifndef EXV_COMMERCIAL_VERSION - -/* Define to 1 to enable translation of Nikon lens names. */ -#define EXV_HAVE_LENSDATA 1 - -/* Define to 1 if translation of program messages to the user's - native language is requested. */ -/* #undef EXV_ENABLE_NLS */ - -/* Define to 1 if you have the `iconv' function. */ -/* #undef EXV_HAVE_ICONV */ - -/* Define to 1 to enable conversion of UCS2 encoded Windows tags to UTF-8. */ -#define EXV_HAVE_PRINTUCS2 1 - -#endif /* !EXV_COMMERCIAL_VERSION */ - -/* Define Windows unicode path support. */ -/* #define EXV_UNICODE_PATH 1 */ - -/* Define to `const' or to empty, depending on the second argument of `iconv'. */ -/* #undef ICONV_ACCEPTS_CONST_INPUT */ -#if defined ICONV_ACCEPTS_CONST_INPUT -#define EXV_ICONV_CONST const -#else -#define EXV_ICONV_CONST -#endif - -/* Define to 1 if you have the header file. */ -/* #undef EXV_HAVE_REGEX */ - -/* Define to 1 if your system has a GNU libc compatible `malloc' function, and - to 0 otherwise. */ -/* #undef EXV_HAVE_MALLOC */ - -/* Define to 1 if you have the header file. */ -/* #undef EXV_HAVE_MALLOC_H */ - -/* Define to 1 if you have the header file. */ -/* #undef EXV_HAVE_MEMORY_H */ - -/* Define to 1 if you have the `memset' function. */ -#define EXV_HAVE_MEMSET 1 - -/* Define to 1 if your system has a GNU libc compatible `realloc' function, - and to 0 otherwise. */ -#define EXV_HAVE_REALLOC 1 - -/* Define to 1 if stdbool.h conforms to C99. */ -/* #undef EXV_HAVE_STDBOOL_H */ - -/* Define to 1 if you have the header file. */ -/* #undef EXV_HAVE_STDINT_H */ - -/* Define to 1 if you have the header file. */ -/* #undef EXV_HAVE_STDLIB_H */ - -/* Define to 1 if you have the `strchr' function. */ -#define EXV_HAVE_STRCHR 1 - -/* Define to 1 if you have the `strerror' function. */ -#define EXV_HAVE_STRERROR 1 - -/* Define to 1 if you have the `strerror_r' function. */ -/* #undef EXV_HAVE_STRERROR_R */ - -/* Define to 1 if you have the header file. */ -/* #undef EXV_HAVE_STRINGS_H */ - -/* Define to 1 if you have the header file. */ -/* #undef EXV_HAVE_STRING_H */ - -/* Define to 1 if you have the `strtol' function. */ -#define EXV_HAVE_STRTOL 1 - -/* Define to 1 if you have the `mmap' function. */ -/* #undef EXV_HAVE_MMAP */ - -/* Define to 1 if you have the `munmap' function. */ -/* #undef EXV_HAVE_MUNMAP */ - -/* Define to 1 if you have the header file. */ -/* #undef EXV_HAVE_SYS_STAT_H */ - -/* Define to 1 if you have the header file. */ -/* #undef EXV_HAVE_SYS_TIME_H */ - -/* Define to 1 if you have the header file. */ -/* #undef EXV_HAVE_SYS_TYPES_H */ - -/* Define to 1 if you have the `timegm' function. */ -/* #undef EXV_HAVE_TIMEGM */ - -/* Define to 1 if you have the header file. */ -/* #undef EXV_HAVE_UNISTD_H */ - -/* Define to 1 if you have the `vprintf' function. */ -#define EXV_HAVE_VPRINTF 1 - -/* Define to 1 if you have the header file. */ -/* #undef EXV_HAVE_WCHAR_H */ - -/* Define to 1 if you have the header file. */ -/* #undef EXV_HAVE_SYS_MMAN_H */ - -/* Define to 1 if you have the `zlib' library. */ -#define EXV_HAVE_LIBZ 1 - -#if defined(_MSC_VER) && HAVE_LIBZ - #if (_MSC_VER < 1400) && !defined(vsnprintf) - #define vsnprintf _vsnprintf - #endif -#endif - -/* Define to 1 if you have the header file. */ -#define EXV_HAVE_PROCESS_H 1 - -/* Define to 1 if you have the Adobe XMP Toolkit. */ -#define EXV_HAVE_XMP_TOOLKIT 1 - -/* Define to 1 if the system has the type `_Bool'. */ -/* #undef EXV_HAVE__BOOL */ - -/* Define to 1 if `lstat' dereferences a symlink specified with a trailing - slash. */ -/* #undef EXV_LSTAT_FOLLOWS_SLASHED_SYMLINK */ - -/* Define to the address where bug reports for this package should be sent. */ -#define EXV_PACKAGE_BUGREPORT "ahuggel@gmx.net" - -/* Define to the name of this package. */ -#define EXV_PACKAGE "exiv2" - -/* Define to the full name of this package. */ -#define EXV_PACKAGE_NAME "exiv2" - -/* Define to the full name and version of this package. */ -#define EXV_PACKAGE_STRING "exiv2 0.25" - -/* Define to the one symbol short name of this package. */ -#define EXV_PACKAGE_TARNAME "exiv2" - -/* Define to the version of this package. */ -#define EXV_PACKAGE_VERSION "0.25" - -/* Define to 1 if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define to 1 if strerror_r returns char *. */ -/* #undef STRERROR_R_CHAR_P */ - -/* Define to 1 if you can safely include both and . */ -#define TIME_WITH_SYS_TIME 1 - -/* Define to 1 if your declares `struct tm'. */ -/* #undef TM_IN_SYS_TIME */ - -/* Define to empty if `const' does not conform to ANSI C. */ -/* #undef const */ - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -/* #undef inline */ -#endif - -/* Define to rpl_malloc if the replacement function should be used. */ -/* #undef malloc */ - -/* Define to `int' if does not define. */ -/* #undef HAVE_PID_T */ - -/* On Microsoft compilers pid_t has to be set to int. */ -#ifndef HAVE_PID_T -typedef int pid_t; -#endif - -/* Define to rpl_realloc if the replacement function should be used. */ -/* #undef realloc */ - -/* Define to `unsigned' if does not define. */ -/* #undef size_t */ - - -#endif +/**/ +/* exv_msvc.h */ + +#pragma once +#ifndef _EXV_MSVC_H_ +#define _EXV_MSVC_H_ + +/* Define to 1 if you want to use `libssh' for SshIO. */ +/* #undef EXV_USE_SSH */ + +/* Define to 1 if you want to use `libcurl' in httpIO. */ +/* #undef EXV_USE_CURL */ + +/* Define to 1 if you have the `alarm' function. */ +/* #undef EXV_HAVE_ALARM */ + +/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you + don't. */ +/* #undef EXV_HAVE_DECL_STRERROR_R */ + +/* Define to 1 if you have the `gmtime_r' function. */ +/* #undef EXV_HAVE_GMTIME_R */ + +/* Define to 1 if you have the header file. */ +/* #undef EXV_HAVE_INTTYPES_H */ + +/* Define to 1 if you have the header file. */ +#define EXV_HAVE_LIBINTL_H 1 + +/* Define to 1 if you require video support. */ +/* #undef EXV_ENABLE_VIDEO */ + +/* Define to 1 if you require webready support. */ +/* #undef EXV_ENABLE_WEBREADY */ + +#ifndef EXV_COMMERCIAL_VERSION + +/* Define to 1 to enable translation of Nikon lens names. */ +#define EXV_HAVE_LENSDATA 1 + +/* Define to 1 if translation of program messages to the user's + native language is requested. */ +/* #undef EXV_ENABLE_NLS */ + +/* Define to 1 if you have the `iconv' function. */ +/* #undef EXV_HAVE_ICONV */ + +/* Define to 1 to enable conversion of UCS2 encoded Windows tags to UTF-8. */ +#define EXV_HAVE_PRINTUCS2 1 + +#endif /* !EXV_COMMERCIAL_VERSION */ + +/* Define Windows unicode path support. */ +/* #undef EXV_UNICODE_PATH */ + + +/* Define to `const' or to empty, depending on the second argument of `iconv'. */ +/* #undef ICONV_ACCEPTS_CONST_INPUT */ +#if defined ICONV_ACCEPTS_CONST_INPUT +#define EXV_ICONV_CONST const +#else +#define EXV_ICONV_CONST +#endif + +/* Define to 1 if you have the header file. */ +/* #undef EXV_HAVE_REGEX */ + +/* Define to 1 if your system has a GNU libc compatible `malloc' function, and + to 0 otherwise. */ +/* #undef EXV_HAVE_MALLOC */ + +/* Define to 1 if you have the header file. */ +/* #undef EXV_HAVE_MALLOC_H */ + +/* Define to 1 if you have the header file. */ +/* #undef EXV_HAVE_MEMORY_H */ + +/* Define to 1 if you have the `memset' function. */ +#define EXV_HAVE_MEMSET 1 + +/* Define to 1 if your system has a GNU libc compatible `realloc' function, + and to 0 otherwise. */ +#define EXV_HAVE_REALLOC 1 + +/* Define to 1 if stdbool.h conforms to C99. */ +/* #undef EXV_HAVE_STDBOOL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef EXV_HAVE_STDINT_H */ + +/* Define to 1 if you have the header file. */ +/* #undef EXV_HAVE_STDLIB_H */ + +/* Define to 1 if you have the `strchr' function. */ +#define EXV_HAVE_STRCHR 1 + +/* Define to 1 if you have the `strerror' function. */ +#define EXV_HAVE_STRERROR 1 + +/* Define to 1 if you have the `strerror_r' function. */ +/* #undef EXV_HAVE_STRERROR_R */ + +/* Define to 1 if you have the header file. */ +/* #undef EXV_HAVE_STRINGS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef EXV_HAVE_STRING_H */ + +/* Define to 1 if you have the `strtol' function. */ +#define EXV_HAVE_STRTOL 1 + +/* Define to 1 if you have the `mmap' function. */ +/* #undef EXV_HAVE_MMAP */ + +/* Define to 1 if you have the `munmap' function. */ +/* #undef EXV_HAVE_MUNMAP */ + +/* Define to 1 if you have the header file. */ +/* #undef EXV_HAVE_SYS_STAT_H */ + +/* Define to 1 if you have the header file. */ +/* #undef EXV_HAVE_SYS_TIME_H */ + +/* Define to 1 if you have the header file. */ +/* #undef EXV_HAVE_SYS_TYPES_H */ + +/* Define to 1 if you have the `timegm' function. */ +/* #undef EXV_HAVE_TIMEGM */ + +/* Define to 1 if you have the header file. */ +/* #undef EXV_HAVE_UNISTD_H */ + +/* Define to 1 if you have the `vprintf' function. */ +#define EXV_HAVE_VPRINTF 1 + +/* Define to 1 if you have the header file. */ +/* #undef EXV_HAVE_WCHAR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef EXV_HAVE_SYS_MMAN_H */ + +/* Define to 1 if you have the `zlib' library. */ +#define EXV_HAVE_LIBZ 1 + +#if defined(_MSC_VER) && HAVE_LIBZ + #if (_MSC_VER < 1400)// && !defined(vsnprintf) + #define vsnprintf _vsnprintf + #endif +#endif + +/* Define to 1 if you have the header file. */ +#define EXV_HAVE_PROCESS_H 1 + +/* Define to 1 if you have the Adobe XMP Toolkit. */ +#define EXV_HAVE_XMP_TOOLKIT 1 + +/* Define to 1 if the system has the type `_Bool'. */ +/* #undef EXV_HAVE__BOOL */ + +/* Define to 1 if `lstat' dereferences a symlink specified with a trailing + slash. */ +/* #undef EXV_LSTAT_FOLLOWS_SLASHED_SYMLINK */ + +/* Define to the address where bug reports for this package should be sent. */ +#define EXV_PACKAGE_BUGREPORT "ahuggel@gmx.net" + +/* Define to the name of this package. */ +#define EXV_PACKAGE "exiv2" + +/* Define to the full name of this package. */ +#define EXV_PACKAGE_NAME "exiv2" + +/* Define to the full name and version of this package. */ +#define EXV_PACKAGE_STRING "exiv2 0.25" + +/* Define to the one symbol short name of this package. */ +#define EXV_PACKAGE_TARNAME "exiv2" + +/* Define to the version of this package. */ +#define EXV_PACKAGE_VERSION "0.25" + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to 1 if strerror_r returns char *. */ +/* #undef STRERROR_R_CHAR_P */ + +/* Define to 1 if you can safely include both and . */ +#define TIME_WITH_SYS_TIME 1 + +/* Define to 1 if your declares `struct tm'. */ +/* #undef TM_IN_SYS_TIME */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* Define to rpl_malloc if the replacement function should be used. */ +/* #undef malloc */ + +/* On Microsoft compilers pid_t has to be set to int. */ +#ifndef HAVE_PID_T +typedef int pid_t; +#endif + +/* Define to rpl_realloc if the replacement function should be used. */ +/* #undef realloc */ + +/* Define to `unsigned' if does not define. */ +/* #undef size_t */ + +#endif // _EXV_CONF_H_ diff --git a/include/exiv2/rwlock.hpp b/include/exiv2/rwlock.hpp index 956c5678..16b55cab 100644 --- a/include/exiv2/rwlock.hpp +++ b/include/exiv2/rwlock.hpp @@ -117,7 +117,12 @@ namespace Exiv2 { bool tryenter() { +#ifdef MSDEV_2003 + EnterCriticalSection(&lock_); + return true; +#else return 0 != TryEnterCriticalSection(&lock_); +#endif } private: diff --git a/msvc2003/exiv2/exiv2.vcproj b/msvc2003/exiv2/exiv2.vcproj index dcfe5991..96b38797 100644 --- a/msvc2003/exiv2/exiv2.vcproj +++ b/msvc2003/exiv2/exiv2.vcproj @@ -1 +1,305 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/msvc2003/exiv2lib/exiv2lib.vcproj b/msvc2003/exiv2lib/exiv2lib.vcproj index 6f90dca1..bc84b4a5 100644 --- a/msvc2003/exiv2lib/exiv2lib.vcproj +++ b/msvc2003/exiv2lib/exiv2lib.vcproj @@ -291,6 +291,9 @@ copy/y ..\..\..\zlib-1.2.3\projects\visualc6\Win32_DLL_Release\zlib1.dll $(OutDi + + @@ -402,6 +405,9 @@ copy/y ..\..\..\zlib-1.2.3\projects\visualc6\Win32_DLL_Release\zlib1.dll $(OutDi + + @@ -458,6 +464,9 @@ copy/y ..\..\..\zlib-1.2.3\projects\visualc6\Win32_DLL_Release\zlib1.dll $(OutDi + + diff --git a/src/exiv2.cpp b/src/exiv2.cpp index d1d0fc3b..f92b9ae1 100644 --- a/src/exiv2.cpp +++ b/src/exiv2.cpp @@ -240,21 +240,21 @@ void Params::usage(std::ostream& os) const std::string Params::printTarget(std::string before,int target,bool bPrint,std::ostream& out) { - std::string t; - if ( target & Params::ctExif ) t+= 'e'; - if ( target & Params::ctXmpSidecar ) t+= 'X'; - if ( target & Params::ctXmpRaw ) t+= target & Params::ctXmpSidecar ? 'X' : 'R' ; - if ( target & Params::ctIptc ) t+= 'i'; - if ( target & Params::ctIccProfile ) t+= 'C'; - if ( target & Params::ctIptcRaw ) t+= 'I'; - if ( target & Params::ctXmp ) t+= 'x'; - if ( target & Params::ctComment ) t+= 'c'; - if ( target & Params::ctThumb ) t+= 't'; - if ( target & Params::ctPreview ) t+= 'p'; - if ( target & Params::ctStdInOut ) t+= '-'; - - if ( bPrint ) out << before << " :" << t << std::endl; - return t; + std::string t; + if ( target & Params::ctExif ) t+= 'e'; + if ( target & Params::ctXmpSidecar ) t+= 'X'; + if ( target & Params::ctXmpRaw ) t+= target & Params::ctXmpSidecar ? 'X' : 'R' ; + if ( target & Params::ctIptc ) t+= 'i'; + if ( target & Params::ctIccProfile ) t+= 'C'; + if ( target & Params::ctIptcRaw ) t+= 'I'; + if ( target & Params::ctXmp ) t+= 'x'; + if ( target & Params::ctComment ) t+= 'c'; + if ( target & Params::ctThumb ) t+= 't'; + if ( target & Params::ctPreview ) t+= 'p'; + if ( target & Params::ctStdInOut ) t+= '-'; + + if ( bPrint ) out << before << " :" << t << std::endl; + return t; } void Params::help(std::ostream& os) const @@ -1064,13 +1064,13 @@ namespace { | Params::ctComment | Params::ctXmp; break; case 'X': - Params::printTarget("X before",target); + Params::printTarget("X before",target); target |= Params::ctXmpSidecar|Params::ctExif | Params::ctIptc | Params::ctXmp ; // -eX Params::printTarget("X after1",target); if ( i ) { // -eXX target |= Params::ctXmpRaw ; - Params::printTarget("X after2",target); + Params::printTarget("X after2",target); target ^= Params::ctExif|Params::ctIptc|Params::ctXmp ; // turn off those bits } Params::printTarget("X ending",target,false); @@ -1151,7 +1151,7 @@ namespace { } int num = 0; std::string line; - while (std::getline(bStdin? std::cin : file, line)) { + while (bStdin?std::getline(std::cin, line):std::getline(file, line)) { ModifyCmd modifyCmd; if (parseLine(modifyCmd, line, ++num)) { modifyCmds.push_back(modifyCmd); diff --git a/src/image.cpp b/src/image.cpp index eaaf1062..6a8bc52d 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -599,6 +599,11 @@ namespace Exiv2 { namespace Exiv2 { namespace Internal { +#ifdef MSDEV_2003 +#undef vsnprintf +#define vsnprintf _vsnprintf +#endif + std::string stringFormat(const char* format, ...) { std::string result;