[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:36:44 UTC 2017


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=b90eec9

The following commit has been merged in the master branch:
commit b90eec9a5081fb78617f2f326ddf9a46c24bf14d
Author: brad <chickb at gmail.com>
Date:   Sat Nov 13 00:22:05 2004 +0000

    added exivsimple (win32 only dll) and write2-test projects to msvc build
---
 msvc/exiv2.sln                                     | 257 +++++++++---------
 msvc/exivsimple/exivsimple.cpp                     | 298 +++++++++++++++++++++
 msvc/exivsimple/exivsimple.h                       |  42 +++
 .../exiv2.vcproj => exivsimple/exivsimple.vcproj}  |  78 +++---
 msvc/exivsimple/stdafx.cpp                         |   8 +
 msvc/exivsimple/stdafx.h                           |  13 +
 .../write2-test.vcproj}                            |  14 +-
 7 files changed, 542 insertions(+), 168 deletions(-)

diff --git a/msvc/exiv2.sln b/msvc/exiv2.sln
index 4660b7c..901b40a 100644
--- a/msvc/exiv2.sln
+++ b/msvc/exiv2.sln
@@ -1,120 +1,137 @@
-Microsoft Visual Studio Solution File, Format Version 8.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "exifprint", "exifprint\exifprint.vcproj", "{8391174F-52D5-4111-A0FE-E87135301CFB}"
-	ProjectSection(ProjectDependencies) = postProject
-		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "exiv2lib", "exiv2lib\exiv2lib.vcproj", "{831EF580-92C8-4CA8-B0CE-3D906280A54D}"
-	ProjectSection(ProjectDependencies) = postProject
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "exiv2", "exiv2\exiv2.vcproj", "{07293CAC-00DA-493E-90C9-5D010C2B1B53}"
-	ProjectSection(ProjectDependencies) = postProject
-		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "exifcomment", "exifcomment\exifcomment.vcproj", "{0BDCE87F-A5FE-49AE-BE6D-A2A3E2BB69CE}"
-	ProjectSection(ProjectDependencies) = postProject
-		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "addmoddel", "addmoddelddmoddel.vcproj", "{271E59C4-81F9-4231-85D3-E7DDB2E2BC08}"
-	ProjectSection(ProjectDependencies) = postProject
-		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "taglist", "taglist	aglist.vcproj", "{2CDD0F47-E4B8-4C48-AD56-64C0A67EC89B}"
-	ProjectSection(ProjectDependencies) = postProject
-		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "utiltest", "utiltest\utiltest.vcproj", "{7E0025E8-CFBE-4941-BEB7-825F14A87EE1}"
-	ProjectSection(ProjectDependencies) = postProject
-		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "metacopy", "metacopy\metacopy.vcproj", "{F59D0AD2-6948-474B-B506-AD14EC9BE551}"
-	ProjectSection(ProjectDependencies) = postProject
-		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ifd-test", "ifd-test\ifd-test.vcproj", "{F96ACB3E-B41C-44FA-BB88-954171D5D0BA}"
-	ProjectSection(ProjectDependencies) = postProject
-		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makernote-test", "makernote-test\makernote-test.vcproj", "{AB0BA03E-2B09-4DCE-966F-3F5CCA01355C}"
-	ProjectSection(ProjectDependencies) = postProject
-		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iptcprint", "iptcprint\iptcprint.vcproj", "{52034F65-28AA-4E3F-A44D-C91F6F0922F8}"
-	ProjectSection(ProjectDependencies) = postProject
-		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iptctest", "iptctest\iptctest.vcproj", "{C8F41CDA-76AA-4053-A8DE-F80892C1C2FC}"
-	ProjectSection(ProjectDependencies) = postProject
-		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
-	EndProjectSection
-EndProject
-Global
-	GlobalSection(SolutionConfiguration) = preSolution
-		Debug = Debug
-		Release = Release
-	EndGlobalSection
-	GlobalSection(ProjectConfiguration) = postSolution
-		{8391174F-52D5-4111-A0FE-E87135301CFB}.Debug.ActiveCfg = Debug|Win32
-		{8391174F-52D5-4111-A0FE-E87135301CFB}.Debug.Build.0 = Debug|Win32
-		{8391174F-52D5-4111-A0FE-E87135301CFB}.Release.ActiveCfg = Release|Win32
-		{8391174F-52D5-4111-A0FE-E87135301CFB}.Release.Build.0 = Release|Win32
-		{831EF580-92C8-4CA8-B0CE-3D906280A54D}.Debug.ActiveCfg = Debug|Win32
-		{831EF580-92C8-4CA8-B0CE-3D906280A54D}.Debug.Build.0 = Debug|Win32
-		{831EF580-92C8-4CA8-B0CE-3D906280A54D}.Release.ActiveCfg = Release|Win32
-		{831EF580-92C8-4CA8-B0CE-3D906280A54D}.Release.Build.0 = Release|Win32
-		{07293CAC-00DA-493E-90C9-5D010C2B1B53}.Debug.ActiveCfg = Debug|Win32
-		{07293CAC-00DA-493E-90C9-5D010C2B1B53}.Debug.Build.0 = Debug|Win32
-		{07293CAC-00DA-493E-90C9-5D010C2B1B53}.Release.ActiveCfg = Release|Win32
-		{07293CAC-00DA-493E-90C9-5D010C2B1B53}.Release.Build.0 = Release|Win32
-		{0BDCE87F-A5FE-49AE-BE6D-A2A3E2BB69CE}.Debug.ActiveCfg = Debug|Win32
-		{0BDCE87F-A5FE-49AE-BE6D-A2A3E2BB69CE}.Debug.Build.0 = Debug|Win32
-		{0BDCE87F-A5FE-49AE-BE6D-A2A3E2BB69CE}.Release.ActiveCfg = Release|Win32
-		{0BDCE87F-A5FE-49AE-BE6D-A2A3E2BB69CE}.Release.Build.0 = Release|Win32
-		{271E59C4-81F9-4231-85D3-E7DDB2E2BC08}.Debug.ActiveCfg = Debug|Win32
-		{271E59C4-81F9-4231-85D3-E7DDB2E2BC08}.Debug.Build.0 = Debug|Win32
-		{271E59C4-81F9-4231-85D3-E7DDB2E2BC08}.Release.ActiveCfg = Release|Win32
-		{271E59C4-81F9-4231-85D3-E7DDB2E2BC08}.Release.Build.0 = Release|Win32
-		{2CDD0F47-E4B8-4C48-AD56-64C0A67EC89B}.Debug.ActiveCfg = Debug|Win32
-		{2CDD0F47-E4B8-4C48-AD56-64C0A67EC89B}.Debug.Build.0 = Debug|Win32
-		{2CDD0F47-E4B8-4C48-AD56-64C0A67EC89B}.Release.ActiveCfg = Release|Win32
-		{2CDD0F47-E4B8-4C48-AD56-64C0A67EC89B}.Release.Build.0 = Release|Win32
-		{7E0025E8-CFBE-4941-BEB7-825F14A87EE1}.Debug.ActiveCfg = Debug|Win32
-		{7E0025E8-CFBE-4941-BEB7-825F14A87EE1}.Debug.Build.0 = Debug|Win32
-		{7E0025E8-CFBE-4941-BEB7-825F14A87EE1}.Release.ActiveCfg = Release|Win32
-		{7E0025E8-CFBE-4941-BEB7-825F14A87EE1}.Release.Build.0 = Release|Win32
-		{F59D0AD2-6948-474B-B506-AD14EC9BE551}.Debug.ActiveCfg = Debug|Win32
-		{F59D0AD2-6948-474B-B506-AD14EC9BE551}.Debug.Build.0 = Debug|Win32
-		{F59D0AD2-6948-474B-B506-AD14EC9BE551}.Release.ActiveCfg = Release|Win32
-		{F59D0AD2-6948-474B-B506-AD14EC9BE551}.Release.Build.0 = Release|Win32
-		{F96ACB3E-B41C-44FA-BB88-954171D5D0BA}.Debug.ActiveCfg = Debug|Win32
-		{F96ACB3E-B41C-44FA-BB88-954171D5D0BA}.Debug.Build.0 = Debug|Win32
-		{F96ACB3E-B41C-44FA-BB88-954171D5D0BA}.Release.ActiveCfg = Release|Win32
-		{F96ACB3E-B41C-44FA-BB88-954171D5D0BA}.Release.Build.0 = Release|Win32
-		{AB0BA03E-2B09-4DCE-966F-3F5CCA01355C}.Debug.ActiveCfg = Debug|Win32
-		{AB0BA03E-2B09-4DCE-966F-3F5CCA01355C}.Debug.Build.0 = Debug|Win32
-		{AB0BA03E-2B09-4DCE-966F-3F5CCA01355C}.Release.ActiveCfg = Release|Win32
-		{AB0BA03E-2B09-4DCE-966F-3F5CCA01355C}.Release.Build.0 = Release|Win32
-		{52034F65-28AA-4E3F-A44D-C91F6F0922F8}.Debug.ActiveCfg = Debug|Win32
-		{52034F65-28AA-4E3F-A44D-C91F6F0922F8}.Debug.Build.0 = Debug|Win32
-		{52034F65-28AA-4E3F-A44D-C91F6F0922F8}.Release.ActiveCfg = Release|Win32
-		{52034F65-28AA-4E3F-A44D-C91F6F0922F8}.Release.Build.0 = Release|Win32
-		{C8F41CDA-76AA-4053-A8DE-F80892C1C2FC}.Debug.ActiveCfg = Debug|Win32
-		{C8F41CDA-76AA-4053-A8DE-F80892C1C2FC}.Debug.Build.0 = Debug|Win32
-		{C8F41CDA-76AA-4053-A8DE-F80892C1C2FC}.Release.ActiveCfg = Release|Win32
-		{C8F41CDA-76AA-4053-A8DE-F80892C1C2FC}.Release.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-	EndGlobalSection
-	GlobalSection(ExtensibilityAddIns) = postSolution
-	EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "exifprint", "exifprint\exifprint.vcproj", "{8391174F-52D5-4111-A0FE-E87135301CFB}"
+	ProjectSection(ProjectDependencies) = postProject
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "exiv2lib", "exiv2lib\exiv2lib.vcproj", "{831EF580-92C8-4CA8-B0CE-3D906280A54D}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "exiv2", "exiv2\exiv2.vcproj", "{07293CAC-00DA-493E-90C9-5D010C2B1B53}"
+	ProjectSection(ProjectDependencies) = postProject
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "exifcomment", "exifcomment\exifcomment.vcproj", "{0BDCE87F-A5FE-49AE-BE6D-A2A3E2BB69CE}"
+	ProjectSection(ProjectDependencies) = postProject
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "addmoddel", "addmoddelddmoddel.vcproj", "{271E59C4-81F9-4231-85D3-E7DDB2E2BC08}"
+	ProjectSection(ProjectDependencies) = postProject
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "taglist", "taglist	aglist.vcproj", "{2CDD0F47-E4B8-4C48-AD56-64C0A67EC89B}"
+	ProjectSection(ProjectDependencies) = postProject
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "utiltest", "utiltest\utiltest.vcproj", "{7E0025E8-CFBE-4941-BEB7-825F14A87EE1}"
+	ProjectSection(ProjectDependencies) = postProject
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "metacopy", "metacopy\metacopy.vcproj", "{F59D0AD2-6948-474B-B506-AD14EC9BE551}"
+	ProjectSection(ProjectDependencies) = postProject
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ifd-test", "ifd-test\ifd-test.vcproj", "{F96ACB3E-B41C-44FA-BB88-954171D5D0BA}"
+	ProjectSection(ProjectDependencies) = postProject
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makernote-test", "makernote-test\makernote-test.vcproj", "{AB0BA03E-2B09-4DCE-966F-3F5CCA01355C}"
+	ProjectSection(ProjectDependencies) = postProject
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iptcprint", "iptcprint\iptcprint.vcproj", "{52034F65-28AA-4E3F-A44D-C91F6F0922F8}"
+	ProjectSection(ProjectDependencies) = postProject
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iptctest", "iptctest\iptctest.vcproj", "{C8F41CDA-76AA-4053-A8DE-F80892C1C2FC}"
+	ProjectSection(ProjectDependencies) = postProject
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "exivsimple", "exivsimple\exivsimple.vcproj", "{EB7F30DE-DD77-4311-BB66-FFDF972052C7}"
+	ProjectSection(ProjectDependencies) = postProject
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "write2-test", "write2-test\write2-test.vcproj", "{BBDB5742-0A55-4C2C-973C-E876AAED6ABE}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		Debug = Debug
+		Release = Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{8391174F-52D5-4111-A0FE-E87135301CFB}.Debug.ActiveCfg = Debug|Win32
+		{8391174F-52D5-4111-A0FE-E87135301CFB}.Debug.Build.0 = Debug|Win32
+		{8391174F-52D5-4111-A0FE-E87135301CFB}.Release.ActiveCfg = Release|Win32
+		{8391174F-52D5-4111-A0FE-E87135301CFB}.Release.Build.0 = Release|Win32
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D}.Debug.ActiveCfg = Debug|Win32
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D}.Debug.Build.0 = Debug|Win32
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D}.Release.ActiveCfg = Release|Win32
+		{831EF580-92C8-4CA8-B0CE-3D906280A54D}.Release.Build.0 = Release|Win32
+		{07293CAC-00DA-493E-90C9-5D010C2B1B53}.Debug.ActiveCfg = Debug|Win32
+		{07293CAC-00DA-493E-90C9-5D010C2B1B53}.Debug.Build.0 = Debug|Win32
+		{07293CAC-00DA-493E-90C9-5D010C2B1B53}.Release.ActiveCfg = Release|Win32
+		{07293CAC-00DA-493E-90C9-5D010C2B1B53}.Release.Build.0 = Release|Win32
+		{0BDCE87F-A5FE-49AE-BE6D-A2A3E2BB69CE}.Debug.ActiveCfg = Debug|Win32
+		{0BDCE87F-A5FE-49AE-BE6D-A2A3E2BB69CE}.Debug.Build.0 = Debug|Win32
+		{0BDCE87F-A5FE-49AE-BE6D-A2A3E2BB69CE}.Release.ActiveCfg = Release|Win32
+		{0BDCE87F-A5FE-49AE-BE6D-A2A3E2BB69CE}.Release.Build.0 = Release|Win32
+		{271E59C4-81F9-4231-85D3-E7DDB2E2BC08}.Debug.ActiveCfg = Debug|Win32
+		{271E59C4-81F9-4231-85D3-E7DDB2E2BC08}.Debug.Build.0 = Debug|Win32
+		{271E59C4-81F9-4231-85D3-E7DDB2E2BC08}.Release.ActiveCfg = Release|Win32
+		{271E59C4-81F9-4231-85D3-E7DDB2E2BC08}.Release.Build.0 = Release|Win32
+		{2CDD0F47-E4B8-4C48-AD56-64C0A67EC89B}.Debug.ActiveCfg = Debug|Win32
+		{2CDD0F47-E4B8-4C48-AD56-64C0A67EC89B}.Debug.Build.0 = Debug|Win32
+		{2CDD0F47-E4B8-4C48-AD56-64C0A67EC89B}.Release.ActiveCfg = Release|Win32
+		{2CDD0F47-E4B8-4C48-AD56-64C0A67EC89B}.Release.Build.0 = Release|Win32
+		{7E0025E8-CFBE-4941-BEB7-825F14A87EE1}.Debug.ActiveCfg = Debug|Win32
+		{7E0025E8-CFBE-4941-BEB7-825F14A87EE1}.Debug.Build.0 = Debug|Win32
+		{7E0025E8-CFBE-4941-BEB7-825F14A87EE1}.Release.ActiveCfg = Release|Win32
+		{7E0025E8-CFBE-4941-BEB7-825F14A87EE1}.Release.Build.0 = Release|Win32
+		{F59D0AD2-6948-474B-B506-AD14EC9BE551}.Debug.ActiveCfg = Debug|Win32
+		{F59D0AD2-6948-474B-B506-AD14EC9BE551}.Debug.Build.0 = Debug|Win32
+		{F59D0AD2-6948-474B-B506-AD14EC9BE551}.Release.ActiveCfg = Release|Win32
+		{F59D0AD2-6948-474B-B506-AD14EC9BE551}.Release.Build.0 = Release|Win32
+		{F96ACB3E-B41C-44FA-BB88-954171D5D0BA}.Debug.ActiveCfg = Debug|Win32
+		{F96ACB3E-B41C-44FA-BB88-954171D5D0BA}.Debug.Build.0 = Debug|Win32
+		{F96ACB3E-B41C-44FA-BB88-954171D5D0BA}.Release.ActiveCfg = Release|Win32
+		{F96ACB3E-B41C-44FA-BB88-954171D5D0BA}.Release.Build.0 = Release|Win32
+		{AB0BA03E-2B09-4DCE-966F-3F5CCA01355C}.Debug.ActiveCfg = Debug|Win32
+		{AB0BA03E-2B09-4DCE-966F-3F5CCA01355C}.Debug.Build.0 = Debug|Win32
+		{AB0BA03E-2B09-4DCE-966F-3F5CCA01355C}.Release.ActiveCfg = Release|Win32
+		{AB0BA03E-2B09-4DCE-966F-3F5CCA01355C}.Release.Build.0 = Release|Win32
+		{52034F65-28AA-4E3F-A44D-C91F6F0922F8}.Debug.ActiveCfg = Debug|Win32
+		{52034F65-28AA-4E3F-A44D-C91F6F0922F8}.Debug.Build.0 = Debug|Win32
+		{52034F65-28AA-4E3F-A44D-C91F6F0922F8}.Release.ActiveCfg = Release|Win32
+		{52034F65-28AA-4E3F-A44D-C91F6F0922F8}.Release.Build.0 = Release|Win32
+		{C8F41CDA-76AA-4053-A8DE-F80892C1C2FC}.Debug.ActiveCfg = Debug|Win32
+		{C8F41CDA-76AA-4053-A8DE-F80892C1C2FC}.Debug.Build.0 = Debug|Win32
+		{C8F41CDA-76AA-4053-A8DE-F80892C1C2FC}.Release.ActiveCfg = Release|Win32
+		{C8F41CDA-76AA-4053-A8DE-F80892C1C2FC}.Release.Build.0 = Release|Win32
+		{EB7F30DE-DD77-4311-BB66-FFDF972052C7}.Debug.ActiveCfg = Debug|Win32
+		{EB7F30DE-DD77-4311-BB66-FFDF972052C7}.Debug.Build.0 = Debug|Win32
+		{EB7F30DE-DD77-4311-BB66-FFDF972052C7}.Release.ActiveCfg = Release|Win32
+		{EB7F30DE-DD77-4311-BB66-FFDF972052C7}.Release.Build.0 = Release|Win32
+		{BBDB5742-0A55-4C2C-973C-E876AAED6ABE}.Debug.ActiveCfg = Debug|Win32
+		{BBDB5742-0A55-4C2C-973C-E876AAED6ABE}.Debug.Build.0 = Debug|Win32
+		{BBDB5742-0A55-4C2C-973C-E876AAED6ABE}.Release.ActiveCfg = Release|Win32
+		{BBDB5742-0A55-4C2C-973C-E876AAED6ABE}.Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
diff --git a/msvc/exivsimple/exivsimple.cpp b/msvc/exivsimple/exivsimple.cpp
new file mode 100644
index 0000000..12ef511
--- /dev/null
+++ b/msvc/exivsimple/exivsimple.cpp
@@ -0,0 +1,298 @@
+// exivsimple.cpp : Defines the entry point for the DLL application.
+//
+
+#include "stdafx.h"
+#include "exivsimple.h"
+#include "exif.hpp"
+#include "iptc.hpp"
+#include <cassert>
+
+struct ExivImage
+{
+    Exiv2::IptcData iptcData;
+    Exiv2::ExifData exifData;
+    std::string fileName;
+};
+
+// Returns 0 if failed.
+EXIVSIMPLE_API HIMAGE OpenImage(const char *file)
+{
+    assert(file);
+
+    ExivImage *image = new ExivImage;
+    image->fileName = file;
+
+    // rc of 3 just means no iptc or exif data (not a real error)
+    int rc = image->iptcData.read( file );
+    if (rc==0 || rc==3)
+        rc = image->exifData.read( file );
+
+    if (rc!=0 && rc!=3)  {
+        delete image;
+        image = 0;
+    }
+
+    return (HIMAGE)image;
+}
+
+EXIVSIMPLE_API void FreeImage(HIMAGE img)
+{
+    if (img) {
+        ExivImage *image = (ExivImage*)img;
+        delete image;
+    }
+}
+
+EXIVSIMPLE_API int SaveImage(HIMAGE img)
+{
+    assert(img);
+    ExivImage *image = (ExivImage*)img;
+
+    int rc = image->iptcData.write(image->fileName);
+    if (rc==0)
+        rc = image->exifData.write(image->fileName);
+
+    return rc;
+}
+
+// This is weird because iptc and exif have not been "unified". Once
+// the API is turned inside out, this DLL should not have to know
+// about either... just generic images, keys, values, etc.
+// buffsize should be the total size of *buff (including space full null)
+// Note that if there is more than one entry (for some IPTC datasets) this
+// returns the first one found. Currently no way to get the others.
+EXIVSIMPLE_API int ReadMeta(HIMAGE img, const char *key, char *buff, int buffsize)
+{
+    assert(img && key && buff);
+    if (img==0 || key==0 || buff==0 || buffsize==0) return -1;
+    ExivImage *image = (ExivImage*)img;
+    int rc = 2;
+
+    try {
+        Exiv2::IptcKey iptcKey(key);
+        rc = 1;
+        Exiv2::IptcData::const_iterator iter = image->iptcData.findKey(iptcKey);
+        if (iter != image->iptcData.end()) {
+            strncpy(buff, iter->value().toString().c_str(), buffsize);
+            buff[buffsize-1] = 0;
+            rc = 0;
+        }
+    } 
+    catch(const Exiv2::Error&) {
+    }
+
+    if (rc) {
+        // No iptc value, so try exif
+        try {
+            Exiv2::ExifKey exifKey(key);
+            rc = 1;
+            Exiv2::ExifData::const_iterator iter = image->exifData.findKey(exifKey);
+            if (iter != image->exifData.end()) {
+                strncpy(buff, iter->value().toString().c_str(), buffsize);
+                buff[buffsize-1] = 0;
+                rc = 0;
+            }
+        }
+        catch(const Exiv2::Error&) {
+        }
+    }
+
+    return rc;
+}
+
+// Overwrites existing value if found, otherwise creates a new one
+// Passing invalidTypeId causes the type to be guessed.
+// Guessing types is accurate for IPTC but not for EXIF.
+EXIVSIMPLE_API int ModifyMeta(HIMAGE img, const char *key, const char *val, DllTypeId type)
+{
+    assert(img && key && val);
+    if (img==0 || key==0 || val==0) return -1;
+    ExivImage *image = (ExivImage*)img;
+    int rc = 2;
+
+    std::string data(val);
+    // if data starts and ends with quotes, remove them
+    if (data.at(0) == '\"' && data.at(data.size()-1) == '\"') {
+        data = data.substr(1, data.size()-2);
+    }
+
+    try {
+        Exiv2::IptcKey iptcKey(key);
+        rc = 1;
+
+        if (type == invalidTypeId)
+            type = (DllTypeId)Exiv2::IptcDataSets::dataSetType(iptcKey.tag(), iptcKey.record());
+        Exiv2::Value::AutoPtr value = Exiv2::Value::create((Exiv2::TypeId)type);
+        value->read(data);
+
+        Exiv2::IptcData::iterator iter = image->iptcData.findKey(iptcKey);
+        if (iter != image->iptcData.end()) {
+            iter->setValue(value.get());
+            rc = 0;
+        }
+        else {
+            rc = image->iptcData.add(iptcKey, value.get());
+        }
+    } 
+    catch(const Exiv2::Error&) {
+    }
+
+    if (rc) {
+        // Failed with iptc, so try exif
+        try {
+            Exiv2::ExifKey exifKey(key);
+            rc = 1;
+
+            // No way to get value type for exif... alwayst string??
+            if (type == invalidTypeId)
+                type = asciiString;
+            Exiv2::Value::AutoPtr value = Exiv2::Value::create((Exiv2::TypeId)type);
+            value->read(data);
+
+            Exiv2::ExifData::iterator iter = image->exifData.findKey(exifKey);
+            if (iter != image->exifData.end()) {
+                iter->setValue(value.get());
+                rc = 0;
+            }
+            else {
+                image->exifData.add(exifKey, value.get());
+                rc = 0;
+            }
+        }
+        catch(const Exiv2::Error&) {
+        }
+    }
+
+    return rc;
+}
+
+// Always creates a new metadata entry.
+// Passing invalidTypeId causes the type to be guessed.
+// Guessing types is accurate for IPTC but not for EXIF.
+EXIVSIMPLE_API int AddMeta(HIMAGE img, const char *key, const char *val, DllTypeId type)
+{
+    assert(img && key && val);
+    if (img==0 || key==0 || val==0) return -1;
+    ExivImage *image = (ExivImage*)img;
+    int rc = 2;
+
+    std::string data(val);
+    // if data starts and ends with quotes, remove them
+    if (data.at(0) == '\"' && data.at(data.size()-1) == '\"') {
+        data = data.substr(1, data.size()-2);
+    }
+
+    try {
+        Exiv2::IptcKey iptcKey(key);
+        rc = 1;
+
+        if (type == invalidTypeId)
+            type = (DllTypeId)Exiv2::IptcDataSets::dataSetType(iptcKey.tag(), iptcKey.record());
+        Exiv2::Value::AutoPtr value = Exiv2::Value::create((Exiv2::TypeId)type);
+        value->read(data);
+
+        rc = image->iptcData.add(iptcKey, value.get());
+    } 
+    catch(const Exiv2::Error&) {
+    }
+
+    if (rc) {
+        // Failed with iptc, so try exif
+        try {
+            Exiv2::ExifKey exifKey(key);
+            rc = 1;
+
+            // No way to get value type for exif... alwayst string??
+            if (type == invalidTypeId)
+                type = asciiString;
+            Exiv2::Value::AutoPtr value = Exiv2::Value::create((Exiv2::TypeId)type);
+            value->read(data);
+
+            image->exifData.add(exifKey, value.get());
+            rc = 0;
+        }
+        catch(const Exiv2::Error&) {
+        }
+    }
+
+    return rc;
+}
+
+// If multiple entires exist, this only remove the first one
+// found. Call multiple times to remove many.
+EXIVSIMPLE_API int RemoveMeta(HIMAGE img, const char *key)
+{
+    assert(img && key);
+    if (img==0 || key==0) return -1;
+    ExivImage *image = (ExivImage*)img;
+    int rc = 2;
+
+    try {
+        Exiv2::IptcKey iptcKey(key);
+        rc = 1;
+        Exiv2::IptcData::iterator iter = image->iptcData.findKey(iptcKey);
+        if (iter != image->iptcData.end()) {
+            image->iptcData.erase(iter);
+            rc = 0;
+        }
+    } 
+    catch(const Exiv2::Error&) {
+    }
+
+    if (rc) {
+        // No iptc value, so try exif
+        try {
+            Exiv2::ExifKey exifKey(key);
+            rc = 1;
+            Exiv2::ExifData::iterator iter = image->exifData.findKey(exifKey);
+            if (iter != image->exifData.end()) {
+                image->exifData.erase(iter);
+                rc = 0;
+            }
+        }
+        catch(const Exiv2::Error&) {
+        }
+    }
+
+    return rc;
+}
+
+EXIVSIMPLE_API int EnumMeta(HIMAGE img, METAENUMPROC proc, void *user)
+{
+    assert(img && proc);
+    if (img==0 || proc==0) return -1;
+    ExivImage *image = (ExivImage*)img;
+    bool more = true;
+
+    Exiv2::IptcData::const_iterator iend = image->iptcData.end();
+    for (Exiv2::IptcData::const_iterator i = image->iptcData.begin(); 
+            i != iend && more; ++i) {
+        more = proc(i->key().c_str(), i->value().toString().c_str(), user);
+    }
+
+    Exiv2::ExifData::const_iterator eend = image->exifData.end();
+    for (Exiv2::ExifData::const_iterator e = image->exifData.begin();
+            e != eend && more; ++e) {
+        more = proc(e->key().c_str(), e->value().toString().c_str(), user);
+    }
+
+    return 0;
+}
+
+
+BOOL APIENTRY DllMain( HANDLE hModule, 
+                       DWORD  ul_reason_for_call, 
+                       LPVOID lpReserved
+					 )
+{
+	switch (ul_reason_for_call)
+	{
+	case DLL_PROCESS_ATTACH:
+	case DLL_THREAD_ATTACH:
+	case DLL_THREAD_DETACH:
+	case DLL_PROCESS_DETACH:
+		break;
+	}
+    return TRUE;
+}
+
diff --git a/msvc/exivsimple/exivsimple.h b/msvc/exivsimple/exivsimple.h
new file mode 100644
index 0000000..a2ac242
--- /dev/null
+++ b/msvc/exivsimple/exivsimple.h
@@ -0,0 +1,42 @@
+// The following ifdef block is the standard way of creating macros which make exporting 
+// from a DLL simpler. All files within this DLL are compiled with the EXIVSIMPLE_EXPORTS
+// symbol defined on the command line. this symbol should not be defined on any project
+// that uses this DLL. This way any other project whose source files include this file see 
+// EXIVSIMPLE_API functions as being imported from a DLL, whereas this DLL sees symbols
+// defined with this macro as being exported.
+#ifdef EXIVSIMPLE_EXPORTS
+#define EXIVSIMPLE_API __declspec(dllexport)
+#else
+#define EXIVSIMPLE_API __declspec(dllimport)
+#endif
+
+DECLARE_HANDLE (HIMAGE);
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+// These types should match those in types.hpp. For all of the functions
+// that take a type, passing invalidTypeId causes the type to be guessed.
+// Guessing types is accurate for IPTC but not for EXIF.
+enum DllTypeId { invalidTypeId, unsignedByte, asciiString, unsignedShort, 
+                unsignedLong, unsignedRational, invalid6, undefined, 
+                signedShort, signedLong, signedRational, 
+                string, date, time,
+                lastTypeId };
+
+typedef bool (CALLBACK* METAENUMPROC)(const char *key, const char *value, void *user);
+
+EXIVSIMPLE_API HIMAGE OpenImage(const char *file);
+EXIVSIMPLE_API void FreeImage(HIMAGE img);
+EXIVSIMPLE_API int SaveImage(HIMAGE img);
+EXIVSIMPLE_API int ReadMeta(HIMAGE img, const char *key, char *buff, int buffsize);
+EXIVSIMPLE_API int EnumMeta(HIMAGE img, METAENUMPROC proc, void *user);
+EXIVSIMPLE_API int AddMeta(HIMAGE img, const char *key, const char *val, DllTypeId type);
+EXIVSIMPLE_API int ModifyMeta(HIMAGE img, const char *key, const char *val, DllTypeId type);
+EXIVSIMPLE_API int RemoveMeta(HIMAGE img, const char *key);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/msvc/exiv2/exiv2.vcproj b/msvc/exivsimple/exivsimple.vcproj
similarity index 73%
copy from msvc/exiv2/exiv2.vcproj
copy to msvc/exivsimple/exivsimple.vcproj
index 0d7e9f1..d737b67 100644
--- a/msvc/exiv2/exiv2.vcproj
+++ b/msvc/exivsimple/exivsimple.vcproj
@@ -2,8 +2,8 @@
 <VisualStudioProject
 	ProjectType="Visual C++"
 	Version="7.10"
