summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsuhail95 <suhailkhan408.sk@gmail.com>2023-12-21 17:04:03 +0530
committerGitHub <noreply@github.com>2023-12-21 17:04:03 +0530
commit5f6fe44f19842ae43dedc3da3fd5d5dafb29e501 (patch)
tree91185dc41ca6a319985bf82bf7ccc7afdcbe7458
parente0955b272ab6035b2921fa2c649aca5ecfe5ab81 (diff)
Integration for December 2023 release (#85)
-rwxr-xr-x[-rw-r--r--]XMP-Toolkit-SDK-Overview.pdfbin313202 -> 458278 bytes
-rw-r--r--XMPCommon/source/ErrorImpl.cpp3
-rw-r--r--XMPCore/source/XMPUtils.hpp8
-rw-r--r--XMPFiles/source/FileHandlers/AVCHD_Handler.cpp8
-rw-r--r--XMPFiles/source/FileHandlers/P2_Handler.cpp4
-rw-r--r--XMPFiles/source/FileHandlers/PostScript_Handler.cpp1
-rw-r--r--XMPFiles/source/FileHandlers/SonyHDV_Handler.cpp21
-rw-r--r--XMPFiles/source/FormatSupport/ASF_Support.cpp1
-rw-r--r--XMPFiles/source/FormatSupport/MacScriptExtracts.h8
-rw-r--r--XMPFiles/source/FormatSupport/PNG_Support.cpp11
-rw-r--r--XMPFiles/source/FormatSupport/PostScript_Support.cpp4
-rw-r--r--XMPFiles/source/FormatSupport/QuickTime_Support.cpp268
-rw-r--r--XMPFiles/source/FormatSupport/QuickTime_Support.hpp36
-rw-r--r--XMPFiles/source/FormatSupport/Reconcile_Impl.cpp10
-rw-r--r--XMPFiles/source/FormatSupport/Reconcile_Impl.hpp5
-rw-r--r--XMPFiles/source/FormatSupport/XMPScanner.cpp16
-rw-r--r--XMPFiles/source/FormatSupport/XMPScanner.hpp2
-rw-r--r--XMPFiles/source/PluginHandler/PluginManager.cpp4
-rw-r--r--XMPFiles/source/PluginHandler/XMPAtoms.h9
-rwxr-xr-x[-rw-r--r--]XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/MODULE_IDENTIFIER.txt0
-rwxr-xr-x[-rw-r--r--]XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/XMPPLUGINUIDS.txt0
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.xpibin1562592 -> 1636836 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/libMiniPDFL.sobin4124616 -> 4112328 bytes
-rwxr-xr-x[-rw-r--r--]XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/MODULE_IDENTIFIER.txt0
-rwxr-xr-x[-rw-r--r--]XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/XMPPLUGINUIDS.txt0
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.xpibin2124160 -> 2134800 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/libMiniPDFL.sobin4300168 -> 4291976 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/PDF_Handlerbin2717040 -> 0 bytes
-rw-r--r--XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/Info.plist40
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFLbin2614384 -> 0 bytes
l---------XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/PDF_Handler (renamed from XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/PDF_Handler)0
l---------XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources (renamed from XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Resources)0
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/PDF_Handlerbin0 -> 5391408 bytes
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/Info.plist52
-rwxr-xr-x[-rw-r--r--]XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MODULE_IDENTIFIER.txt (renamed from XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MODULE_IDENTIFIER.txt)0
l---------XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL (renamed from XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL)0
l---------XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Resources (renamed from XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Resources)0
-rwxr-xr-xXMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFLbin0 -> 5617520 bytes
-rwxr-xr-x[-rw-r--r--]XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/English.lproj/InfoPlist.strings (renamed from XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/English.lproj/InfoPlist.strings)bin446 -> 446 bytes
-rwxr-xr-x[-rw-r--r--]XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist (renamed from XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist)10
-rwxr-xr-x[-rw-r--r--]XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources (renamed from XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources)18
l---------XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current (renamed from XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current)0
-rwxr-xr-x[-rw-r--r--]XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/XMPPLUGINUIDS.txt (renamed from XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/XMPPLUGINUIDS.txt)2
-rwxr-xr-x[-rw-r--r--]XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/_CodeSignature/CodeResources (renamed from XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/_CodeSignature/CodeResources)66
l---------XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current (renamed from XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/Current)0
-rw-r--r--XMPFilesPlugins/PDF_Handler/windows/windows_x64/MiniPDFL.dllbin2846280 -> 2732984 bytes
-rw-r--r--XMPFilesPlugins/PDF_Handler/windows/windows_x64/PDF_Handler.xpibin945224 -> 872384 bytes
-rwxr-xr-xXMPFilesPlugins/PluginTemplate/build/GeneratePluginTemplate_win.bat10
-rw-r--r--XMPFilesPlugins/api/source/PluginRegistry.h9
-rwxr-xr-xbuild/GenerateXMPToolkitSDK_win.bat14
-rw-r--r--build/XMP_BuildInfo.h4
-rwxr-xr-xbuild/shared/CMakeUtils.bat12
-rw-r--r--build/shared/SharedConfig_Android.cmake2
-rw-r--r--build/shared/SharedConfig_Ios.cmake2
-rw-r--r--build/shared/SharedConfig_Mac.cmake2
-rw-r--r--build/shared/SharedConfig_Win.cmake3
-rw-r--r--build/shared/ToolchainLLVM.cmake9
-rwxr-xr-x[-rw-r--r--]docs/XMPProgrammersGuide.pdfbin1010170 -> 1188965 bytes
-rw-r--r--public/include/XMP_Const.h5
-rwxr-xr-xsamples/build/GenerateSamples_win.bat16
-rw-r--r--samples/source/DumpMainXMP.cpp2
-rw-r--r--samples/source/DumpScannedXMP.cpp2
-rw-r--r--samples/source/UnicodeCorrectness.cpp4
-rw-r--r--samples/source/UnicodeParseSerialize.cpp6
-rw-r--r--samples/source/UnicodePerformance.cpp4
-rw-r--r--samples/source/XMPCoreCoverage.cpp2
-rw-r--r--samples/source/XMPFilesCoverage.cpp2
67 files changed, 377 insertions, 340 deletions
diff --git a/XMP-Toolkit-SDK-Overview.pdf b/XMP-Toolkit-SDK-Overview.pdf
index 21194b3..cef6e96 100644..100755
--- a/XMP-Toolkit-SDK-Overview.pdf
+++ b/XMP-Toolkit-SDK-Overview.pdf
Binary files differ
diff --git a/XMPCommon/source/ErrorImpl.cpp b/XMPCommon/source/ErrorImpl.cpp
index c6f18eb..0454e8d 100644
--- a/XMPCommon/source/ErrorImpl.cpp
+++ b/XMPCommon/source/ErrorImpl.cpp
@@ -113,8 +113,9 @@ namespace XMP_COMPONENT_INT_NAMESPACE {
UTF8StringStream stm1;
stm1.setf( std::ios::hex );
stm1 << "0x" << addressParameter;
+ std::string str1 = stm1.str().c_str();
if ( stm1.str().size() > 4 ) {
- const char * charPtr = stm1.str().c_str();
+ const char * charPtr = str1.c_str();
if ( charPtr[ 2 ] == '0' && ( charPtr[ 3 ] == 'x' || charPtr[ 3 ] == 'X' ) ) {
appends0x = true;
}
diff --git a/XMPCore/source/XMPUtils.hpp b/XMPCore/source/XMPUtils.hpp
index ee7962f..0b0fbb2 100644
--- a/XMPCore/source/XMPUtils.hpp
+++ b/XMPCore/source/XMPUtils.hpp
@@ -253,9 +253,6 @@ public:
#if ENABLE_CPP_DOM_MODEL
static void MapXMPErrorToIError(XMP_Int32 xmpErrorCodes, AdobeXMPCommon::IError::eErrorDomain & domain, AdobeXMPCommon::IError::eErrorCode & code);
- static bool SerializeExtensionAsJSON(const AdobeXMPCore::spINode & extensionNode, std::string & key, std::string & value);
- static bool IsExtensionValidForBackwardCompatibility(const AdobeXMPCore::spINode & extensionNode);
- static bool CreateExtensionNode(const AdobeXMPCore::spIStructureNode & xmpNode, const XMP_VarString & serializedJSON, const XMP_VarString & doubleQuotesStr);
static void
@@ -295,11 +292,6 @@ public:
#endif
- static bool CreateExtensionNode(XMP_Node ** xmpNode, const XMP_VarString & serializedJSON, const XMP_VarString & doubleQuotesString);
-
- static bool GetSerializedJSONForExtensionNode(const XMP_Node * xmpNode, XMP_VarString &extensionAsKey, XMP_VarString & serializedJSON);
-
- static bool IsSuitableForJSONSerialization(const XMP_Node * xmpNode);
}; // XMPUtils
diff --git a/XMPFiles/source/FileHandlers/AVCHD_Handler.cpp b/XMPFiles/source/FileHandlers/AVCHD_Handler.cpp
index 58b4b1f..48e5b26 100644
--- a/XMPFiles/source/FileHandlers/AVCHD_Handler.cpp
+++ b/XMPFiles/source/FileHandlers/AVCHD_Handler.cpp
@@ -1609,7 +1609,7 @@ static void AVCCAM_SetXMPStartTimecode ( SXMPMeta& xmpObj, const XMP_Uns8* avcca
if ( dmTimeFormat != NULL ) {
char timecodeBuff [12];
- sprintf ( timecodeBuff, "%d%d%c%d%d%c%d%d%c%d%d", hourTens, hourUnits, tcSeparator,
+ snprintf ( timecodeBuff, sizeof(timecodeBuff), "%d%d%c%d%d%c%d%d%c%d%d", hourTens, hourUnits, tcSeparator,
minuteTens, minuteUnits, tcSeparator, secondTens, secondUnits, tcSeparator, frameTens, frameUnits);
xmpObj.SetProperty( kXMP_NS_DM, "startTimeScale", dmTimeScale, kXMP_DeleteExisting );
@@ -1638,7 +1638,7 @@ static bool AVCHD_SetXMPMakeAndModel ( SXMPMeta& xmpObj, const AVCHD_blkClipExte
case kMakerIDPanasonic : xmpValue = "Panasonic"; break;
case kMakerIDSony : xmpValue = "Sony"; break;
default :
- std::sprintf ( hexMakeNumber, "0x%04x", clipExtData.mClipInfoExt.mMakerID );
+ snprintf ( hexMakeNumber,sizeof(hexMakeNumber), "0x%04x", clipExtData.mClipInfoExt.mMakerID );
xmpValue = hexMakeNumber;
break;
@@ -1693,7 +1693,7 @@ static bool AVCHD_SetXMPMakeAndModel ( SXMPMeta& xmpObj, const AVCHD_blkClipExte
// Panasonic has said that if we don't have a string for the model number, they'd like to see the code
// anyway. We'll do the same for every manufacturer except Sony, who have said that they use
// the same model number for multiple cameras.
- std::sprintf ( hexModelNumber, "0x%04x", clipExtData.mClipInfoExt.mMakerModelCode );
+ snprintf ( hexModelNumber,sizeof(hexModelNumber), "0x%04x", clipExtData.mClipInfoExt.mMakerModelCode );
xmpValue = hexModelNumber;
}
@@ -1800,7 +1800,7 @@ static std::string AVCHD_DateFieldToXMP ( XMP_Uns8 avchdTimeZone, const XMP_Uns8
char dateBuff [26];
- sprintf ( dateBuff,
+ snprintf ( dateBuff, sizeof(dateBuff),
"%01d%01d%01d%01d-%01d%01d-%01d%01dT%01d%01d:%01d%01d:%01d%01d%+02d:%02d",
(avchdDateTime[0] >> 4), (avchdDateTime[0] & 0x0F),
(avchdDateTime[1] >> 4), (avchdDateTime[1] & 0x0F),
diff --git a/XMPFiles/source/FileHandlers/P2_Handler.cpp b/XMPFiles/source/FileHandlers/P2_Handler.cpp
index 580fc5e..c36047b 100644
--- a/XMPFiles/source/FileHandlers/P2_Handler.cpp
+++ b/XMPFiles/source/FileHandlers/P2_Handler.cpp
@@ -852,7 +852,7 @@ void P2_MetaHandler::SetGPSPropertyFromLegacyXML ( XML_NodePtr legacyLocationCo
const double minutes = fractionalDegrees * 60.0;
char xmpValue [128];
- sprintf ( xmpValue, "%d,%.5lf%c", static_cast<int>(wholeDegrees), minutes, direction );
+ snprintf ( xmpValue, sizeof(xmpValue), "%d,%.5lf%c", static_cast<int>(wholeDegrees), minutes, direction );
this->xmpObj.SetProperty ( kXMP_NS_EXIF, propName, xmpValue );
this->containsXMP = true;
@@ -902,7 +902,7 @@ void P2_MetaHandler::SetAltitudeFromLegacyXML ( XML_NodePtr legacyLocationConte
char xmpValue [128];
- sprintf ( xmpValue, "%d/1", altitude );
+ snprintf ( xmpValue, sizeof(xmpValue), "%d/1", altitude );
this->xmpObj.SetProperty ( kXMP_NS_EXIF, "GPSAltitude", xmpValue );
this->containsXMP = true;
diff --git a/XMPFiles/source/FileHandlers/PostScript_Handler.cpp b/XMPFiles/source/FileHandlers/PostScript_Handler.cpp
index bc55dfa..c13529a 100644
--- a/XMPFiles/source/FileHandlers/PostScript_Handler.cpp
+++ b/XMPFiles/source/FileHandlers/PostScript_Handler.cpp
@@ -885,6 +885,7 @@ void PostScript_MetaHandler::ParsePSFile()
if (CheckBytes ( ioBuf.ptr, Uns8Ptr("iler"), 4 ))
{
ioBuf.ptr+=4;
+ if ( !CheckFileSpace( fileRef, &ioBuf, 1 ) ) return;
while ( !IsNewline( *ioBuf.ptr ) )
{
if ( !CheckFileSpace( fileRef, &ioBuf, 1 ) ) return;
diff --git a/XMPFiles/source/FileHandlers/SonyHDV_Handler.cpp b/XMPFiles/source/FileHandlers/SonyHDV_Handler.cpp
index e4a7162..f8852f9 100644
--- a/XMPFiles/source/FileHandlers/SonyHDV_Handler.cpp
+++ b/XMPFiles/source/FileHandlers/SonyHDV_Handler.cpp
@@ -6,7 +6,8 @@
// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
// of the Adobe license agreement accompanying it.
// =================================================================================================
-
+#define BUFFER_SIZE 255
+#define TIMECODE_SIZE 256
#include "public/include/XMP_Environment.h" // ! XMP_Environment.h must be the first included header.
#include "public/include/XMP_Const.h"
@@ -290,7 +291,7 @@ static bool ReadIDXFile ( const std::string& idxPath,
idxFile.ReadAll ( &hdvFileBlock.mTotalFrame, 4 );
// Compose file name we expect from file contents and break out on match.
- sprintf ( filenameBuffer, "%02d-%02d-%02d_%02d%02d%02d",
+ snprintf ( filenameBuffer, sizeof(filenameBuffer), "%02d-%02d-%02d_%02d%02d%02d",
hdvFileBlock.mFileNameYear + 2000,
hdvFileBlock.mFileNameMonth,
hdvFileBlock.mFileNameDay,
@@ -377,16 +378,16 @@ static bool ReadIDXFile ( const std::string& idxPath,
// Sample size and scale.
if ( clipSampleScale != 0 ) {
- char buffer[255];
+ char buffer[BUFFER_SIZE];
if ( digestFound || (! xmpObj->DoesPropertyExist ( kXMP_NS_DM, "startTimeScale" )) ) {
- sprintf(buffer, "%d", clipSampleScale);
+ snprintf(buffer,BUFFER_SIZE, "%d", clipSampleScale);
xmpValue = buffer;
xmpObj->SetProperty ( kXMP_NS_DM, "startTimeScale", xmpValue, kXMP_DeleteExisting );
}
if ( digestFound || (! xmpObj->DoesPropertyExist ( kXMP_NS_DM, "startTimeSampleSize" )) ) {
- sprintf(buffer, "%d", clipSampleSize);
+ snprintf(buffer,BUFFER_SIZE, "%d", clipSampleSize);
xmpValue = buffer;
xmpObj->SetProperty ( kXMP_NS_DM, "startTimeSampleSize", xmpValue, kXMP_DeleteExisting );
}
@@ -396,11 +397,11 @@ static bool ReadIDXFile ( const std::string& idxPath,
const int frameCount = (hdvFileBlock.mTotalFrame[0] << 24) + (hdvFileBlock.mTotalFrame[1] << 16) +
(hdvFileBlock.mTotalFrame[2] << 8) + hdvFileBlock.mTotalFrame[3];
- sprintf ( buffer, "%d", frameCount );
+ snprintf ( buffer,BUFFER_SIZE, "%d", frameCount );
xmpValue = buffer;
xmpObj->SetStructField ( kXMP_NS_DM, "duration", kXMP_NS_DM, "value", xmpValue, 0 );
- sprintf ( buffer, "%d/%d", clipSampleSize, clipSampleScale );
+ snprintf ( buffer,BUFFER_SIZE, "%d/%d", clipSampleSize, clipSampleScale );
xmpValue = buffer;
xmpObj->SetStructField ( kXMP_NS_DM, "duration", kXMP_NS_DM, "scale", xmpValue, 0 );
@@ -421,8 +422,8 @@ static bool ReadIDXFile ( const std::string& idxPath,
const int tcHours = ExtractTimeCodeByte ( hdvFileBlock.mStartTimeCode[3], 0x30 );
// HH:MM:SS:FF or HH;MM;SS;FF
- char timecode[256];
- sprintf ( timecode, "%02d%c%02d%c%02d%c%02d", tcHours, chDF, tcMinutes, chDF, tcSeconds, chDF, tcFrames );
+ char timecode[TIMECODE_SIZE];
+ snprintf ( timecode,TIMECODE_SIZE, "%02d%c%02d%c%02d%c%02d", tcHours, chDF, tcMinutes, chDF, tcSeconds, chDF, tcFrames );
std::string sonyTimeString = timecode;
xmpObj->GetStructField ( kXMP_NS_DM, "startTimecode", kXMP_NS_DM, "timeValue", &xmpString, 0 );
@@ -476,7 +477,7 @@ static bool ReadIDXFile ( const std::string& idxPath,
// YYYY-MM-DDThh:mm:ssZ
char date[256];
- sprintf ( date, "%4d-%02d-%02dT%02d:%02d:%02dZ",
+ snprintf ( date,sizeof(date), "%4d-%02d-%02dT%02d:%02d:%02dZ",
hdvFileBlock.mFileNameYear + 2000,
hdvFileBlock.mFileNameMonth,
hdvFileBlock.mFileNameDay,
diff --git a/XMPFiles/source/FormatSupport/ASF_Support.cpp b/XMPFiles/source/FormatSupport/ASF_Support.cpp
index bfde554..5c08b3d 100644
--- a/XMPFiles/source/FormatSupport/ASF_Support.cpp
+++ b/XMPFiles/source/FormatSupport/ASF_Support.cpp
@@ -77,6 +77,7 @@ bool ASF_Support::ReadObject ( XMP_IO* fileRef, ObjectState & inOutObjectState,
if ( bytesRead != kASF_ObjectBaseLen ) return false;
*objectLength = GetUns64LE ( &objectBase.size );
+ if (*objectLength == 0) return false;
inOutPosition += *objectLength;
ObjectData newObject;
diff --git a/XMPFiles/source/FormatSupport/MacScriptExtracts.h b/XMPFiles/source/FormatSupport/MacScriptExtracts.h
index 9856183..6a83ce5 100644
--- a/XMPFiles/source/FormatSupport/MacScriptExtracts.h
+++ b/XMPFiles/source/FormatSupport/MacScriptExtracts.h
@@ -16,6 +16,7 @@
- Script code 28 (smEthiopic) is also used for the Inuit encoding in the Inuktitut
system.
*/
+#if !defined(XMP_MacBuild)
enum {
smRoman = 0,
smJapanese = 1,
@@ -240,5 +241,10 @@ enum {
langAfricaans = 141, /* Use langAfrikaans */
langGreekPoly = 148 /* Use langGreekAncient*/
};
-
+#else
+enum {
+ klangUnspecified = 32767,
+ klangJapanese = 11
+};
+#endif
#endif /* __MacScriptExtracts__ */
diff --git a/XMPFiles/source/FormatSupport/PNG_Support.cpp b/XMPFiles/source/FormatSupport/PNG_Support.cpp
index 79e9f49..7922d03 100644
--- a/XMPFiles/source/FormatSupport/PNG_Support.cpp
+++ b/XMPFiles/source/FormatSupport/PNG_Support.cpp
@@ -236,9 +236,14 @@ namespace PNG_Support
if (chunkType == iTXt)
{
- ExtractXMPPacket(fileRef, chunkLength, tempBuffer, bufferLimit - tempBuffer, inOutPosition, outXMPPacket, outXmpOffset);
- processedXMP = true;
- break;
+ /* There could be multiple iTXt chunks. There should be no more than one
+ * chunk containing XMP in each PNG file.
+ */
+ if (ExtractXMPPacket(fileRef, chunkLength, tempBuffer, bufferLimit - tempBuffer, inOutPosition, outXMPPacket, outXmpOffset))
+ {
+ processedXMP = true;
+ break;
+ }
}
else if (chunkType == IEND && isOpenForRead) {
/*signifies end of png file. No need to process further.*/
diff --git a/XMPFiles/source/FormatSupport/PostScript_Support.cpp b/XMPFiles/source/FormatSupport/PostScript_Support.cpp
index 85e4a4f..4bbc852 100644
--- a/XMPFiles/source/FormatSupport/PostScript_Support.cpp
+++ b/XMPFiles/source/FormatSupport/PostScript_Support.cpp
@@ -1071,12 +1071,12 @@ std::string PostScript_Support::ConvertToDate(const char* inString)
{
if ( date.containsOffset )
{
- sprintf(dtstr,"%04d-%02d-%02dT%02d:%02d:%02d%c%02d:%02d",date.year,date.month,date.day,
+ snprintf(dtstr,sizeof(dtstr),"%04d-%02d-%02dT%02d:%02d:%02d%c%02d:%02d",date.year,date.month,date.day,
date.hours,date.minutes,date.seconds,date.offsetSign,date.offsetHour,date.offsetMin);
}
else
{
- sprintf(dtstr,"%04d-%02d-%02dT%02d:%02d:%02dZ",date.year,date.month,date.day,
+ snprintf(dtstr,sizeof(dtstr),"%04d-%02d-%02dT%02d:%02d:%02dZ",date.year,date.month,date.day,
date.hours,date.minutes,date.seconds);
}
try
diff --git a/XMPFiles/source/FormatSupport/QuickTime_Support.cpp b/XMPFiles/source/FormatSupport/QuickTime_Support.cpp
index c467703..2b31d9f 100644
--- a/XMPFiles/source/FormatSupport/QuickTime_Support.cpp
+++ b/XMPFiles/source/FormatSupport/QuickTime_Support.cpp
@@ -14,13 +14,10 @@
#include <CoreServices/CoreServices.h>
#elif XMP_iOSBuild
#include <CoreFoundation/CoreFoundation.h>
- #include "XMPFiles/source/FormatSupport/MacScriptExtracts.h"
-#else
- #include "XMPFiles/source/FormatSupport/MacScriptExtracts.h"
#endif
#include "XMPFiles/source/FormatSupport/QuickTime_Support.hpp"
-
+#include "XMPFiles/source/FormatSupport/MacScriptExtracts.h"
#include "source/UnicodeConversions.hpp"
#include "source/UnicodeInlines.incl_cpp"
#include "XMPFiles/source/FormatSupport/Reconcile_Impl.hpp"
@@ -48,6 +45,7 @@ static const char * kMacRomanUTF8 [128] = { // UTF-8 mappings for MacRoman 80..F
"\xC2\xAF", "\xCB\x98", "\xCB\x99", "\xCB\x9A", "\xC2\xB8", "\xCB\x9D", "\xCB\x9B", "\xCB\x87"
};
+
static const XMP_Uns32 kMacRomanCP [128] = { // Unicode codepoints for MacRoman 80..FF.
0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1,
0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8,
@@ -71,142 +69,142 @@ static const XMP_Uns32 kMacRomanCP [128] = { // Unicode codepoints for MacRoman
static const XMP_Uns16 kMacLangToScript_0_94 [95] = {
- /* langEnglish (0) */ smRoman,
- /* langFrench (1) */ smRoman,
- /* langGerman (2) */ smRoman,
- /* langItalian (3) */ smRoman,
- /* langDutch (4) */ smRoman,
- /* langSwedish (5) */ smRoman,
- /* langSpanish (6) */ smRoman,
- /* langDanish (7) */ smRoman,
- /* langPortuguese (8) */ smRoman,
- /* langNorwegian (9) */ smRoman,
-
- /* langHebrew (10) */ smHebrew,
- /* langJapanese (11) */ smJapanese,
- /* langArabic (12) */ smArabic,
- /* langFinnish (13) */ smRoman,
- /* langGreek (14) */ smRoman,
- /* langIcelandic (15) */ smRoman,
- /* langMaltese (16) */ smRoman,
- /* langTurkish (17) */ smRoman,
- /* langCroatian (18) */ smRoman,
- /* langTradChinese (19) */ smTradChinese,
-
- /* langUrdu (20) */ smArabic,
- /* langHindi (21) */ smDevanagari,
- /* langThai (22) */ smThai,
- /* langKorean (23) */ smKorean,
- /* langLithuanian (24) */ smCentralEuroRoman,
- /* langPolish (25) */ smCentralEuroRoman,
- /* langHungarian (26) */ smCentralEuroRoman,
- /* langEstonian (27) */ smCentralEuroRoman,
- /* langLatvian (28) */ smCentralEuroRoman,
+ /* langEnglish (0) */ ksmRoman,
+ /* langFrench (1) */ ksmRoman,
+ /* langGerman (2) */ ksmRoman,
+ /* langItalian (3) */ ksmRoman,
+ /* langDutch (4) */ ksmRoman,
+ /* langSwedish (5) */ ksmRoman,
+ /* langSpanish (6) */ ksmRoman,
+ /* langDanish (7) */ ksmRoman,
+ /* langPortuguese (8) */ ksmRoman,
+ /* langNorwegian (9) */ ksmRoman,
+
+ /* langHebrew (10) */ ksmHebrew,
+ /* langJapanese (11) */ ksmJapanese,
+ /* langArabic (12) */ ksmArabic,
+ /* langFinnish (13) */ ksmRoman,
+ /* langGreek (14) */ ksmRoman,
+ /* langIcelandic (15) */ ksmRoman,
+ /* langMaltese (16) */ ksmRoman,
+ /* langTurkish (17) */ ksmRoman,
+ /* langCroatian (18) */ ksmRoman,
+ /* langTradChinese (19) */ ksmTradChinese,
+
+ /* langUrdu (20) */ ksmArabic,
+ /* langHindi (21) */ ksmDevanagari,
+ /* langThai (22) */ ksmThai,
+ /* langKorean (23) */ ksmKorean,
+ /* langLithuanian (24) */ ksmCentralEuroRoman,
+ /* langPolish (25) */ ksmCentralEuroRoman,
+ /* langHungarian (26) */ ksmCentralEuroRoman,
+ /* langEstonian (27) */ ksmCentralEuroRoman,
+ /* langLatvian (28) */ ksmCentralEuroRoman,
/* langSami (29) */ kNoMacScript, // ! Not known, missing from Apple comments.
- /* langFaroese (30) */ smRoman,
- /* langFarsi (31) */ smArabic,
- /* langRussian (32) */ smCyrillic,
- /* langSimpChinese (33) */ smSimpChinese,
- /* langFlemish (34) */ smRoman,
- /* langIrishGaelic (35) */ smRoman,
- /* langAlbanian (36) */ smRoman,
- /* langRomanian (37) */ smRoman,
- /* langCzech (38) */ smCentralEuroRoman,
- /* langSlovak (39) */ smCentralEuroRoman,
-
- /* langSlovenian (40) */ smRoman,
- /* langYiddish (41) */ smHebrew,
- /* langSerbian (42) */ smCyrillic,
- /* langMacedonian (43) */ smCyrillic,
- /* langBulgarian (44) */ smCyrillic,
- /* langUkrainian (45) */ smCyrillic,
- /* langBelorussian (46) */ smCyrillic,
- /* langUzbek (47) */ smCyrillic,
- /* langKazakh (48) */ smCyrillic,
- /* langAzerbaijani (49) */ smCyrillic,
-
- /* langAzerbaijanAr (50) */ smArabic,
- /* langArmenian (51) */ smArmenian,
- /* langGeorgian (52) */ smGeorgian,
- /* langMoldavian (53) */ smCyrillic,
- /* langKirghiz (54) */ smCyrillic,
- /* langTajiki (55) */ smCyrillic,
- /* langTurkmen (56) */ smCyrillic,
- /* langMongolian (57) */ smMongolian,
- /* langMongolianCyr (58) */ smCyrillic,
- /* langPashto (59) */ smArabic,
-
- /* langKurdish (60) */ smArabic,
- /* langKashmiri (61) */ smArabic,
- /* langSindhi (62) */ smArabic,
- /* langTibetan (63) */ smTibetan,
- /* langNepali (64) */ smDevanagari,
- /* langSanskrit (65) */ smDevanagari,
- /* langMarathi (66) */ smDevanagari,
- /* langBengali (67) */ smBengali,
- /* langAssamese (68) */ smBengali,
- /* langGujarati (69) */ smGujarati,
-
- /* langPunjabi (70) */ smGurmukhi,
- /* langOriya (71) */ smOriya,
- /* langMalayalam (72) */ smMalayalam,
- /* langKannada (73) */ smKannada,
- /* langTamil (74) */ smTamil,
- /* langTelugu (75) */ smTelugu,
- /* langSinhalese (76) */ smSinhalese,
- /* langBurmese (77) */ smBurmese,
- /* langKhmer (78) */ smKhmer,
- /* langLao (79) */ smLao,
-
- /* langVietnamese (80) */ smVietnamese,
- /* langIndonesian (81) */ smRoman,
- /* langTagalog (82) */ smRoman,
- /* langMalayRoman (83) */ smRoman,
- /* langMalayArabic (84) */ smArabic,
- /* langAmharic (85) */ smEthiopic,
- /* langTigrinya (86) */ smEthiopic,
- /* langOromo (87) */ smEthiopic,
- /* langSomali (88) */ smRoman,
- /* langSwahili (89) */ smRoman,
-
- /* langKinyarwanda (90) */ smRoman,
- /* langRundi (91) */ smRoman,
- /* langNyanja (92) */ smRoman,
- /* langMalagasy (93) */ smRoman,
- /* langEsperanto (94) */ smRoman
+ /* langFaroese (30) */ ksmRoman,
+ /* langFarsi (31) */ ksmArabic,
+ /* langRussian (32) */ ksmCyrillic,
+ /* langSimpChinese (33) */ ksmSimpChinese,
+ /* langFlemish (34) */ ksmRoman,
+ /* langIrishGaelic (35) */ ksmRoman,
+ /* langAlbanian (36) */ ksmRoman,
+ /* langRomanian (37) */ ksmRoman,
+ /* langCzech (38) */ ksmCentralEuroRoman,
+ /* langSlovak (39) */ ksmCentralEuroRoman,
+
+ /* langSlovenian (40) */ ksmRoman,
+ /* langYiddish (41) */ ksmHebrew,
+ /* langSerbian (42) */ ksmCyrillic,
+ /* langMacedonian (43) */ ksmCyrillic,
+ /* langBulgarian (44) */ ksmCyrillic,
+ /* langUkrainian (45) */ ksmCyrillic,
+ /* langBelorussian (46) */ ksmCyrillic,
+ /* langUzbek (47) */ ksmCyrillic,
+ /* langKazakh (48) */ ksmCyrillic,
+ /* langAzerbaijani (49) */ ksmCyrillic,
+
+ /* langAzerbaijanAr (50) */ ksmArabic,
+ /* langArmenian (51) */ ksmArmenian,
+ /* langGeorgian (52) */ ksmGeorgian,
+ /* langMoldavian (53) */ ksmCyrillic,
+ /* langKirghiz (54) */ ksmCyrillic,
+ /* langTajiki (55) */ ksmCyrillic,
+ /* langTurkmen (56) */ ksmCyrillic,
+ /* langMongolian (57) */ ksmMongolian,
+ /* langMongolianCyr (58) */ ksmCyrillic,
+ /* langPashto (59) */ ksmArabic,
+
+ /* langKurdish (60) */ ksmArabic,
+ /* langKashmiri (61) */ ksmArabic,
+ /* langSindhi (62) */ ksmArabic,
+ /* langTibetan (63) */ ksmTibetan,
+ /* langNepali (64) */ ksmDevanagari,
+ /* langSanskrit (65) */ ksmDevanagari,
+ /* langMarathi (66) */ ksmDevanagari,
+ /* langBengali (67) */ ksmBengali,
+ /* langAssamese (68) */ ksmBengali,
+ /* langGujarati (69) */ ksmGujarati,
+
+ /* langPunjabi (70) */ ksmGurmukhi,
+ /* langOriya (71) */ ksmOriya,
+ /* langMalayalam (72) */ ksmMalayalam,
+ /* langKannada (73) */ ksmKannada,
+ /* langTamil (74) */ ksmTamil,
+ /* langTelugu (75) */ ksmTelugu,
+ /* langSinhalese (76) */ ksmSinhalese,
+ /* langBurmese (77) */ ksmBurmese,
+ /* langKhmer (78) */ ksmKhmer,
+ /* langLao (79) */ ksmLao,
+
+ /* langVietnamese (80) */ ksmVietnamese,
+ /* langIndonesian (81) */ ksmRoman,
+ /* langTagalog (82) */ ksmRoman,
+ /* langMalayRoman (83) */ ksmRoman,
+ /* langMalayArabic (84) */ ksmArabic,
+ /* langAmharic (85) */ ksmEthiopic,
+ /* langTigrinya (86) */ ksmEthiopic,
+ /* langOromo (87) */ ksmEthiopic,
+ /* langSomali (88) */ ksmRoman,
+ /* langSwahili (89) */ ksmRoman,
+
+ /* langKinyarwanda (90) */ ksmRoman,
+ /* langRundi (91) */ ksmRoman,
+ /* langNyanja (92) */ ksmRoman,
+ /* langMalagasy (93) */ ksmRoman,
+ /* langEsperanto (94) */ ksmRoman
}; // kMacLangToScript_0_94
static const XMP_Uns16 kMacLangToScript_128_151 [24] = {
- /* langWelsh (128) */ smRoman,
- /* langBasque (129) */ smRoman,
-
- /* langCatalan (130) */ smRoman,
- /* langLatin (131) */ smRoman,
- /* langQuechua (132) */ smRoman,
- /* langGuarani (133) */ smRoman,
- /* langAymara (134) */ smRoman,
- /* langTatar (135) */ smCyrillic,
- /* langUighur (136) */ smArabic,
- /* langDzongkha (137) */ smTibetan,
- /* langJavaneseRom (138) */ smRoman,
- /* langSundaneseRom (139) */ smRoman,
-
- /* langGalician (140) */ smRoman,
- /* langAfrikaans (141) */ smRoman,
- /* langBreton (142) */ smRoman,
- /* langInuktitut (143) */ smEthiopic,
- /* langScottishGaelic (144) */ smRoman,
- /* langManxGaelic (145) */ smRoman,
- /* langIrishGaelicScript (146) */ smRoman,
- /* langTongan (147) */ smRoman,
- /* langGreekAncient (148) */ smGreek,
- /* langGreenlandic (149) */ smRoman,
-
- /* langAzerbaijanRoman (150) */ smRoman,
- /* langNynorsk (151) */ smRoman
+ /* langWelsh (128) */ ksmRoman,
+ /* langBasque (129) */ ksmRoman,
+
+ /* langCatalan (130) */ ksmRoman,
+ /* langLatin (131) */ ksmRoman,
+ /* langQuechua (132) */ ksmRoman,
+ /* langGuarani (133) */ ksmRoman,
+ /* langAymara (134) */ ksmRoman,
+ /* langTatar (135) */ ksmCyrillic,
+ /* langUighur (136) */ ksmArabic,
+ /* langDzongkha (137) */ ksmTibetan,
+ /* langJavaneseRom (138) */ ksmRoman,
+ /* langSundaneseRom (139) */ ksmRoman,
+
+ /* langGalician (140) */ ksmRoman,
+ /* langAfrikaans (141) */ ksmRoman,
+ /* langBreton (142) */ ksmRoman,
+ /* langInuktitut (143) */ ksmEthiopic,
+ /* langScottishGaelic (144) */ ksmRoman,
+ /* langManxGaelic (145) */ ksmRoman,
+ /* langIrishGaelicScript (146) */ ksmRoman,
+ /* langTongan (147) */ ksmRoman,
+ /* langGreekAncient (148) */ ksmGreek,
+ /* langGreenlandic (149) */ ksmRoman,
+
+ /* langAzerbaijanRoman (150) */ ksmRoman,
+ /* langNynorsk (151) */ ksmRoman
}; // kMacLangToScript_128_151
@@ -816,7 +814,7 @@ static inline bool IsMacLangKnown ( XMP_Uns16 macLang )
if ( macScript == kNoMacScript ) return false;
#if XMP_UNIXBuild | XMP_AndroidBuild
- if ( macScript != smRoman ) return false;
+ if ( macScript != ksmRoman ) return false;
#elif XMP_WinBuild
if ( GetWinCP(macLang) == 0 ) return false;
#endif
@@ -914,7 +912,7 @@ bool TradQT_Manager::ParseCachedBoxes ( const MOOV_Manager & moovMgr )
XMP_Uns8 * boxPtr = (XMP_Uns8*) currInfo.content;
XMP_Uns8 * boxEnd = boxPtr + currInfo.contentSize;
- XMP_Uns16 miniLen, macLang;
+ XMP_Uns32 miniLen; XMP_Uns16 macLang;
for ( ; boxPtr < boxEnd-4; boxPtr += miniLen ) {
diff --git a/XMPFiles/source/FormatSupport/QuickTime_Support.hpp b/XMPFiles/source/FormatSupport/QuickTime_Support.hpp
index ce202ea..86c30a9 100644
--- a/XMPFiles/source/FormatSupport/QuickTime_Support.hpp
+++ b/XMPFiles/source/FormatSupport/QuickTime_Support.hpp
@@ -44,6 +44,42 @@ enum { // List of recognized items from the QuickTime 'moov'/'udta' box.
kQTilst_TimeSize = 0xA954535AUL // 'TSZ'
};
+enum {
+ ksmRoman = 0,
+ ksmJapanese = 1,
+ ksmTradChinese = 2, /* Traditional Chinese*/
+ ksmKorean = 3,
+ ksmArabic = 4,
+ ksmHebrew = 5,
+ ksmGreek = 6,
+ ksmCyrillic = 7,
+ ksmRSymbol = 8, /* Right-left symbol*/
+ ksmDevanagari = 9,
+ ksmGurmukhi = 10,
+ ksmGujarati = 11,
+ ksmOriya = 12,
+ ksmBengali = 13,
+ ksmTamil = 14,
+ ksmTelugu = 15,
+ ksmKannada = 16, /* Kannada/Kanarese*/
+ ksmMalayalam = 17,
+ ksmSinhalese = 18,
+ ksmBurmese = 19,
+ ksmKhmer = 20, /* Khmer/Cambodian*/
+ ksmThai = 21,
+ ksmLao = 22,
+ ksmGeorgian = 23,
+ ksmArmenian = 24,
+ ksmSimpChinese = 25, /* Simplified Chinese*/
+ ksmTibetan = 26,
+ ksmMongolian = 27,
+ ksmEthiopic = 28,
+ ksmGeez = 28, /* Synonym for ksmEthiopic*/
+ ksmCentralEuroRoman = 29, /* For Czech, Slovak, Polish, Hungarian, Baltic langs*/
+ ksmVietnamese = 30,
+ ksmExtArabic = 31, /* extended Arabic*/
+ ksmUninterp = 32 /* uninterpreted symbols, e.g. palette symbols*/
+};
enum {
kNoMacLang = 0xFFFF,
diff --git a/XMPFiles/source/FormatSupport/Reconcile_Impl.cpp b/XMPFiles/source/FormatSupport/Reconcile_Impl.cpp
index b52700d..9344fd5 100644
--- a/XMPFiles/source/FormatSupport/Reconcile_Impl.cpp
+++ b/XMPFiles/source/FormatSupport/Reconcile_Impl.cpp
@@ -13,7 +13,7 @@
#include "XMPFiles/source/FormatSupport/Reconcile_Impl.hpp"
#include "source/UnicodeConversions.hpp"
#include "source/XIO.hpp"
-
+#include "XMPFiles/source/FormatSupport/MacScriptExtracts.h"
#if XMP_WinBuild
#elif XMP_MacBuild
#include <CoreServices/CoreServices.h>
@@ -124,7 +124,7 @@ bool ReconcileUtils::IsUTF8 ( const void * textPtr, size_t textLen )
OSStatus err;
TextEncoding destEncoding;
- if ( macLang == langUnspecified ) macLang = kTextLanguageDontCare;
+ if ( macLang == klangUnspecified ) macLang = kTextLanguageDontCare;
err = UpgradeScriptInfoToTextEncoding ( macScript, macLang, kTextRegionDontCare, 0, &destEncoding );
if ( err != noErr ) XMP_Throw ( "UpgradeScriptInfoToTextEncoding failed", kXMPErr_ExternalFailure );
@@ -202,7 +202,7 @@ void ReconcileUtils::UTF8ToLocal ( const void * _utf8Ptr, size_t utf8Len, std::s
#elif XMP_MacBuild
- UTF8ToMacEncoding ( smSystemScript, kTextLanguageDontCare, utf8Ptr, utf8Len, local );
+ UTF8ToMacEncoding ( smSystem_Script, kTextLanguageDontCare, utf8Ptr, utf8Len, local );
#elif XMP_UNIXBuild
@@ -311,7 +311,7 @@ void ReconcileUtils::UTF8ToLatin1 ( const void * _utf8Ptr, size_t utf8Len, std::
OSStatus err;
TextEncoding srcEncoding;
- if ( macLang == langUnspecified ) macLang = kTextLanguageDontCare;
+ if ( macLang == klangUnspecified ) macLang = kTextLanguageDontCare;
err = UpgradeScriptInfoToTextEncoding ( macScript, macLang, kTextRegionDontCare, 0, &srcEncoding );
if ( err != noErr ) XMP_Throw ( "UpgradeScriptInfoToTextEncoding failed", kXMPErr_ExternalFailure );
@@ -389,7 +389,7 @@ void ReconcileUtils::LocalToUTF8 ( const void * _localPtr, size_t localLen, std:
#elif XMP_MacBuild
- MacEncodingToUTF8 ( smSystemScript, kTextLanguageDontCare, localPtr, localLen, utf8 );
+ MacEncodingToUTF8 ( smSystem_Script, kTextLanguageDontCare, localPtr, localLen, utf8 );
#elif XMP_UNIXBuild
diff --git a/XMPFiles/source/FormatSupport/Reconcile_Impl.hpp b/XMPFiles/source/FormatSupport/Reconcile_Impl.hpp
index 95aea90..581276f 100644
--- a/XMPFiles/source/FormatSupport/Reconcile_Impl.hpp
+++ b/XMPFiles/source/FormatSupport/Reconcile_Impl.hpp
@@ -22,7 +22,10 @@
// =================================================================================================
typedef XMP_Uns8 MD5_Digest[16]; // ! Should be in MD5.h.
-
+/* Temporary fix for deprecated warning message, will add proper fix later */
+enum {
+ smSystem_Script = -1, /* designates system script.*/
+};
enum {
kDigestMissing = -1, // A partial import is done, existing XMP is left alone.
kDigestDiffers = 0, // A full import is done, existing XMP is deleted or replaced.
diff --git a/XMPFiles/source/FormatSupport/XMPScanner.cpp b/XMPFiles/source/FormatSupport/XMPScanner.cpp
index 234baec..d66b303 100644
--- a/XMPFiles/source/FormatSupport/XMPScanner.cpp
+++ b/XMPFiles/source/FormatSupport/XMPScanner.cpp
@@ -989,7 +989,7 @@ XMPScanner::InternalSnip::InternalSnip ( XMP_Int64 offset, XMP_Int64 length )
XMPScanner::InternalSnip::InternalSnip ( const InternalSnip & rhs ) :
fInfo ( rhs.fInfo ),
- fMachine ( NULL )
+ fMachine ( nullptr )
{
assert ( rhs.fMachine.get() == NULL ); // Don't copy a snip with a machine.
@@ -1262,8 +1262,8 @@ XMPScanner::Scan ( const void * bufferOrigin, XMP_Int64 bufferOffset, XMP_Int64
{
// Some versions of gcc complain about the assignment operator above. This avoids the gcc bug.
PacketMachine * pm = new PacketMachine ( bufferOffset, bufferOrigin, bufferLength );
- auto_ptr<PacketMachine> ap ( pm );
- snipPos->fMachine = ap;
+ std::unique_ptr<PacketMachine> ap ( pm );
+ snipPos->fMachine = std::move(ap);
}
#endif
thisMachine = snipPos->fMachine.get();
@@ -1286,8 +1286,8 @@ XMPScanner::Scan ( const void * bufferOrigin, XMP_Int64 bufferOffset, XMP_Int64
#else
{
// Some versions of gcc complain about the assignment operator above. This avoids the gcc bug.
- auto_ptr<PacketMachine> ap ( 0 );
- snipPos->fMachine = ap;
+ std::unique_ptr<PacketMachine> ap;
+ snipPos->fMachine = std::move(ap);
}
#endif
bufferDone = true;
@@ -1379,8 +1379,8 @@ XMPScanner::Scan ( const void * bufferOrigin, XMP_Int64 bufferOffset, XMP_Int64
#else
{
// Some versions of gcc complain about the assignment operator above. This avoids the gcc bug.
- auto_ptr<PacketMachine> ap ( 0 );
- snipPos->fMachine = ap;
+ std::unique_ptr<PacketMachine> ap;
+ snipPos->fMachine = std::move(ap);
}
#endif
bufferDone = true;
@@ -1392,7 +1392,7 @@ XMPScanner::Scan ( const void * bufferOrigin, XMP_Int64 bufferOffset, XMP_Int64
InternalSnipIterator tailPos = NextSnip ( snipPos );
- tailPos->fMachine = snipPos->fMachine; // auto_ptr assignment - taking ownership
+ tailPos->fMachine = std::move(snipPos->fMachine); // auto_ptr assignment - taking ownership
thisMachine->ResetMachine ();
snipPos = tailPos;
diff --git a/XMPFiles/source/FormatSupport/XMPScanner.hpp b/XMPFiles/source/FormatSupport/XMPScanner.hpp
index aaeacc1..c9753c0 100644
--- a/XMPFiles/source/FormatSupport/XMPScanner.hpp
+++ b/XMPFiles/source/FormatSupport/XMPScanner.hpp
@@ -156,7 +156,7 @@ private: // XMPScanner
public:
SnipInfo fInfo; // The public info about this snip.
- std::auto_ptr<PacketMachine> fMachine; // The state machine for "active" snips.
+ std::unique_ptr<PacketMachine> fMachine; // The state machine for "active" snips.
InternalSnip ( XMP_Int64 offset, XMP_Int64 length );
InternalSnip ( const InternalSnip & );
diff --git a/XMPFiles/source/PluginHandler/PluginManager.cpp b/XMPFiles/source/PluginHandler/PluginManager.cpp
index 8fb79d7..2b99cd3 100644
--- a/XMPFiles/source/PluginHandler/PluginManager.cpp
+++ b/XMPFiles/source/PluginHandler/PluginManager.cpp
@@ -688,7 +688,7 @@ void PluginManager::scanRecursive( const std::string & tempPath, std::vector<std
StringVec::const_iterator iterFound =
std::find_if ( mExtensions.begin(), mExtensions.end(),
- std::bind2nd ( std::equal_to<std::string>(), fileExt ) );
+ std::bind(std::equal_to<std::string>(), std::placeholders::_1, fileExt));
if ( iterFound != mExtensions.end() ) {
@@ -698,7 +698,7 @@ void PluginManager::scanRecursive( const std::string & tempPath, std::vector<std
StringVec::const_iterator pluginNeeded =
std::find_if ( mPluginsNeeded.begin(), mPluginsNeeded.end(),
- std::bind2nd ( std::equal_to<std::string>(), childName ) );
+ std::bind(std::equal_to<std::string>(), std::placeholders::_1, childName));
if ( (pluginNeeded != mPluginsNeeded.end()) || mPluginsNeeded.empty() ) {
ioFoundLibs.push_back ( childPath );
diff --git a/XMPFiles/source/PluginHandler/XMPAtoms.h b/XMPFiles/source/PluginHandler/XMPAtoms.h
index 102c489..d1c0aea 100644
--- a/XMPFiles/source/PluginHandler/XMPAtoms.h
+++ b/XMPFiles/source/PluginHandler/XMPAtoms.h
@@ -83,14 +83,7 @@ enum
#define XMPAtomNull emptyStr_K
-struct StringCompare : std::binary_function<const std::string &, const std::string &, bool>
-{
- bool operator() (const std::string & a, const std::string & b) const
- {
- return ( a.compare(b) < 0 );
- }
-};
-typedef std::map<std::string, XMPAtom, StringCompare> XMPAtomsMap;
+typedef std::map<std::string, XMPAtom> XMPAtomsMap;
/** @class ResourceParser
diff --git a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/MODULE_IDENTIFIER.txt b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/MODULE_IDENTIFIER.txt
index f7feb37..f7feb37 100644..100755
--- a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/MODULE_IDENTIFIER.txt
+++ b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/MODULE_IDENTIFIER.txt
diff --git a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/XMPPLUGINUIDS.txt b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/XMPPLUGINUIDS.txt
index 91d2a23..91d2a23 100644..100755
--- a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/XMPPLUGINUIDS.txt
+++ b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/XMPPLUGINUIDS.txt
diff --git a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.xpi b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.xpi
index fc0d931..7fc2f6b 100755
--- a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.xpi
+++ b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.xpi
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/libMiniPDFL.so b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/libMiniPDFL.so
index 3ff8d87..573feb1 100755
--- a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/libMiniPDFL.so
+++ b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux/libMiniPDFL.so
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/MODULE_IDENTIFIER.txt b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/MODULE_IDENTIFIER.txt
index f7feb37..f7feb37 100644..100755
--- a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/MODULE_IDENTIFIER.txt
+++ b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/MODULE_IDENTIFIER.txt
diff --git a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/XMPPLUGINUIDS.txt b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/XMPPLUGINUIDS.txt
index 4f1d470..4f1d470 100644..100755
--- a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/XMPPLUGINUIDS.txt
+++ b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/XMPPLUGINUIDS.txt
diff --git a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.xpi b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.xpi
index 6e8ddf7..3f9242b 100755
--- a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.xpi
+++ b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.xpi
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/libMiniPDFL.so b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/libMiniPDFL.so
index 5df9d7a..537496d 100755
--- a/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/libMiniPDFL.so
+++ b/XMPFilesPlugins/PDF_Handler/i80386linux/i80386linux_x64/libMiniPDFL.so
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/PDF_Handler b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/PDF_Handler
deleted file mode 100755
index 160d9c0..0000000
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/PDF_Handler
+++ /dev/null
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/Info.plist b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/Info.plist
deleted file mode 100644
index 4e3e1e6..0000000
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/Info.plist
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>BuildMachineOSBuild</key>
- <string>15E65</string>
- <key>CFBundleDevelopmentRegion</key>
- <string>English</string>
- <key>CFBundleExecutable</key>
- <string>PDF_Handler</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundlePackageType</key>
- <string>FMWK</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleSupportedPlatforms</key>
- <array>
- <string>MacOSX</string>
- </array>
- <key>CFBundleVersion</key>
- <string></string>
- <key>CSResourcesFileMapped</key>
- <true/>
- <key>DTCompiler</key>
- <string>com.apple.compilers.llvm.clang.1_0</string>
- <key>DTPlatformBuild</key>
- <string>7D1014</string>
- <key>DTPlatformVersion</key>
- <string>GM</string>
- <key>DTSDKBuild</key>
- <string>15E60</string>
- <key>DTSDKName</key>
- <string>macosx10.11</string>
- <key>DTXcode</key>
- <string>0731</string>
- <key>DTXcodeBuild</key>
- <string>7D1014</string>
-</dict>
-</plist>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFL
deleted file mode 100755
index 860cf23..0000000
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFL
+++ /dev/null
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/PDF_Handler b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/PDF_Handler
index f561ba7..f561ba7 120000
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/PDF_Handler
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/PDF_Handler
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Resources b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources
index 953ee36..953ee36 120000
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Resources
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/PDF_Handler b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/PDF_Handler
new file mode 100755
index 0000000..a6d9493
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/PDF_Handler
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/Info.plist b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/Info.plist
new file mode 100755
index 0000000..85e0079
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/Info.plist
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>BuildMachineOSBuild</key>
+ <string>22G313</string>
+ <key>CFBundleExecutable</key>
+ <string>PDF_Handler</string>
+ <key>CFBundleGetInfoString</key>
+ <string>PDF Handler 1.0, Copyright (c) 2022</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.xmp.PDF_Handler</string>
+ <key>CFBundleName</key>
+ <string>PDF_Handler</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleShortVersionString</key>
+ <string>PDF Handler 1.0</string>
+ <key>CFBundleSignature</key>
+ <string>XMP </string>
+ <key>CFBundleSupportedPlatforms</key>
+ <array>
+ <string>MacOSX</string>
+ </array>
+ <key>Configuration</key>
+ <string>Release</string>
+ <key>DTCompiler</key>
+ <string>com.apple.compilers.llvm.clang.1_0</string>
+ <key>DTPlatformBuild</key>
+ <string>14C18</string>
+ <key>DTPlatformName</key>
+ <string>macosx</string>
+ <key>DTPlatformVersion</key>
+ <string>13.1</string>
+ <key>DTSDKBuild</key>
+ <string>22C55</string>
+ <key>DTSDKName</key>
+ <string>macosx13.1</string>
+ <key>DTXcode</key>
+ <string>1420</string>
+ <key>DTXcodeBuild</key>
+ <string>14C18</string>
+ <key>FileVersion</key>
+ <string>1.0</string>
+ <key>LSMinimumSystemVersion</key>
+ <string>10.15</string>
+ <key>ProductName</key>
+ <string>PDF Handler</string>
+ <key>ProductVersion</key>
+ <string>1.0</string>
+</dict>
+</plist>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MODULE_IDENTIFIER.txt b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MODULE_IDENTIFIER.txt
index f7feb37..f7feb37 100644..100755
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MODULE_IDENTIFIER.txt
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MODULE_IDENTIFIER.txt
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL
index 1987270..1987270 120000
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Resources b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Resources
index 953ee36..953ee36 120000
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Resources
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Resources
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFL b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFL
new file mode 100755
index 0000000..a196792
--- /dev/null
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFL
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/English.lproj/InfoPlist.strings b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/English.lproj/InfoPlist.strings
index 92f120c..33f61ca 100644..100755
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/English.lproj/InfoPlist.strings
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/English.lproj/InfoPlist.strings
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist
index fd6b719..f9cb6cf 100644..100755
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist
@@ -5,15 +5,15 @@
<key>AcrobatCL</key>
<string>448391</string>
<key>BuildDate</key>
- <string>2019/09/25-13:09:35</string>
+ <string>2023/11/08-09:35:53</string>
<key>BuildID</key>
- <string>44714</string>
+ <string>53914</string>
<key>BuildVersion</key>
- <string>79.352763</string>
+ <string>79.5aaec82</string>
<key>CFBundleExecutable</key>
<string>MiniPDFL</string>
<key>CFBundleGetInfoString</key>
- <string>AdobePDFL 1.0.0.44714, © 1987-2012 Adobe Systems Incorporated.
+ <string>AdobePDFL 1.0.0.53914, © 1987-2012 Adobe Systems Incorporated.
All Rights Reserved.</string>
<key>CFBundleIdentifier</key>
<string>com.adobe.PDFL</string>
@@ -26,7 +26,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.0.0.44714</string>
+ <string>1.0.0.53914</string>
<key>PDFL_IPID</key>
<string>&lt;AdobeIP#0000583&gt;</string>
<key>ReleaseCL</key>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources
index e8dce74..6ae6535 100644..100755
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources
@@ -8,14 +8,14 @@
<dict>
<key>hash</key>
<data>
- TyGFzX1l1BVdhR21fphow+57CRU=
+ diruTMJBDWnaJyi2igJNQ74TH90=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/Info.plist</key>
<data>
- euoAbAXBSQbgKCFZlMpgGe/KIn4=
+ GJduAkIrQqM7tRDfCAHlzf7Fp18=
</data>
</dict>
<key>files2</key>
@@ -24,7 +24,7 @@
<dict>
<key>hash2</key>
<data>
- puU+EbSHAKJMB6+u01yX7TJKxiLP52xsnUiUFpdDE50=
+ EG9l+VFYtJS69PXfVjk9kBuOA8A89UiBEs9JqntMzpI=
</data>
<key>optional</key>
<true/>
@@ -33,7 +33,7 @@
<dict>
<key>hash2</key>
<data>
- UO/KBSmezLIcr86W0+65a4BVSEQXI4VBrivfNOHCAk0=
+ WSPjG/RsoFVaW/5FGa4nqQYosJflHfO3Suf2dQcjmaQ=
</data>
</dict>
</dict>
@@ -55,6 +55,11 @@
<key>weight</key>
<real>1100</real>
</dict>
+ <key>^Resources/Base\.lproj/</key>
+ <dict>
+ <key>weight</key>
+ <real>1010</real>
+ </dict>
<key>^version.plist$</key>
<true/>
</dict>
@@ -114,6 +119,11 @@
<key>weight</key>
<real>1100</real>
</dict>
+ <key>^Resources/Base\.lproj/</key>
+ <dict>
+ <key>weight</key>
+ <real>1010</real>
+ </dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current
index 8c7e5a6..8c7e5a6 120000
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/XMPPLUGINUIDS.txt b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/XMPPLUGINUIDS.txt
index 4f1d470..2632a0d 100644..100755
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/Resources/XMPPLUGINUIDS.txt
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/XMPPLUGINUIDS.txt
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<PluginResource Architecture="x64">
+<PluginResource>
<Handler
Name="adobe.coretech.xmp.minipdfl"
Version="1.00"
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/_CodeSignature/CodeResources b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/_CodeSignature/CodeResources
index 6eda86a..760dfb4 100644..100755
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/A/_CodeSignature/CodeResources
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/_CodeSignature/CodeResources
@@ -4,13 +4,9 @@
<dict>
<key>files</key>
<dict>
- <key>Resources/.DS_Store</key>
- <data>
- 3y++sUAKzaCQmjLBz2v0kvESHgc=
- </data>
<key>Resources/Info.plist</key>
<data>
- 21kphF7EViqvN2KkroutTBbMwHc=
+ J0Bw+mLTnNpI8XmurPJll4g+2CU=
</data>
<key>Resources/MODULE_IDENTIFIER.txt</key>
<data>
@@ -18,49 +14,41 @@
</data>
<key>Resources/MiniPDFL.framework/Versions/A/MiniPDFL</key>
<data>
- yQS3U/6c6+6HKTGut/mB5vWhyYY=
+ WV0IaNU6RHdWcqU7WiL0ohT6cGo=
</data>
<key>Resources/MiniPDFL.framework/Versions/A/Resources/English.lproj/InfoPlist.strings</key>
<dict>
<key>hash</key>
<data>
- TyGFzX1l1BVdhR21fphow+57CRU=
+ diruTMJBDWnaJyi2igJNQ74TH90=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist</key>
<data>
- euoAbAXBSQbgKCFZlMpgGe/KIn4=
+ GJduAkIrQqM7tRDfCAHlzf7Fp18=
</data>
<key>Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources</key>
<data>
- OKik3QpMGMmp14H6wor/w2Lquac=
+ FfuAN/VB+MYqBPp8tzZ+mp+7OMk=
</data>
<key>Resources/XMPPLUGINUIDS.txt</key>
<data>
- rkFXsE/YEuhTtTBjDsUaBeLcyHA=
+ HpU7t7M/fUNLz30exHawSr93rkE=
</data>
</dict>
<key>files2</key>
<dict>
<key>Resources/Info.plist</key>
<dict>
- <key>hash</key>
- <data>
- 21kphF7EViqvN2KkroutTBbMwHc=
- </data>
<key>hash2</key>
<data>
- fKWx9QaDVEdobJjgmWRc6K7xwJMPsjF36J1H/EeQd9o=
+ 3caXCPL0H36vDtBdNL44KTvyDVZbF5oUMdF3L+5gUcM=
</data>
</dict>
<key>Resources/MODULE_IDENTIFIER.txt</key>
<dict>
- <key>hash</key>
- <data>
- eJbkRFTOj20cUgbc17vH6f5HfH0=
- </data>
<key>hash2</key>
<data>
I2N+OsUr2MUohlbb1olmWjGPpIhkZue72u4x2d+rr0g=
@@ -78,48 +66,32 @@
</dict>
<key>Resources/MiniPDFL.framework/Versions/A/MiniPDFL</key>
<dict>
- <key>hash</key>
- <data>
- yQS3U/6c6+6HKTGut/mB5vWhyYY=
- </data>
<key>hash2</key>
<data>
- 43lKc02Z2eGdYPlYpHUlelRhQxLeCLl8PL9QPpLokXo=
+ p9g6CtaIq6TTiIpZdMuDJdVgoGh5LL8iejv2lVbBbt0=
</data>
</dict>
<key>Resources/MiniPDFL.framework/Versions/A/Resources/English.lproj/InfoPlist.strings</key>
<dict>
- <key>hash</key>
- <data>
- TyGFzX1l1BVdhR21fphow+57CRU=
- </data>
<key>hash2</key>
<data>
- puU+EbSHAKJMB6+u01yX7TJKxiLP52xsnUiUFpdDE50=
+ EG9l+VFYtJS69PXfVjk9kBuOA8A89UiBEs9JqntMzpI=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist</key>
<dict>
- <key>hash</key>
- <data>
- euoAbAXBSQbgKCFZlMpgGe/KIn4=
- </data>
<key>hash2</key>
<data>
- UO/KBSmezLIcr86W0+65a4BVSEQXI4VBrivfNOHCAk0=
+ WSPjG/RsoFVaW/5FGa4nqQYosJflHfO3Suf2dQcjmaQ=
</data>
</dict>
<key>Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources</key>
<dict>
- <key>hash</key>
- <data>
- OKik3QpMGMmp14H6wor/w2Lquac=
- </data>
<key>hash2</key>
<data>
- Pf+RZzMHEf8thOWsmZIOh9Zbj6Q2Y+LDBAh3n86AgMA=
+ H+zbCrYJ6J81hN2QOItai14jkzkySukYxVirt5duT10=
</data>
</dict>
<key>Resources/MiniPDFL.framework/Versions/Current</key>
@@ -129,13 +101,9 @@
</dict>
<key>Resources/XMPPLUGINUIDS.txt</key>
<dict>
- <key>hash</key>
- <data>
- rkFXsE/YEuhTtTBjDsUaBeLcyHA=
- </data>
<key>hash2</key>
<data>
- iHZQ8/5ynRx/HQGO/IGhTxdZd5MkVMCzqgD19SE8Gfo=
+ sbOZ9ZAQy4AFxTItvPw/eLYzRyIFTuEnG8HNb/gVGs8=
</data>
</dict>
</dict>
@@ -157,6 +125,11 @@
<key>weight</key>
<real>1100</real>
</dict>
+ <key>^Resources/Base\.lproj/</key>
+ <dict>
+ <key>weight</key>
+ <real>1010</real>
+ </dict>
<key>^version.plist$</key>
<true/>
</dict>
@@ -216,6 +189,11 @@
<key>weight</key>
<real>1100</real>
</dict>
+ <key>^Resources/Base\.lproj/</key>
+ <dict>
+ <key>weight</key>
+ <real>1010</real>
+ </dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
diff --git a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/Current b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current
index 8c7e5a6..8c7e5a6 120000
--- a/XMPFilesPlugins/PDF_Handler/macintosh/intel_64_libcpp/PDF_Handler.xpi/Versions/Current
+++ b/XMPFilesPlugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current
diff --git a/XMPFilesPlugins/PDF_Handler/windows/windows_x64/MiniPDFL.dll b/XMPFilesPlugins/PDF_Handler/windows/windows_x64/MiniPDFL.dll
index 4ced34e..2c0e3b1 100644
--- a/XMPFilesPlugins/PDF_Handler/windows/windows_x64/MiniPDFL.dll
+++ b/XMPFilesPlugins/PDF_Handler/windows/windows_x64/MiniPDFL.dll
Binary files differ
diff --git a/XMPFilesPlugins/PDF_Handler/windows/windows_x64/PDF_Handler.xpi b/XMPFilesPlugins/PDF_Handler/windows/windows_x64/PDF_Handler.xpi
index 58a5987..f3c1630 100644
--- a/XMPFilesPlugins/PDF_Handler/windows/windows_x64/PDF_Handler.xpi
+++ b/XMPFilesPlugins/PDF_Handler/windows/windows_x64/PDF_Handler.xpi
Binary files differ
diff --git a/XMPFilesPlugins/PluginTemplate/build/GeneratePluginTemplate_win.bat b/XMPFilesPlugins/PluginTemplate/build/GeneratePluginTemplate_win.bat
index c252786..05b59d9 100755
--- a/XMPFilesPlugins/PluginTemplate/build/GeneratePluginTemplate_win.bat
+++ b/XMPFilesPlugins/PluginTemplate/build/GeneratePluginTemplate_win.bat
@@ -43,10 +43,10 @@ set GENERATE_ALL=On
:32DLL
echo "Generating PluginTemplate Dynamic Win32"
-set GENERATOR=Visual Studio 16 2019
+set GENERATOR=Visual Studio 17 2022
set GeneratorArchitecture=Win32
set BITS64=OFF
-set CMakeFolder="vc16/windows"
+set CMakeFolder="vc17/windows"
set CMake_ARCH=x86
IF "%GENERATE_ALL%"=="On" (
set NEXT_LABEL=64DLL
@@ -56,10 +56,10 @@ GOTO GenerateNow
:64DLL
echo "Generating PluginTemplate Dynamic x64"
-set GENERATOR=Visual Studio 16 2019
+set GENERATOR=Visual Studio 17 2022
set GeneratorArchitecture=x64
set BITS64=ON
-set CMakeFolder="vc16/windows_x64"
+set CMakeFolder="vc17/windows_x64"
set CMake_ARCH=x64
IF "%GENERATE_ALL%"=="On" (
set NEXT_LABEL=ok
@@ -92,7 +92,7 @@ exit /B 0
:CLEANALL
echo "Cleaning..."
-if exist vc16 rmdir /S /Q vc16
+if exist vc17 rmdir /S /Q vc17
echo "Done"
pause
exit /B 0
diff --git a/XMPFilesPlugins/api/source/PluginRegistry.h b/XMPFilesPlugins/api/source/PluginRegistry.h
index 467fea3..241e839 100644
--- a/XMPFilesPlugins/api/source/PluginRegistry.h
+++ b/XMPFilesPlugins/api/source/PluginRegistry.h
@@ -68,14 +68,7 @@ public:
private:
- struct StringCompare : std::binary_function< const std::string &, const std::string &, bool >
- {
- bool operator()( const std::string & a, const std::string & b ) const
- {
- return ( a.compare(b) < 0 );
- }
- };
- typedef std::map<std::string, const PluginCreatorBase*, StringCompare> RegistryEntryMap;
+ typedef std::map<std::string, const PluginCreatorBase*> RegistryEntryMap;
PluginRegistry(){}
~PluginRegistry();
diff --git a/build/GenerateXMPToolkitSDK_win.bat b/build/GenerateXMPToolkitSDK_win.bat
index 338f359..1c26a2b 100755
--- a/build/GenerateXMPToolkitSDK_win.bat
+++ b/build/GenerateXMPToolkitSDK_win.bat
@@ -37,7 +37,7 @@ set GENERATE_ALL=On
:32DLL
echo "Generating XMPSDKToolkit Dynamic Win32"
-set VS_VERSION=2019
+set VS_VERSION=2022
set BUILD_TYPE=Dynamic
set BITS=32
IF "%GENERATE_ALL%"=="On" (
@@ -48,7 +48,7 @@ GOTO GenerateNow
:32LIB
echo "Generating XMPSDKToolkit Static Win32"
-set VS_VERSION=2019
+set VS_VERSION=2022
set BUILD_TYPE=Static
set BITS=32
IF "%GENERATE_ALL%"=="On" (
@@ -58,7 +58,7 @@ GOTO GenerateNow
:64DLL
echo "Generating XMPSDKToolkit Dynamic x64"
-set VS_VERSION=2019
+set VS_VERSION=2022
set BUILD_TYPE=Dynamic
set BITS=64
IF "%GENERATE_ALL%"=="On" (
@@ -68,7 +68,7 @@ GOTO GenerateNow
:64LIB
echo "Generating XMPSDKToolkit Static x64"
-set VS_VERSION=2019
+set VS_VERSION=2022
set BUILD_TYPE=Static
set BITS=64
IF "%GENERATE_ALL%"=="On" (
@@ -94,9 +94,9 @@ exit /B 0
:CLEANALL
echo "Cleaning..."
-if exist vc16 rmdir /S /Q vc16
-if exist ..\XMPCore\build\vc16 rmdir /S /Q ..\XMPCore\build\vc16
-if exist ..\XMPFiles\build\vc16 rmdir /S /Q ..\XMPFiles\build\vc16
+if exist vc17 rmdir /S /Q vc17
+if exist ..\XMPCore\build\vc17 rmdir /S /Q ..\XMPCore\build\vc17
+if exist ..\XMPFiles\build\vc17 rmdir /S /Q ..\XMPFiles\build\vc17
if exist ..\public\libraries\windows rmdir /S /Q ..\public\libraries\windows
if exist ..\public\libraries\windows_x64 rmdir /S /Q ..\public\libraries\windows_x64
echo "Done"
diff --git a/build/XMP_BuildInfo.h b/build/XMP_BuildInfo.h
index e5b11a4..acbcacf 100644
--- a/build/XMP_BuildInfo.h
+++ b/build/XMP_BuildInfo.h
@@ -11,7 +11,7 @@
// =================================================================================================
*/
-#define kXMP_Copyright Copyright (c) 2019
-#define kXMP_CopyrightStr "Copyright (c) 2019"
+#define kXMP_Copyright Copyright (c) 2022
+#define kXMP_CopyrightStr "Copyright (c) 2022"
#endif /* __XMP_BuildInfo_h__ */
diff --git a/build/shared/CMakeUtils.bat b/build/shared/CMakeUtils.bat
index 3dae202..42e4c5f 100755
--- a/build/shared/CMakeUtils.bat
+++ b/build/shared/CMakeUtils.bat
@@ -8,7 +8,7 @@
REM Available Arguments:
REM [64|32] Bit Architecture (optional, 64 is default)
-REM [2008|2011|2011|2015|2017] VS Version(optional, 2019 is default)
+REM [2008|2011|2011|2015|2017|2019] VS Version(optional, 2022 is default)
REM [Dynamic | Static] optional, Dynamic by default
REM [WarningAsError] optional
REM [Clean] optional
@@ -22,7 +22,7 @@ set CleanCMake=OFF
set XMPROOT=%buildSharedLoc%/../..
:: Default Generator
-set GeneratorVersion=Visual Studio 16 2019
+set GeneratorVersion=Visual Studio 17 2022
set GeneratorArchitecture=x64
set CMake_Arch64Bit=ON
set CMake_ARCH=x64
@@ -59,9 +59,9 @@ set CMake_LibTypeFolderName=dynamic
)
:: Visual Studio Version
- if /I "%1"=="2019" (
- echo "Generator VS 2019 specified"
- set GeneratorVersion=Visual Studio 16 2019
+ if /I "%1"=="2022" (
+ echo "Generator VS 2022 specified"
+ set GeneratorVersion=Visual Studio 17 2022
set CMakeGenVersion_FolderSuffix=
)
@@ -94,7 +94,7 @@ set CMake64_Folder_Suffix=
)
:: CMake Folder specified:
-set CMakeFolder="vc16/%CMake_LibTypeFolderName%/windows%CMake64_Folder_Suffix%"
+set CMakeFolder="vc17/%CMake_LibTypeFolderName%/windows%CMake64_Folder_Suffix%"
echo CMakeFolder: %CMakeFolder%
echo Generator used: %GeneratorVersion%
diff --git a/build/shared/SharedConfig_Android.cmake b/build/shared/SharedConfig_Android.cmake
index 8eb23e6..7ab6b53 100644
--- a/build/shared/SharedConfig_Android.cmake
+++ b/build/shared/SharedConfig_Android.cmake
@@ -42,7 +42,7 @@ endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_SHARED_COMPILE_FLAGS} ${${COMPONENT}_EXTRA_C_COMPILE_FLAGS} -Wno-implicit ")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMMON_SHARED_COMPILE_DEBUG_FLAGS}")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${COMMON_SHARED_COMPILE_RELEASE_FLAGS}")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_SHARED_COMPILE_FLAGS} ${COMMON_EXTRA_CXX_COMPILE_FLAGS} -mfpu=vfpv3-d16 -Wno-reorder -std=c++11")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_SHARED_COMPILE_FLAGS} ${COMMON_EXTRA_CXX_COMPILE_FLAGS} -mfpu=vfpv3-d16 -Wno-reorder -std=c++17")
set(CMAKE_CXX_FLAGS_DEBUG " ${COMMON_SHARED_COMPILE_DEBUG_FLAGS}")
set(CMAKE_CXX_FLAGS_RELEASE " ${COMMON_SHARED_COMPILE_RELEASE_FLAGS} -s")
set(COMMON_PLATFORM_BEGIN_WHOLE_ARCHIVE "-Wl,--whole-archive")
diff --git a/build/shared/SharedConfig_Ios.cmake b/build/shared/SharedConfig_Ios.cmake
index 0cd9744..03a0f1b 100644
--- a/build/shared/SharedConfig_Ios.cmake
+++ b/build/shared/SharedConfig_Ios.cmake
@@ -52,7 +52,7 @@ set(CMAKE_C_FLAGS "${${COMPONENT}_SHARED_COMPILE_FLAGS} ${${COMPONENT}_EXTRA_C_C
set(CMAKE_C_FLAGS_DEBUG "${${COMPONENT}_SHARED_COMPILE_DEBUG_FLAGS}")
set(CMAKE_C_FLAGS_RELEASE "${${COMPONENT}_SHARED_COMPILE_RELEASE_FLAGS}")
-set(CMAKE_CXX_FLAGS "-std=c++11 ${${COMPONENT}_SHARED_COMPILE_FLAGS} ${${COMPONENT}_EXTRA_CXX_COMPILE_FLAGS}")
+set(CMAKE_CXX_FLAGS "-std=c++17 ${${COMPONENT}_SHARED_COMPILE_FLAGS} ${${COMPONENT}_EXTRA_CXX_COMPILE_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${${COMPONENT}_SHARED_COMPILE_DEBUG_FLAGS}")
set(CMAKE_CXX_FLAGS_RELEASE "${${COMPONENT}_SHARED_COMPILE_RELEASE_FLAGS}")
diff --git a/build/shared/SharedConfig_Mac.cmake b/build/shared/SharedConfig_Mac.cmake
index cd8eda0..302704d 100644
--- a/build/shared/SharedConfig_Mac.cmake
+++ b/build/shared/SharedConfig_Mac.cmake
@@ -53,7 +53,7 @@ set(CMAKE_C_FLAGS "${COMMON_SHARED_COMPILE_FLAGS} ${COMMON_EXTRA_C_COMPILE_FLAGS
set(CMAKE_C_FLAGS_DEBUG "${COMMON_SHARED_COMPILE_DEBUG_FLAGS}")
set(CMAKE_C_FLAGS_RELEASE "${COMMON_SHARED_COMPILE_RELEASE_FLAGS}")
-set(COMMON_SHARED_CXX_COMPILE_FLAGS "${${COMPONENT}_SHARED_CXX_COMPILE_FLAGS} -std=c++11 -Wnon-virtual-dtor -Woverloaded-virtual -Wno-unused-variable -Wno-unused-function -Wno-unused-parameter")
+set(COMMON_SHARED_CXX_COMPILE_FLAGS "${${COMPONENT}_SHARED_CXX_COMPILE_FLAGS} -std=c++17 -Wnon-virtual-dtor -Woverloaded-virtual -Wno-unused-variable -Wno-unused-function -Wno-unused-parameter")
set(CMAKE_CXX_FLAGS "-funsigned-char -fshort-enums -fno-common ${COMMON_SHARED_CXX_COMPILE_FLAGS} ${COMMON_EXTRA_CXX_COMPILE_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${COMMON_SHARED_COMPILE_DEBUG_FLAGS}")
set(CMAKE_CXX_FLAGS_RELEASE "${COMMON_SHARED_COMPILE_RELEASE_FLAGS}")
diff --git a/build/shared/SharedConfig_Win.cmake b/build/shared/SharedConfig_Win.cmake
index 8c59f93..965f3fc 100644
--- a/build/shared/SharedConfig_Win.cmake
+++ b/build/shared/SharedConfig_Win.cmake
@@ -19,6 +19,9 @@ endif(ANDROID)
# ==============================================================================
# Shared config for windows
# ==============================================================================
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_EXTENSIONS OFF)
if(CMAKE_CL_64)
set(COMMON_SHARED_COMPILE_FLAGS "-DWIN64 -D_WIN64=1")
diff --git a/build/shared/ToolchainLLVM.cmake b/build/shared/ToolchainLLVM.cmake
index ab3c736..69d632c 100644
--- a/build/shared/ToolchainLLVM.cmake
+++ b/build/shared/ToolchainLLVM.cmake
@@ -14,8 +14,9 @@
set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0")
set(CMAKE_C_COMPILER xcrun -find clang)
set(CMAKE_CXX_COMPILER xcrun -find clang++)
+set(CMAKE_XCODE_BUILD_SYSTEM 12)
-
-# SDK and deployment
-set(XMP_OSX_SDK 11.1)
-set(XMP_OSX_TARGET 10.13)
+# SDK and deployment
+set(XMP_OSX_SDK 13.1)
+set(XMP_OSX_TARGET 10.15)
+set(APPLE_UNIVERSAL True)
diff --git a/docs/XMPProgrammersGuide.pdf b/docs/XMPProgrammersGuide.pdf
index 77bd2d9..d2f42df 100644..100755
--- a/docs/XMPProgrammersGuide.pdf
+++ b/docs/XMPProgrammersGuide.pdf
Binary files differ
diff --git a/public/include/XMP_Const.h b/public/include/XMP_Const.h
index 21230a0..b14d193 100644
--- a/public/include/XMP_Const.h
+++ b/public/include/XMP_Const.h
@@ -1198,7 +1198,10 @@ enum {
kXMPFiles_OpenRepairFile = 0x00000100,
/// When updating a file, spend the effort necessary to optimize file layout.
- kXMPFiles_OptimizeFileLayout = 0x00000200
+ kXMPFiles_OptimizeFileLayout = 0x00000200,
+
+ /// When updating a PDF preserve state of document
+ kXMPFiles_PreservePDFState = 0x00000400
};
diff --git a/samples/build/GenerateSamples_win.bat b/samples/build/GenerateSamples_win.bat
index 29a8634..1520175 100755
--- a/samples/build/GenerateSamples_win.bat
+++ b/samples/build/GenerateSamples_win.bat
@@ -19,16 +19,16 @@ exit /B 0)
:Start
ECHO Enter your choice:
ECHO 1. Clean
-ECHO 2. VC2019, 64 Bit Project (Static)
-ECHO 3. VC2019, 64 Bit Project (Dynamic)
+ECHO 2. VC2022, 64 Bit Project (Static)
+ECHO 3. VC2022, 64 Bit Project (Dynamic)
ECHO 4. Close
ECHO
set /P choice=Enter your choice:
IF "%choice%"=="1" GOTO CleanCMake
-IF "%choice%"=="2" GOTO 64VC2019
-IF "%choice%"=="3" GOTO 64VC2019
+IF "%choice%"=="2" GOTO 64VC2022
+IF "%choice%"=="3" GOTO 64VC2022
IF "%choice%"=="4" GOTO Close
@@ -80,7 +80,7 @@ if exist cmake\ModifyingXMPHistory\build_x64 rmdir /S /Q cmake\ModifyingXMPHisto
if exist cmake\ModifyingXMPHistory\build rmdir /S /Q cmake\ModifyingXMPHistory\build
-if exist vc16 rmdir /S /Q vc16
+if exist vc17 rmdir /S /Q vc17
if exist ..\target\windows rmdir /S /Q ..\target\windows
if exist ..\target\windows_x64 rmdir /S /Q ..\target\windows_x64
@@ -89,9 +89,9 @@ echo.
echo.
GOTO Start
-:64VC2019
-set GENERATOR=Visual Studio 16 2019
-set DIR=vc16\windows_x64
+:64VC2022
+set GENERATOR=Visual Studio 17 2022
+set DIR=vc17\windows_x64
set bit64=1
IF "%choice%"=="2" set static=1
IF "%choice%"=="3" set static=0
diff --git a/samples/source/DumpMainXMP.cpp b/samples/source/DumpMainXMP.cpp
index c97d7ac..aba5161 100644
--- a/samples/source/DumpMainXMP.cpp
+++ b/samples/source/DumpMainXMP.cpp
@@ -77,7 +77,7 @@ ProcessFile ( const char * fileName )
XMP_OptionBits openFlags, handlerFlags;
XMP_PacketInfo xmpPacket;
- sprintf ( buffer, "Dumping main XMP for %s", fileName );
+ snprintf ( buffer,sizeof(buffer), "Dumping main XMP for %s", fileName );
WriteMinorLabel ( sLogFile, buffer );
xmpFile.OpenFile ( fileName, kXMP_UnknownFile, kXMPFiles_OpenForRead );
diff --git a/samples/source/DumpScannedXMP.cpp b/samples/source/DumpScannedXMP.cpp
index f14f0dc..28a6bff 100644
--- a/samples/source/DumpScannedXMP.cpp
+++ b/samples/source/DumpScannedXMP.cpp
@@ -69,7 +69,7 @@ ProcessPacket ( const char * fileName,
char title [1000];
- sprintf ( title, "// Dumping raw input for \"%s\" (%zu..%zu)", fileName, offset, (offset + length - 1) );
+ snprintf ( title, sizeof(title),"// Dumping raw input for \"%s\" (%zu..%zu)", fileName, offset, (offset + length - 1) );
printf ( "// " );
for ( size_t i = 3; i < strlen(title); ++i ) printf ( "=" );
printf ( "\n\n%s\n\n%.*s\n\n", title, (int)length, xmlString.c_str() );
diff --git a/samples/source/UnicodeCorrectness.cpp b/samples/source/UnicodeCorrectness.cpp
index 2864358..7b25cca 100644
--- a/samples/source/UnicodeCorrectness.cpp
+++ b/samples/source/UnicodeCorrectness.cpp
@@ -2784,7 +2784,7 @@ extern "C" int main ( void )
time_t now;
time ( &now );
- sprintf ( buffer, "// Starting test for Unicode conversion correctness, %s", ctime ( &now ) );
+ snprintf ( buffer, sizeof(buffer), "// Starting test for Unicode conversion correctness, %s", ctime ( &now ) );
fprintf ( log, "// " );
for ( size_t i = 4; i < strlen(buffer); ++i ) fprintf ( log, "=" );
@@ -2803,7 +2803,7 @@ extern "C" int main ( void )
}
time ( &now );
- sprintf ( buffer, "// Finished test for Unicode conversion correctness, %s", ctime ( &now ) );
+ snprintf ( buffer, sizeof(buffer), "// Finished test for Unicode conversion correctness, %s", ctime ( &now ) );
fprintf ( log, "\n// " );
for ( size_t i = 4; i < strlen(buffer); ++i ) fprintf ( log, "=" );
diff --git a/samples/source/UnicodeParseSerialize.cpp b/samples/source/UnicodeParseSerialize.cpp
index 5f0d463..a8935b9 100644
--- a/samples/source/UnicodeParseSerialize.cpp
+++ b/samples/source/UnicodeParseSerialize.cpp
@@ -145,7 +145,7 @@ static void FullUnicodeParse ( FILE * log, const char * encoding, size_t bufferS
meta.ParseFromBuffer ( XMP_StringPtr(sU32), 0 );
} catch ( XMP_Error& excep ) {
char message [200];
- sprintf ( message, "#ERROR: Full Unicode parsing error for %s, %d byte buffers", encoding, bufferSize );
+ snprintf ( message, sizeof(message), "#ERROR: Full Unicode parsing error for %s, %d byte buffers", encoding, bufferSize );
PrintXMPErrorInfo ( excep, message );
return;
}
@@ -455,7 +455,7 @@ extern "C" int main ( void )
time_t now;
time ( &now );
- sprintf ( buffer, "// Starting test for UTF-16 and UTF-32 serialization and parsing, %s", ctime ( &now ) );
+ snprintf ( buffer,sizeof(buffer), "// Starting test for UTF-16 and UTF-32 serialization and parsing, %s", ctime ( &now ) );
fprintf ( sLogFile, "// " );
for ( int i = 4; i < strlen(buffer); ++i ) fprintf ( sLogFile, "=" );
@@ -500,7 +500,7 @@ extern "C" int main ( void )
}
time ( &now );
- sprintf ( buffer, "// Finished test for UTF-16 and UTF-32 serialization and parsing, %s", ctime ( &now ) );
+ snprintf ( buffer,sizeof(buffer), "// Finished test for UTF-16 and UTF-32 serialization and parsing, %s", ctime ( &now ) );
fprintf ( sLogFile, "// " );
for ( int i = 4; i < strlen(buffer); ++i ) fprintf ( sLogFile, "=" );
diff --git a/samples/source/UnicodePerformance.cpp b/samples/source/UnicodePerformance.cpp
index dac4ecd..4a45e4b 100644
--- a/samples/source/UnicodePerformance.cpp
+++ b/samples/source/UnicodePerformance.cpp
@@ -279,7 +279,7 @@ extern "C" int main ( void )
time_t now;
time ( &now );
- sprintf ( buffer, "// Starting test for Unicode conversion performance, %s", ctime ( &now ) );
+ snprintf ( buffer, sizeof(buffer), "// Starting test for Unicode conversion performance, %s", ctime ( &now ) );
fprintf ( log, "// " );
for ( size_t i = 4; i < strlen(buffer); ++i ) fprintf ( log, "=" );
@@ -298,7 +298,7 @@ extern "C" int main ( void )
}
time ( &now );
- sprintf ( buffer, "// Finished test for Unicode conversion performance, %s", ctime ( &now ) );
+ snprintf ( buffer, sizeof(buffer), "// Finished test for Unicode conversion performance, %s", ctime ( &now ) );
fprintf ( log, "\n// " );
for ( size_t i = 4; i < strlen(buffer); ++i ) fprintf ( log, "=" );
diff --git a/samples/source/XMPCoreCoverage.cpp b/samples/source/XMPCoreCoverage.cpp
index 7bb9f89..fb09f8f 100644
--- a/samples/source/XMPCoreCoverage.cpp
+++ b/samples/source/XMPCoreCoverage.cpp
@@ -899,7 +899,7 @@ static void DoXMPCoreCoverage ( FILE * log )
fprintf ( log, "\n" );
for ( i = 1; i < 14; ++i ) {
- sprintf ( dateName, "Date%d", i );
+ snprintf ( dateName,sizeof(dateName), "Date%d", i );
ok = meta.GetProperty_Date ( kNS1, dateName, &dateValue, &options );
fprintf ( log, "GetProperty_Date (%s) : %s, %d-%02d-%02d %02d:%02d:%02d %d*%02d:%02d %d, 0x%X\n", dateName, FoundOrNot ( ok ),
dateValue.year, dateValue.month, dateValue.day, dateValue.hour, dateValue.minute, dateValue.second,
diff --git a/samples/source/XMPFilesCoverage.cpp b/samples/source/XMPFilesCoverage.cpp
index a449670..b4ccec1 100644
--- a/samples/source/XMPFilesCoverage.cpp
+++ b/samples/source/XMPFilesCoverage.cpp
@@ -204,7 +204,7 @@ static void TestOneFile ( const char * fileName )
XMP_PacketInfo xmpPacket;
std::string roDump, rwDump;
- sprintf ( buffer, "Testing %s", fileName );
+ snprintf ( buffer,sizeof(buffer), "Testing %s", fileName );
WriteMinorLabel ( sLogFile, buffer );
OpenTestFile ( fileName, kXMPFiles_OpenForRead, &xmpMeta, &xmpFile );