-	Name="exiv2"
-	ProjectGUID="{07293CAC-00DA-493E-90C9-5D010C2B1B53}"
+	Name="exivsimple"
+	ProjectGUID="{EB7F30DE-DD77-4311-BB66-FFDF972052C7}"
 	Keyword="Win32Proj">
 	<Platforms>
 		<Platform
@@ -14,19 +14,19 @@
 			Name="Debug|Win32"
 			OutputDirectory="Debug"
 			IntermediateDirectory="Debug"
-			ConfigurationType="1"
+			ConfigurationType="2"
 			CharacterSet="2">
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=""..\..\src";"..\..""
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BUILD_GETOPT"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EXIVSIMPLE_EXPORTS"
 				MinimalRebuild="TRUE"
 				BasicRuntimeChecks="3"
 				RuntimeLibrary="5"
 				BufferSecurityCheck="TRUE"
 				RuntimeTypeInfo="TRUE"
-				UsePrecompiledHeader="0"
+				UsePrecompiledHeader="3"
 				BrowseInformation="1"
 				WarningLevel="3"
 				WarnAsError="TRUE"
@@ -37,11 +37,12 @@
 			<Tool
 				Name="VCLinkerTool"
 				AdditionalDependencies="..\exiv2lib\Debug\exiv2.lib"
-				OutputFile="$(OutDir)/exiv2.exe"
+				OutputFile="$(OutDir)/exivsimple.dll"
 				LinkIncremental="2"
 				GenerateDebugInformation="TRUE"
-				ProgramDatabaseFile="$(OutDir)/exiv2.pdb"
-				SubSystem="1"
+				ProgramDatabaseFile="$(OutDir)/exivsimple.pdb"
+				SubSystem="2"
+				ImportLibrary="$(OutDir)/exivsimple.lib"
 				TargetMachine="1"/>
 			<Tool
 				Name="VCMIDLTool"/>
@@ -68,15 +69,15 @@
 			Name="Release|Win32"
 			OutputDirectory="Release"
 			IntermediateDirectory="Release"
-			ConfigurationType="1"
+			ConfigurationType="2"
 			CharacterSet="2">
 			<Tool
 				Name="VCCLCompilerTool"
 				AdditionalIncludeDirectories=""..\..\src";"..\..""
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BUILD_GETOPT"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EXIVSIMPLE_EXPORTS"
 				RuntimeLibrary="4"
 				RuntimeTypeInfo="TRUE"
-				UsePrecompiledHeader="0"
+				UsePrecompiledHeader="3"
 				BrowseInformation="1"
 				WarningLevel="3"
 				WarnAsError="TRUE"
@@ -87,12 +88,13 @@
 			<Tool
 				Name="VCLinkerTool"
 				AdditionalDependencies="..\exiv2lib\Release\exiv2.lib"
-				OutputFile="$(OutDir)/exiv2.exe"
+				OutputFile="$(OutDir)/exivsimple.dll"
 				LinkIncremental="1"
 				GenerateDebugInformation="TRUE"
-				SubSystem="1"
+				SubSystem="2"
 				OptimizeReferences="2"
 				EnableCOMDATFolding="2"
+				ImportLibrary="$(OutDir)/exivsimple.lib"
 				TargetMachine="1"/>
 			<Tool
 				Name="VCMIDLTool"/>
@@ -124,22 +126,31 @@
 			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
 			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
 			<File
-				RelativePath="..\..\srcctions.cpp">
-			</File>
-			<File
-				RelativePath="..\..\src\exiv2.cpp">
-			</File>
-			<File
-				RelativePath="..\..\src\getopt_win32.c">
-			</File>
-			<File
-				RelativePath="..\..\src\localtime.c">
+				RelativePath=".\exivsimple.cpp">
 			</File>
 			<File
 				RelativePath="..\..\src\mn.cpp">
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"/>
+				</FileConfiguration>
 			</File>
 			<File
-				RelativePath="..\..\src\utils.cpp">
+				RelativePath=".\stdafx.cpp">
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="1"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="1"/>
+				</FileConfiguration>
 			</File>
 		</Filter>
 		<Filter
@@ -147,25 +158,10 @@
 			Filter="h;hpp;hxx;hm;inl;inc;xsd"
 			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
 			<File
-				RelativePath="..\..\srcctions.hpp">
-			</File>
-			<File
-				RelativePath="..\..\src\exiv2.hpp">
-			</File>
-			<File
-				RelativePath="..\..\src\getopt_win32.h">
-			</File>
-			<File
-				RelativePath="..\..\src\private.h">
-			</File>
-			<File
-				RelativePath="..\..\src	imegm.h">
-			</File>
-			<File
-				RelativePath="..\..\src	zfile.h">
+				RelativePath=".\exivsimple.h">
 			</File>
 			<File
-				RelativePath="..\..\src\utils.hpp">
+				RelativePath=".\stdafx.h">
 			</File>
 		</Filter>
 		<Filter
diff --git a/msvc/exivsimple/stdafx.cpp b/msvc/exivsimple/stdafx.cpp
new file mode 100644
index 0000000..ce3748c
--- /dev/null
+++ b/msvc/exivsimple/stdafx.cpp
@@ -0,0 +1,8 @@
+// stdafx.cpp : source file that includes just the standard includes
+// exivsimple.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
+
+// TODO: reference any additional headers you need in STDAFX.H
+// and not in this file
diff --git a/msvc/exivsimple/stdafx.h b/msvc/exivsimple/stdafx.h
new file mode 100644
index 0000000..1ad3b78
--- /dev/null
+++ b/msvc/exivsimple/stdafx.h
@@ -0,0 +1,13 @@
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#pragma once
+
+
+#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
+// Windows Header Files:
+#include <windows.h>
+
+// TODO: reference additional headers your program requires here
diff --git a/msvc/exifcomment/exifcomment.vcproj b/msvc/write2-test/write2-test.vcproj
similarity index 93%
copy from msvc/exifcomment/exifcomment.vcproj
copy to msvc/write2-test/write2-test.vcproj
index 99dd954..5b35022 100644
--- a/msvc/exifcomment/exifcomment.vcproj
+++ b/msvc/write2-test/write2-test.vcproj
@@ -2,8 +2,8 @@
 <VisualStudioProject
 	ProjectType="Visual C++"
 	Version="7.10"
-	Name="exifcomment"
-	ProjectGUID="{0BDCE87F-A5FE-49AE-BE6D-A2A3E2BB69CE}"
+	Name="write2-test"
+	ProjectGUID="{BBDB5742-0A55-4C2C-973C-E876AAED6ABE}"
 	Keyword="Win32Proj">
 	<Platforms>
 		<Platform
@@ -37,10 +37,10 @@
 			<Tool
 				Name="VCLinkerTool"
 				AdditionalDependencies="..\exiv2lib\Debug\exiv2.lib"
-				OutputFile="$(OutDir)/exifcomment.exe"
+				OutputFile="$(OutDir)/write2-test.exe"
 				LinkIncremental="2"
 				GenerateDebugInformation="TRUE"
-				ProgramDatabaseFile="$(OutDir)/exifcomment.pdb"
+				ProgramDatabaseFile="$(OutDir)/write2-test.pdb"
 				SubSystem="1"
 				TargetMachine="1"/>
 			<Tool
@@ -87,7 +87,7 @@
 			<Tool
 				Name="VCLinkerTool"
 				AdditionalDependencies="..\exiv2lib\Release\exiv2.lib"
-				OutputFile="$(OutDir)/exifcomment.exe"
+				OutputFile="$(OutDir)/write2-test.exe"
 				LinkIncremental="1"
 				GenerateDebugInformation="TRUE"
 				SubSystem="1"
@@ -124,10 +124,10 @@
 			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
 			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
 			<File
-				RelativePath="..\..\src\exifcomment.cpp">
+				RelativePath="..\..\src\mn.cpp">
 			</File>
 			<File
-				RelativePath="..\..\src\mn.cpp">
+				RelativePath="..\..\src\write2-test.cpp">
 			</File>
 		</Filter>
 		<Filter

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list