summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin10/lib/libjson.libbin0 -> 63032 bytes
-rw-r--r--bin10/lib/libjson64.libbin0 -> 63524 bytes
-rw-r--r--bin10/lib/mir_core.libbin387088 -> 324788 bytes
-rw-r--r--bin10/lib/mir_core64.libbin390056 -> 327292 bytes
-rw-r--r--bin10/mir_dev.sln10
-rw-r--r--bin10/mir_full.sln26
-rw-r--r--bin10/mir_full_pro.sln31
-rw-r--r--bin10/miranda32.sln26
-rw-r--r--bin12/lib/libjson.libbin0 -> 63032 bytes
-rw-r--r--bin12/lib/libjson64.libbin0 -> 63524 bytes
-rw-r--r--bin12/lib/mir_core.libbin387088 -> 324788 bytes
-rw-r--r--bin12/lib/mir_core64.libbin390056 -> 327292 bytes
-rw-r--r--bin12/mir_dev.sln10
-rw-r--r--bin12/mir_full.sln26
-rw-r--r--bin12/miranda32.sln26
-rw-r--r--include/m_json.h125
-rw-r--r--libs/libjson/libjson.vcxproj40
-rw-r--r--libs/libjson/libjson.vcxproj.filters461
-rw-r--r--libs/libjson/src/JSONChildren.cpp (renamed from src/mir_core/src/json/JSONChildren.cpp)2
-rw-r--r--libs/libjson/src/JSONChildren.h (renamed from src/mir_core/src/json/JSONChildren.h)0
-rw-r--r--libs/libjson/src/JSONDebug.cpp (renamed from src/mir_core/src/json/JSONDebug.cpp)2
-rw-r--r--libs/libjson/src/JSONDebug.h (renamed from src/mir_core/src/json/JSONDebug.h)0
-rw-r--r--libs/libjson/src/JSONDefs.h (renamed from src/mir_core/src/json/JSONDefs.h)4
-rw-r--r--libs/libjson/src/JSONIterators.cpp (renamed from src/mir_core/src/json/JSONIterators.cpp)2
-rw-r--r--libs/libjson/src/JSONMemory.cpp (renamed from src/mir_core/src/json/JSONMemory.cpp)2
-rw-r--r--libs/libjson/src/JSONMemory.h (renamed from src/mir_core/src/json/JSONMemory.h)0
-rw-r--r--libs/libjson/src/JSONNode.cpp (renamed from src/mir_core/src/json/JSONNode.cpp)2
-rw-r--r--libs/libjson/src/JSONNode.h (renamed from src/mir_core/src/json/JSONNode.h)2
-rw-r--r--libs/libjson/src/JSONNode.inl (renamed from src/mir_core/src/json/JSONNode.inl)0
-rw-r--r--libs/libjson/src/JSONNode_Mutex.cpp (renamed from src/mir_core/src/json/JSONNode_Mutex.cpp)2
-rw-r--r--libs/libjson/src/JSONOptions.h (renamed from src/mir_core/src/json/JSONOptions.h)0
-rw-r--r--libs/libjson/src/JSONWorker.cpp (renamed from src/mir_core/src/json/JSONWorker.cpp)2
-rw-r--r--libs/libjson/src/JSONWorker.h (renamed from src/mir_core/src/json/JSONWorker.h)2
-rw-r--r--libs/libjson/src/JSONWriter.cpp (renamed from src/mir_core/src/json/JSONWriter.cpp)2
-rw-r--r--libs/libjson/src/NumberToString.h (renamed from src/mir_core/src/json/NumberToString.h)0
-rw-r--r--libs/libjson/src/internalJSONNode.cpp (renamed from src/mir_core/src/json/internalJSONNode.cpp)3
-rw-r--r--libs/libjson/src/internalJSONNode.h (renamed from src/mir_core/src/json/internalJSONNode.h)0
-rw-r--r--libs/libjson/src/libJSON.cpp (renamed from src/mir_core/src/json/libJSON.cpp)131
-rw-r--r--libs/libjson/src/libjson.def194
-rw-r--r--libs/libjson/src/libjson64.def194
-rw-r--r--libs/libjson/src/stdafx.cxx19
-rw-r--r--libs/libjson/src/stdafx.h41
-rw-r--r--make_core_def.cmd4
-rw-r--r--protocols/MSN/src/msn_skypeab.cpp25
-rw-r--r--protocols/Steam/src/steam_contacts.cpp52
-rw-r--r--protocols/Steam/src/steam_login.cpp2
-rw-r--r--protocols/Steam/src/steam_messages.cpp2
-rw-r--r--protocols/Steam/src/steam_pooling.cpp8
-rw-r--r--protocols/Steam/src/steam_proto.h8
-rw-r--r--src/mir_app/src/skin2opts.cpp2
-rw-r--r--src/mir_core/mir_core_10.vcxproj40
-rw-r--r--src/mir_core/mir_core_10.vcxproj.filters63
-rw-r--r--src/mir_core/mir_core_12.vcxproj40
-rw-r--r--src/mir_core/mir_core_12.vcxproj.filters63
-rw-r--r--src/mir_core/src/mir_core.def214
-rw-r--r--src/mir_core/src/mir_core64.def214
56 files changed, 1281 insertions, 843 deletions
diff --git a/bin10/lib/libjson.lib b/bin10/lib/libjson.lib
new file mode 100644
index 0000000000..c157d388c2
--- /dev/null
+++ b/bin10/lib/libjson.lib
Binary files differ
diff --git a/bin10/lib/libjson64.lib b/bin10/lib/libjson64.lib
new file mode 100644
index 0000000000..3625a2ae21
--- /dev/null
+++ b/bin10/lib/libjson64.lib
Binary files differ
diff --git a/bin10/lib/mir_core.lib b/bin10/lib/mir_core.lib
index 967ae38a62..67991d4f4f 100644
--- a/bin10/lib/mir_core.lib
+++ b/bin10/lib/mir_core.lib
Binary files differ
diff --git a/bin10/lib/mir_core64.lib b/bin10/lib/mir_core64.lib
index d29283f64b..82363fc109 100644
--- a/bin10/lib/mir_core64.lib
+++ b/bin10/lib/mir_core64.lib
Binary files differ
diff --git a/bin10/mir_dev.sln b/bin10/mir_dev.sln
index 7bec46ca1a..21f4dbe914 100644
--- a/bin10/mir_dev.sln
+++ b/bin10/mir_dev.sln
@@ -429,6 +429,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MessageState", "..\plugins\
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MirLua", "..\plugins\MirLua\MirLua.vcxproj", "{27D41D81-991F-4DC6-8749-B0321C87E694}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjson", "..\libs\libjson\libjson.vcxproj", "{F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -1955,6 +1957,14 @@ Global
{27D41D81-991F-4DC6-8749-B0321C87E694}.Release|Win32.Build.0 = Release|Win32
{27D41D81-991F-4DC6-8749-B0321C87E694}.Release|x64.ActiveCfg = Release|x64
{27D41D81-991F-4DC6-8749-B0321C87E694}.Release|x64.Build.0 = Release|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|Win32.Build.0 = Debug|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|x64.ActiveCfg = Debug|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|x64.Build.0 = Debug|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|Win32.ActiveCfg = Release|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|Win32.Build.0 = Release|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|x64.ActiveCfg = Release|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/bin10/mir_full.sln b/bin10/mir_full.sln
index 63526e390b..1e803c210b 100644
--- a/bin10/mir_full.sln
+++ b/bin10/mir_full.sln
@@ -430,6 +430,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZeroSwitch", "..\plugins\Ze
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MessageState", "..\plugins\MessageState\MessageState.vcxproj", "{D7F4D0B3-7B2C-4DB9-B9CB-0C93491E38E4}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjson", "..\libs\libjson\libjson.vcxproj", "{F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -446,6 +448,14 @@ Global
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60}.Release|Win32.Build.0 = Release|Win32
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60}.Release|x64.ActiveCfg = Release|x64
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60}.Release|x64.Build.0 = Release|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.Build.0 = Debug|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.ActiveCfg = Debug|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.Build.0 = Debug|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.ActiveCfg = Release|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.Build.0 = Release|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.ActiveCfg = Release|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.Build.0 = Release|x64
{F9916510-9055-4C9F-997A-3755DEC1511B}.Debug|Win32.ActiveCfg = Debug|Win32
{F9916510-9055-4C9F-997A-3755DEC1511B}.Debug|Win32.Build.0 = Debug|Win32
{F9916510-9055-4C9F-997A-3755DEC1511B}.Debug|x64.ActiveCfg = Debug|x64
@@ -1930,14 +1940,14 @@ Global
{D7F4D0B3-7B2C-4DB9-B9CB-0C93491E38E4}.Release|Win32.Build.0 = Release|Win32
{D7F4D0B3-7B2C-4DB9-B9CB-0C93491E38E4}.Release|x64.ActiveCfg = Release|x64
{D7F4D0B3-7B2C-4DB9-B9CB-0C93491E38E4}.Release|x64.Build.0 = Release|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.ActiveCfg = Debug|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.Build.0 = Debug|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.ActiveCfg = Debug|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.Build.0 = Debug|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.ActiveCfg = Release|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.Build.0 = Release|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.ActiveCfg = Release|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.Build.0 = Release|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|Win32.Build.0 = Debug|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|x64.ActiveCfg = Debug|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|x64.Build.0 = Debug|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|Win32.ActiveCfg = Release|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|Win32.Build.0 = Release|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|x64.ActiveCfg = Release|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/bin10/mir_full_pro.sln b/bin10/mir_full_pro.sln
index 7c8c4e77c3..68f3435a35 100644
--- a/bin10/mir_full_pro.sln
+++ b/bin10/mir_full_pro.sln
@@ -462,6 +462,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZeroSwitch", "..\plugins\Ze
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MessageState", "..\plugins\MessageState\MessageState.vcxproj", "{D7F4D0B3-7B2C-4DB9-B9CB-0C93491E38E4}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{A66F2F7C-F450-4291-A89D-09FE1D072D98}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjson", "..\libs\libjson\libjson.vcxproj", "{F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -478,6 +482,14 @@ Global
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60}.Release|Win32.Build.0 = Release|Win32
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60}.Release|x64.ActiveCfg = Release|x64
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60}.Release|x64.Build.0 = Release|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.Build.0 = Debug|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.ActiveCfg = Debug|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.Build.0 = Debug|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.ActiveCfg = Release|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.Build.0 = Release|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.ActiveCfg = Release|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.Build.0 = Release|x64
{F9916510-9055-4C9F-997A-3755DEC1511B}.Debug|Win32.ActiveCfg = Debug|Win32
{F9916510-9055-4C9F-997A-3755DEC1511B}.Debug|Win32.Build.0 = Debug|Win32
{F9916510-9055-4C9F-997A-3755DEC1511B}.Debug|x64.ActiveCfg = Debug|x64
@@ -1954,19 +1966,20 @@ Global
{D7F4D0B3-7B2C-4DB9-B9CB-0C93491E38E4}.Release|Win32.Build.0 = Release|Win32
{D7F4D0B3-7B2C-4DB9-B9CB-0C93491E38E4}.Release|x64.ActiveCfg = Release|x64
{D7F4D0B3-7B2C-4DB9-B9CB-0C93491E38E4}.Release|x64.Build.0 = Release|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.ActiveCfg = Debug|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.Build.0 = Debug|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.ActiveCfg = Debug|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.Build.0 = Debug|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.ActiveCfg = Release|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.Build.0 = Release|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.ActiveCfg = Release|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.Build.0 = Release|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|Win32.Build.0 = Debug|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|x64.ActiveCfg = Debug|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|x64.Build.0 = Debug|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|Win32.ActiveCfg = Release|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|Win32.Build.0 = Release|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|x64.ActiveCfg = Release|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1} = {CBBD3DE7-97CE-479D-87E3-8EACD035AF9B}
{F9916510-9055-4C9F-997A-3755DEC1511B} = {CBBD3DE7-97CE-479D-87E3-8EACD035AF9B}
{E2A369CD-EDA3-414F-8AD0-E732CD7EE68C} = {CBBD3DE7-97CE-479D-87E3-8EACD035AF9B}
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60} = {CBBD3DE7-97CE-479D-87E3-8EACD035AF9B}
@@ -1987,7 +2000,6 @@ Global
{8D0F60DE-DB07-49FD-8E1F-0DE558BE6DE3} = {CBBD3DE7-97CE-479D-87E3-8EACD035AF9B}
{2C9F6CB6-3E70-4E7A-945D-2A7C148B0DF3} = {CBBD3DE7-97CE-479D-87E3-8EACD035AF9B}
{6124E997-426E-4A0B-9617-D6D577D5E7D7} = {CBBD3DE7-97CE-479D-87E3-8EACD035AF9B}
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1} = {CBBD3DE7-97CE-479D-87E3-8EACD035AF9B}
{D0C4EACD-F264-4CFA-9AFC-3918FEC31A9A} = {A93476F5-9C4C-48A6-A8A4-C79D804A3228}
{153DD132-084C-4DE4-8F40-A088BCB22723} = {A93476F5-9C4C-48A6-A8A4-C79D804A3228}
{A231E008-2D1A-4F24-95DD-59F56F85A499} = {A93476F5-9C4C-48A6-A8A4-C79D804A3228}
@@ -2158,6 +2170,7 @@ Global
{2C050CAF-D8AA-468A-B1A7-89F3BE99D3C8} = {3E727941-2854-4F64-ADA5-BF3BF104A4A3}
{73BA9CA5-640D-4F30-A157-A73557A25F98} = {129AC608-06B4-419C-8FEA-7DF5D90CE9D6}
{1E3BB48A-FFBC-4A03-8C43-9124A484BE51} = {129AC608-06B4-419C-8FEA-7DF5D90CE9D6}
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7} = {A66F2F7C-F450-4291-A89D-09FE1D072D98}
EndGlobalSection
GlobalSection(DPCodeReviewSolutionGUID) = preSolution
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
diff --git a/bin10/miranda32.sln b/bin10/miranda32.sln
index 909ee99181..8edd5836f7 100644
--- a/bin10/miranda32.sln
+++ b/bin10/miranda32.sln
@@ -158,6 +158,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Proto_Facebook", "..\protoc
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Proto_MetaContacts", "..\src\icons\proto_metacontacts\Proto_MetaContacts_10.vcxproj", "{793B6174-89B0-4682-A957-A32BE7F61502}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjson", "..\libs\libjson\libjson.vcxproj", "{F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -174,6 +176,14 @@ Global
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60}.Release|Win32.Build.0 = Release|Win32
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60}.Release|x64.ActiveCfg = Release|x64
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60}.Release|x64.Build.0 = Release|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.Build.0 = Debug|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.ActiveCfg = Debug|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.Build.0 = Debug|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.ActiveCfg = Release|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.Build.0 = Release|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.ActiveCfg = Release|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.Build.0 = Release|x64
{F9916510-9055-4C9F-997A-3755DEC1511B}.Debug|Win32.ActiveCfg = Debug|Win32
{F9916510-9055-4C9F-997A-3755DEC1511B}.Debug|Win32.Build.0 = Debug|Win32
{F9916510-9055-4C9F-997A-3755DEC1511B}.Debug|x64.ActiveCfg = Debug|x64
@@ -573,14 +583,14 @@ Global
{793B6174-89B0-4682-A957-A32BE7F61502}.Release|Win32.Build.0 = Release|Win32
{793B6174-89B0-4682-A957-A32BE7F61502}.Release|x64.ActiveCfg = Release|x64
{793B6174-89B0-4682-A957-A32BE7F61502}.Release|x64.Build.0 = Release|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.ActiveCfg = Debug|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.Build.0 = Debug|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.ActiveCfg = Debug|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.Build.0 = Debug|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.ActiveCfg = Release|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.Build.0 = Release|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.ActiveCfg = Release|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.Build.0 = Release|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|Win32.Build.0 = Debug|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|x64.ActiveCfg = Debug|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|x64.Build.0 = Debug|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|Win32.ActiveCfg = Release|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|Win32.Build.0 = Release|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|x64.ActiveCfg = Release|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/bin12/lib/libjson.lib b/bin12/lib/libjson.lib
new file mode 100644
index 0000000000..c157d388c2
--- /dev/null
+++ b/bin12/lib/libjson.lib
Binary files differ
diff --git a/bin12/lib/libjson64.lib b/bin12/lib/libjson64.lib
new file mode 100644
index 0000000000..3625a2ae21
--- /dev/null
+++ b/bin12/lib/libjson64.lib
Binary files differ
diff --git a/bin12/lib/mir_core.lib b/bin12/lib/mir_core.lib
index 967ae38a62..67991d4f4f 100644
--- a/bin12/lib/mir_core.lib
+++ b/bin12/lib/mir_core.lib
Binary files differ
diff --git a/bin12/lib/mir_core64.lib b/bin12/lib/mir_core64.lib
index d29283f64b..82363fc109 100644
--- a/bin12/lib/mir_core64.lib
+++ b/bin12/lib/mir_core64.lib
Binary files differ
diff --git a/bin12/mir_dev.sln b/bin12/mir_dev.sln
index 86fafcd0a8..bd62a3ecfb 100644
--- a/bin12/mir_dev.sln
+++ b/bin12/mir_dev.sln
@@ -436,6 +436,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MessageState", "..\plugins\
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MirLua", "..\plugins\MirLua\MirLua.vcxproj", "{27D41D81-991F-4DC6-8749-B0321C87E694}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjson", "..\libs\libjson\libjson.vcxproj", "{F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -1970,6 +1972,14 @@ Global
{27D41D81-991F-4DC6-8749-B0321C87E694}.Release|Win32.Build.0 = Release|Win32
{27D41D81-991F-4DC6-8749-B0321C87E694}.Release|x64.ActiveCfg = Release|x64
{27D41D81-991F-4DC6-8749-B0321C87E694}.Release|x64.Build.0 = Release|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|Win32.Build.0 = Debug|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|x64.ActiveCfg = Debug|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|x64.Build.0 = Debug|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|Win32.ActiveCfg = Release|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|Win32.Build.0 = Release|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|x64.ActiveCfg = Release|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/bin12/mir_full.sln b/bin12/mir_full.sln
index c417e9e2a4..77ab97ac95 100644
--- a/bin12/mir_full.sln
+++ b/bin12/mir_full.sln
@@ -432,6 +432,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZeroSwitch", "..\plugins\Ze
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MessageState", "..\plugins\MessageState\MessageState.vcxproj", "{D7F4D0B3-7B2C-4DB9-B9CB-0C93491E38E4}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjson", "..\libs\libjson\libjson.vcxproj", "{F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -448,6 +450,14 @@ Global
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60}.Release|Win32.Build.0 = Release|Win32
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60}.Release|x64.ActiveCfg = Release|x64
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60}.Release|x64.Build.0 = Release|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.Build.0 = Debug|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.ActiveCfg = Debug|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.Build.0 = Debug|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.ActiveCfg = Release|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.Build.0 = Release|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.ActiveCfg = Release|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.Build.0 = Release|x64
{F9916510-9055-4C9F-997A-3755DEC1511B}.Debug|Win32.ActiveCfg = Debug|Win32
{F9916510-9055-4C9F-997A-3755DEC1511B}.Debug|Win32.Build.0 = Debug|Win32
{F9916510-9055-4C9F-997A-3755DEC1511B}.Debug|x64.ActiveCfg = Debug|x64
@@ -1932,14 +1942,14 @@ Global
{D7F4D0B3-7B2C-4DB9-B9CB-0C93491E38E4}.Release|Win32.Build.0 = Release|Win32
{D7F4D0B3-7B2C-4DB9-B9CB-0C93491E38E4}.Release|x64.ActiveCfg = Release|x64
{D7F4D0B3-7B2C-4DB9-B9CB-0C93491E38E4}.Release|x64.Build.0 = Release|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.ActiveCfg = Debug|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.Build.0 = Debug|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.ActiveCfg = Debug|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.Build.0 = Debug|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.ActiveCfg = Release|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.Build.0 = Release|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.ActiveCfg = Release|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.Build.0 = Release|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|Win32.Build.0 = Debug|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|x64.ActiveCfg = Debug|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|x64.Build.0 = Debug|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|Win32.ActiveCfg = Release|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|Win32.Build.0 = Release|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|x64.ActiveCfg = Release|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/bin12/miranda32.sln b/bin12/miranda32.sln
index 47e7bd3714..a0f84c1261 100644
--- a/bin12/miranda32.sln
+++ b/bin12/miranda32.sln
@@ -160,6 +160,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Proto_Facebook", "..\protoc
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Proto_MetaContacts", "..\src\icons\proto_metacontacts\Proto_MetaContacts_12.vcxproj", "{793B6174-89B0-4682-A957-A32BE7F61502}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjson", "..\libs\libjson\libjson.vcxproj", "{F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -176,6 +178,14 @@ Global
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60}.Release|Win32.Build.0 = Release|Win32
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60}.Release|x64.ActiveCfg = Release|x64
{D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60}.Release|x64.Build.0 = Release|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.Build.0 = Debug|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.ActiveCfg = Debug|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.Build.0 = Debug|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.ActiveCfg = Release|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.Build.0 = Release|Win32
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.ActiveCfg = Release|x64
+ {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.Build.0 = Release|x64
{F9916510-9055-4C9F-997A-3755DEC1511B}.Debug|Win32.ActiveCfg = Debug|Win32
{F9916510-9055-4C9F-997A-3755DEC1511B}.Debug|Win32.Build.0 = Debug|Win32
{F9916510-9055-4C9F-997A-3755DEC1511B}.Debug|x64.ActiveCfg = Debug|x64
@@ -575,14 +585,14 @@ Global
{793B6174-89B0-4682-A957-A32BE7F61502}.Release|Win32.Build.0 = Release|Win32
{793B6174-89B0-4682-A957-A32BE7F61502}.Release|x64.ActiveCfg = Release|x64
{793B6174-89B0-4682-A957-A32BE7F61502}.Release|x64.Build.0 = Release|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.ActiveCfg = Debug|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|Win32.Build.0 = Debug|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.ActiveCfg = Debug|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Debug|x64.Build.0 = Debug|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.ActiveCfg = Release|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|Win32.Build.0 = Release|Win32
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.ActiveCfg = Release|x64
- {538E451F-E667-4D07-BCE6-976ECC7BB8D1}.Release|x64.Build.0 = Release|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|Win32.Build.0 = Debug|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|x64.ActiveCfg = Debug|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Debug|x64.Build.0 = Debug|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|Win32.ActiveCfg = Release|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|Win32.Build.0 = Release|Win32
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|x64.ActiveCfg = Release|x64
+ {F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/include/m_json.h b/include/m_json.h
index 63980ab4e0..c0116d3957 100644
--- a/include/m_json.h
+++ b/include/m_json.h
@@ -29,118 +29,129 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#pragma warning(disable:4190)
+#ifdef LIBJSON_EXPORTS
+#define LIBJSON_EXPORT __declspec(dllexport)
+#else
+#define LIBJSON_EXPORT __declspec(dllimport)
+#endif
+
+#define LIBJSON_DLL(T) LIBJSON_EXPORT T __stdcall
+
#ifdef __cplusplus
-#include "../src/mir_core/src/json/JSONNode.h"
-typedef JSONNode JSONNODE;
+#include "../libs/libjson/src/JSONNode.h"
extern "C"
{
#else
-typedef void JSONNODE;
+typedef void JSONNode;
#endif
-MIR_CORE_DLL(void) json_free(void *str);
-MIR_CORE_DLL(void) json_delete(JSONNODE *node);
+LIBJSON_DLL(void) json_free(void *str);
+LIBJSON_DLL(void) json_delete(JSONNode *node);
-MIR_CORE_DLL(JSONNODE*) json_parse(const char *json);
-MIR_CORE_DLL(TCHAR*) json_strip_white_space(const char *json);
+LIBJSON_DLL(JSONNode*) json_parse(const char *json);
+LIBJSON_DLL(TCHAR*) json_strip_white_space(const char *json);
#ifdef JSON_VALIDATE
- MIR_CORE_DLL(JSONNODE*) json_validate(const char *json);
+ LIBJSON_DLL(JSONNode*) json_validate(const char *json);
#endif
/*
stuff that's in class JSONNode
*/
//ctors
-MIR_CORE_DLL(JSONNODE*) json_new_a(const char *name, const char *value);
-MIR_CORE_DLL(JSONNODE*) json_new_i(const char *name, long value);
-MIR_CORE_DLL(JSONNODE*) json_new_f(const char *name, double value);
-MIR_CORE_DLL(JSONNODE*) json_new_b(const char *name, int value); //because C bools are ints and C++ will implicitly cast it
-MIR_CORE_DLL(JSONNODE*) json_new(char type);
-MIR_CORE_DLL(JSONNODE*) json_copy(const JSONNODE *orig);
-MIR_CORE_DLL(JSONNODE*) json_duplicate(const JSONNODE *orig);
+LIBJSON_DLL(JSONNode*) json_new_a(const char *name, const char *value);
+LIBJSON_DLL(JSONNode*) json_new_i(const char *name, long value);
+LIBJSON_DLL(JSONNode*) json_new_f(const char *name, double value);
+LIBJSON_DLL(JSONNode*) json_new_b(const char *name, int value); //because C bools are ints and C++ will implicitly cast it
+LIBJSON_DLL(JSONNode*) json_new(char type);
+LIBJSON_DLL(JSONNode*) json_copy(const JSONNode *orig);
+LIBJSON_DLL(JSONNode*) json_duplicate(const JSONNode *orig);
//assignment
-MIR_CORE_DLL(void) json_set_a(JSONNODE *node, const char *value);
-MIR_CORE_DLL(void) json_set_i(JSONNODE *node, long value);
-MIR_CORE_DLL(void) json_set_f(JSONNODE *node, double value);
-MIR_CORE_DLL(void) json_set_b(JSONNODE *node, int value); //because C bools are ints ane C++ will implicit
-MIR_CORE_DLL(void) json_set_n(JSONNODE *node, const JSONNODE *orig);
+LIBJSON_DLL(void) json_set_a(JSONNode *node, const char *value);
+LIBJSON_DLL(void) json_set_i(JSONNode *node, long value);
+LIBJSON_DLL(void) json_set_f(JSONNode *node, double value);
+LIBJSON_DLL(void) json_set_b(JSONNode *node, int value); //because C bools are ints ane C++ will implicit
+LIBJSON_DLL(void) json_set_n(JSONNode *node, const JSONNode *orig);
//inspectors
-MIR_CORE_DLL(char) json_type(const JSONNODE *node);
-MIR_CORE_DLL(size_t) json_size(const JSONNODE *node);
-MIR_CORE_DLL(int) json_empty(const JSONNODE *node);
-MIR_CORE_DLL(const char*) json_name(const JSONNODE *node);
+LIBJSON_DLL(char) json_type(const JSONNode *node);
+LIBJSON_DLL(size_t) json_size(const JSONNode *node);
+LIBJSON_DLL(int) json_empty(const JSONNode *node);
+LIBJSON_DLL(const char*) json_name(const JSONNode *node);
#ifdef JSON_COMMENTS
- MIR_CORE_DLL(char * json_get_comment(const JSONNODE *node);
+ LIBJSON_DLL(char * json_get_comment(const JSONNode *node);
#endif
-MIR_CORE_DLL(TCHAR*) json_as_string(const JSONNODE *node);
-MIR_CORE_DLL(long) json_as_int(const JSONNODE *node);
-MIR_CORE_DLL(double) json_as_float(const JSONNODE *node);
-MIR_CORE_DLL(int) json_as_bool(const JSONNODE *node);
-MIR_CORE_DLL(JSONNODE*) json_as_node(const JSONNODE *node);
-MIR_CORE_DLL(JSONNODE*) json_as_array(const JSONNODE *node);
+LIBJSON_DLL(TCHAR*) json_as_string(const JSONNode *node);
+LIBJSON_DLL(long) json_as_int(const JSONNode *node);
+LIBJSON_DLL(double) json_as_float(const JSONNode *node);
+LIBJSON_DLL(int) json_as_bool(const JSONNode *node);
+LIBJSON_DLL(JSONNode*) json_as_node(const JSONNode *node);
+LIBJSON_DLL(JSONNode*) json_as_array(const JSONNode *node);
-MIR_CORE_DLL(TCHAR*) json_write(const JSONNODE *node);
-MIR_CORE_DLL(TCHAR*) json_write_formatted(const JSONNODE *node);
+LIBJSON_DLL(TCHAR*) json_write(const JSONNode *node);
+LIBJSON_DLL(TCHAR*) json_write_formatted(const JSONNode *node);
//modifiers
-MIR_CORE_DLL(void) json_set_name(JSONNODE *node, const char *name);
+LIBJSON_DLL(void) json_set_name(JSONNode *node, const char *name);
#ifdef JSON_COMMENTS
- MIR_CORE_DLL(void) json_set_comment(JSONNODE *node, const char * comment);
+ LIBJSON_DLL(void) json_set_comment(JSONNode *node, const char * comment);
#endif
-MIR_CORE_DLL(void) json_clear(JSONNODE *node);
-MIR_CORE_DLL(void) json_nullify(JSONNODE *node);
-MIR_CORE_DLL(void) json_swap(JSONNODE *node, JSONNODE *node2);
-MIR_CORE_DLL(void) json_merge(JSONNODE *node, JSONNODE *node2);
+LIBJSON_DLL(void) json_clear(JSONNode *node);
+LIBJSON_DLL(void) json_nullify(JSONNode *node);
+LIBJSON_DLL(void) json_swap(JSONNode *node, JSONNode *node2);
+LIBJSON_DLL(void) json_merge(JSONNode *node, JSONNode *node2);
#ifndef JSON_PREPARSE
- MIR_CORE_DLL(void) json_preparse(JSONNODE *node);
+ LIBJSON_DLL(void) json_preparse(JSONNode *node);
#endif
#ifdef JSON_BINARY
- MIR_CORE_DLL(void) json_set_binary(JSONNODE *node, const void * data, unsigned long length);
+ LIBJSON_DLL(void) json_set_binary(JSONNode *node, const void * data, unsigned long length);
#endif
-MIR_CORE_DLL(void) json_cast(JSONNODE *node, char type);
+LIBJSON_DLL(void) json_cast(JSONNode *node, char type);
//children access
-MIR_CORE_DLL(void) json_reserve(JSONNODE *node, size_t siz);
-MIR_CORE_DLL(JSONNODE*) json_at(JSONNODE *node, size_t pos);
-MIR_CORE_DLL(JSONNODE*) json_get(JSONNODE *node, const char *name);
+LIBJSON_DLL(void) json_reserve(JSONNode *node, size_t siz);
+LIBJSON_DLL(JSONNode*) json_at(JSONNode *node, size_t pos);
+LIBJSON_DLL(JSONNode*) json_get(JSONNode *node, const char *name);
#ifdef JSON_CASE_INSENSITIVE_FUNCTIONS
- MIR_CORE_DLL(JSONNODE*) json_get_nocase(JSONNODE *node, const char *name);
- MIR_CORE_DLL(JSONNODE*) json_pop_back_nocase(JSONNODE *node, const char *name);
+ LIBJSON_DLL(JSONNode*) json_get_nocase(JSONNode *node, const char *name);
+ LIBJSON_DLL(JSONNode*) json_pop_back_nocase(JSONNode *node, const char *name);
#endif
-MIR_CORE_DLL(void) json_push_back(JSONNODE *node, JSONNODE *node2);
-MIR_CORE_DLL(JSONNODE*) json_pop_back_at(JSONNODE *node, size_t pos);
-MIR_CORE_DLL(JSONNODE*) json_pop_back(JSONNODE *node, const char *name);
+LIBJSON_DLL(void) json_push_back(JSONNode *node, JSONNode *node2);
+LIBJSON_DLL(JSONNode*) json_pop_back_at(JSONNode *node, size_t pos);
+LIBJSON_DLL(JSONNode*) json_pop_back(JSONNode *node, const char *name);
//comparison
-MIR_CORE_DLL(int) json_equal(JSONNODE *node, JSONNODE *node2);
+LIBJSON_DLL(int) json_equal(JSONNode *node, JSONNode *node2);
#ifdef __cplusplus
class JSONROOT
{
- JSONNODE *m_node;
+ JSONNode *m_node;
public:
__forceinline JSONROOT() { m_node = NULL; }
__forceinline JSONROOT(LPCSTR text) { Parse(text); }
__forceinline ~JSONROOT() { json_delete(m_node); }
- __forceinline operator JSONNODE*() const { return m_node; }
+ __forceinline operator JSONNode*() const { return m_node; }
- __forceinline JSONNODE* Parse(LPCSTR text) { return (m_node = json_parse(text)); }
+ __forceinline JSONNode* Parse(LPCSTR text) { return (m_node = json_parse(text)); }
};
}
-#ifdef _XSTRING_
-MIR_C_CORE_DLL(std::string) json_as_pstring(const JSONNODE *node);
-#endif
+#endif // __cplusplus
+#ifndef LIBJSON_EXPORTS
+ #if !defined(_WIN64)
+ #pragma comment(lib, "libjson.lib")
+ #else
+ #pragma comment(lib, "libjson64.lib")
+ #endif
#endif
#endif // MIM_LIBJSON_H
diff --git a/libs/libjson/libjson.vcxproj b/libs/libjson/libjson.vcxproj
new file mode 100644
index 0000000000..c522fba75b
--- /dev/null
+++ b/libs/libjson/libjson.vcxproj
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{F6A9340E-B8D9-4C75-BE30-47DC66D0ABC7}</ProjectGuid>
+ <ProjectName>libjson</ProjectName>
+ </PropertyGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(ProjectDir)..\..\build\vc.common\lib.props" />
+ </ImportGroup>
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <ExceptionHandling>Sync</ExceptionHandling>
+ <PreprocessorDefinitions Condition="'$(Configuration)'=='Debug'">LIBJSON_EXPORTS;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)'=='Release'">LIBJSON_EXPORTS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <Link>
+ <AdditionalOptions>/ignore:4197 %(AdditionalOptions)</AdditionalOptions>
+ <ModuleDefinitionFile Condition="'$(Platform)'=='Win32'">src/libjson.def</ModuleDefinitionFile>
+ <ModuleDefinitionFile Condition="'$(Platform)'=='x64'">src/libjson64.def</ModuleDefinitionFile>
+ </Link>
+ </ItemDefinitionGroup>
+</Project> \ No newline at end of file
diff --git a/libs/libjson/libjson.vcxproj.filters b/libs/libjson/libjson.vcxproj.filters
new file mode 100644
index 0000000000..001c820adb
--- /dev/null
+++ b/libs/libjson/libjson.vcxproj.filters
@@ -0,0 +1,461 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(ProjectDir)..\..\build\vc.common\common.filters" />
+ <ItemGroup>
+ <ClCompile Include="src\stdafx.cxx">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ <ClCompile Include="src\internalJSONNode.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\JSONChildren.cpp" />
+ <ClCompile Include="src\JSONDebug.cpp" />
+ <ClCompile Include="src\JSONIterators.cpp" />
+ <ClCompile Include="src\JSONMemory.cpp" />
+ <ClCompile Include="src\JSONNode.cpp" />
+ <ClCompile Include="src\JSONNode_Mutex.cpp" />
+ <ClCompile Include="src\JSONWorker.cpp" />
+ <ClCompile Include="src\JSONWriter.cpp" />
+ <ClCompile Include="src\libJSON.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\internalJSONNode.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\JSONChildren.h" />
+ <ClInclude Include="src\JSONDebug.h" />
+ <ClInclude Include="src\JSONDefs.h" />
+ <ClInclude Include="src\JSONMemory.h" />
+ <ClInclude Include="src\JSONNode.h" />
+ <ClInclude Include="src\JSONOptions.h" />
+ <ClInclude Include="src\JSONWorker.h" />
+ <ClInclude Include="src\NumberToString.h" />
+ <ClInclude Include="src\stdafx.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="src\libjson.def">
+ <Filter>Source Files</Filter>
+ </None>
+ <None Include="src\libjson64.def" />
+ <None Include="src\libjson.def">
+ <Filter>Source Files</Filter>
+ </None>
+ <None Include="src\libjson64.def" />
+ <None Include="src\libjson.def">
+ <Filter>Source Files</Filter>
+ </None>
+ <None Include="src\libjson64.def" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/mir_core/src/json/JSONChildren.cpp b/libs/libjson/src/JSONChildren.cpp
index 960217aa7d..f5ffd15a8c 100644
--- a/src/mir_core/src/json/JSONChildren.cpp
+++ b/libs/libjson/src/JSONChildren.cpp
@@ -22,7 +22,7 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "..\commonheaders.h"
+#include "stdafx.h"
#include "JSONChildren.h"
#include "JSONNode.h"
diff --git a/src/mir_core/src/json/JSONChildren.h b/libs/libjson/src/JSONChildren.h
index ce697ffd77..ce697ffd77 100644
--- a/src/mir_core/src/json/JSONChildren.h
+++ b/libs/libjson/src/JSONChildren.h
diff --git a/src/mir_core/src/json/JSONDebug.cpp b/libs/libjson/src/JSONDebug.cpp
index d7800f4fad..dca408284b 100644
--- a/src/mir_core/src/json/JSONDebug.cpp
+++ b/libs/libjson/src/JSONDebug.cpp
@@ -22,7 +22,7 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "..\commonheaders.h"
+#include "stdafx.h"
#include <m_json.h>
diff --git a/src/mir_core/src/json/JSONDebug.h b/libs/libjson/src/JSONDebug.h
index ff1cedf8fc..ff1cedf8fc 100644
--- a/src/mir_core/src/json/JSONDebug.h
+++ b/libs/libjson/src/JSONDebug.h
diff --git a/src/mir_core/src/json/JSONDefs.h b/libs/libjson/src/JSONDefs.h
index 9bcaa55b64..dbd325b342 100644
--- a/src/mir_core/src/json/JSONDefs.h
+++ b/libs/libjson/src/JSONDefs.h
@@ -74,8 +74,8 @@ typedef void (*json_free_t)(void *);
typedef void * (*json_malloc_t)(size_t);
typedef void * (*json_realloc_t)(void *, size_t);
#else
- #define JSONNODE void //so that JSONNODE* is void*
- typedef JSONNODE** JSONNODE_ITERATOR;
+ #define JSONNode void //so that JSONNode* is void*
+ typedef JSONNode** JSONNODE_ITERATOR;
typedef void * (*json_malloc_t)(size_t);
typedef void * (*json_realloc_t)(void *, size_t);
#endif
diff --git a/src/mir_core/src/json/JSONIterators.cpp b/libs/libjson/src/JSONIterators.cpp
index 0668d38b48..e6b1d25ea7 100644
--- a/src/mir_core/src/json/JSONIterators.cpp
+++ b/libs/libjson/src/JSONIterators.cpp
@@ -22,7 +22,7 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "..\commonheaders.h"
+#include "stdafx.h"
#include "JSONNode.h"
#include "JSONNode.inl"
diff --git a/src/mir_core/src/json/JSONMemory.cpp b/libs/libjson/src/JSONMemory.cpp
index 313b86d734..c36c30c33f 100644
--- a/src/mir_core/src/json/JSONMemory.cpp
+++ b/libs/libjson/src/JSONMemory.cpp
@@ -22,7 +22,7 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "..\commonheaders.h"
+#include "stdafx.h"
#include "JSONMemory.h"
#include "JSONNode.h"
diff --git a/src/mir_core/src/json/JSONMemory.h b/libs/libjson/src/JSONMemory.h
index 32e8c3f4ef..32e8c3f4ef 100644
--- a/src/mir_core/src/json/JSONMemory.h
+++ b/libs/libjson/src/JSONMemory.h
diff --git a/src/mir_core/src/json/JSONNode.cpp b/libs/libjson/src/JSONNode.cpp
index d0e050f648..97f9f43b7f 100644
--- a/src/mir_core/src/json/JSONNode.cpp
+++ b/libs/libjson/src/JSONNode.cpp
@@ -22,7 +22,7 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "..\commonheaders.h"
+#include "stdafx.h"
#include "JSONNode.h"
#include "JSONNode.inl"
diff --git a/src/mir_core/src/json/JSONNode.h b/libs/libjson/src/JSONNode.h
index d2fdd1b838..0a5ae52bb1 100644
--- a/src/mir_core/src/json/JSONNode.h
+++ b/libs/libjson/src/JSONNode.h
@@ -79,7 +79,7 @@
for argument checking and throwing exceptions if needed.
*/
-class MIR_CORE_EXPORT JSONNode
+class LIBJSON_EXPORT JSONNode
{
friend class JSONWorker;
friend class internalJSONNode;
diff --git a/src/mir_core/src/json/JSONNode.inl b/libs/libjson/src/JSONNode.inl
index 9562e3f3ec..9562e3f3ec 100644
--- a/src/mir_core/src/json/JSONNode.inl
+++ b/libs/libjson/src/JSONNode.inl
diff --git a/src/mir_core/src/json/JSONNode_Mutex.cpp b/libs/libjson/src/JSONNode_Mutex.cpp
index d4d03925a2..d73425bde5 100644
--- a/src/mir_core/src/json/JSONNode_Mutex.cpp
+++ b/libs/libjson/src/JSONNode_Mutex.cpp
@@ -22,7 +22,7 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "..\commonheaders.h"
+#include "stdafx.h"
#include <m_json.h>
#ifdef JSON_MUTEX_CALLBACKS
diff --git a/src/mir_core/src/json/JSONOptions.h b/libs/libjson/src/JSONOptions.h
index 453d37c4e2..453d37c4e2 100644
--- a/src/mir_core/src/json/JSONOptions.h
+++ b/libs/libjson/src/JSONOptions.h
diff --git a/src/mir_core/src/json/JSONWorker.cpp b/libs/libjson/src/JSONWorker.cpp
index 0ada7e1959..ba35432943 100644
--- a/src/mir_core/src/json/JSONWorker.cpp
+++ b/libs/libjson/src/JSONWorker.cpp
@@ -22,7 +22,7 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "..\commonheaders.h"
+#include "stdafx.h"
#include "JSONNode.h"
#include "JSONNode.inl"
diff --git a/src/mir_core/src/json/JSONWorker.h b/libs/libjson/src/JSONWorker.h
index fead0619aa..88c61f6b2d 100644
--- a/src/mir_core/src/json/JSONWorker.h
+++ b/libs/libjson/src/JSONWorker.h
@@ -1,7 +1,7 @@
#ifndef JSON_WORKER_H
#define JSON_WORKER_H
-class MIR_CORE_EXPORT JSONWorker
+class LIBJSON_EXPORT JSONWorker
{
public:
static JSONNode parse(const json_string & json);
diff --git a/src/mir_core/src/json/JSONWriter.cpp b/libs/libjson/src/JSONWriter.cpp
index 057007e4f7..e3facf8403 100644
--- a/src/mir_core/src/json/JSONWriter.cpp
+++ b/libs/libjson/src/JSONWriter.cpp
@@ -22,7 +22,7 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "..\commonheaders.h"
+#include "stdafx.h"
#include "JSONNode.h"
#include "JSONNode.inl"
diff --git a/src/mir_core/src/json/NumberToString.h b/libs/libjson/src/NumberToString.h
index a706372f92..a706372f92 100644
--- a/src/mir_core/src/json/NumberToString.h
+++ b/libs/libjson/src/NumberToString.h
diff --git a/src/mir_core/src/json/internalJSONNode.cpp b/libs/libjson/src/internalJSONNode.cpp
index 8541f011bf..b5458a39d5 100644
--- a/src/mir_core/src/json/internalJSONNode.cpp
+++ b/libs/libjson/src/internalJSONNode.cpp
@@ -22,8 +22,7 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "..\commonheaders.h"
-#include <m_json.h>
+#include "stdafx.h"
#include "NumberToString.h" //So that I can convert numbers into strings
#include "JSONNode.h"
diff --git a/src/mir_core/src/json/internalJSONNode.h b/libs/libjson/src/internalJSONNode.h
index 5381d2fcdc..5381d2fcdc 100644
--- a/src/mir_core/src/json/internalJSONNode.h
+++ b/libs/libjson/src/internalJSONNode.h
diff --git a/src/mir_core/src/json/libJSON.cpp b/libs/libjson/src/libJSON.cpp
index 962c52b73f..ebedb81f97 100644
--- a/src/mir_core/src/json/libJSON.cpp
+++ b/libs/libjson/src/libJSON.cpp
@@ -22,7 +22,7 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include "..\commonheaders.h"
+#include "stdafx.h"
#include <m_json.h>
@@ -62,7 +62,7 @@ inline TCHAR* toCString(const json_string & str)
stuff that's in namespace libJSON
*/
-MIR_CORE_DLL(void) json_free(void *str){
+LIBJSON_DLL(void) json_free(void *str) {
JSON_ASSERT_SAFE(str, JSON_TEXT("freeing null ptr"), return;);
#ifdef JSON_MEMORY_MANAGE
StringHandler.remove(str);
@@ -70,7 +70,7 @@ MIR_CORE_DLL(void) json_free(void *str){
libjson_free<void>(str);
}
-MIR_CORE_DLL(void) json_delete(JSONNODE *node){
+LIBJSON_DLL(void) json_delete(JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("deleting null ptr"), return;);
#ifdef JSON_MEMORY_MANAGE
NodeHandler.remove(node);
@@ -79,11 +79,11 @@ MIR_CORE_DLL(void) json_delete(JSONNODE *node){
}
#ifdef JSON_MEMORY_MANAGE
- MIR_CORE_DLL(void) json_free_all(void){
+ LIBJSON_DLL(void) json_free_all(void) {
StringHandler.clear();
}
- MIR_CORE_DLL(void) json_delete_all(void){
+ LIBJSON_DLL(void) json_delete_all(void) {
NodeHandler.clear();
}
#endif
@@ -93,66 +93,66 @@ JSONNode JSONNode::parse(const json_char *str)
return JSONWorker::parse(str);
}
-MIR_CORE_DLL(JSONNODE*) json_parse(const json_char *json){
+LIBJSON_DLL(JSONNode*) json_parse(const json_char *json) {
JSON_ASSERT_SAFE(json, JSON_TEXT("null ptr to json_parse"), return 0;);
try {
//use this constructor to simply copy reference instead of copying the temp
return MANAGER_INSERT(JSONNode::newJSONNode_Shallow(JSONWorker::parse(json)));
- } catch (std::invalid_argument){}
+ } catch (std::invalid_argument) {}
return 0;
}
-MIR_CORE_DLL(TCHAR*) json_strip_white_space(const json_char *json){
+LIBJSON_DLL(TCHAR*) json_strip_white_space(const json_char *json) {
JSON_ASSERT_SAFE(json, JSON_TEXT("null ptr to json_strip_white_space"), return 0;);
return toCString(JSONWorker::RemoveWhiteSpaceAndComments(json));
}
#ifdef JSON_VALIDATE
- MIR_CORE_DLL(JSONNODE*) json_validate(const json_char *json){
+ LIBJSON_DLL(JSONNode*) json_validate(const json_char *json) {
JSON_ASSERT_SAFE(json, JSON_TEXT("null ptr to json_validate"), return 0;);
try {
//use this constructor to simply copy reference instead of copying the temp
return MANAGER_INSERT(JSONNode::newJSONNode_Shallow(JSONWorker::validate(json)));
- } catch (std::invalid_argument){}
+ } catch (std::invalid_argument) {}
return 0;
}
#endif
#if defined JSON_DEBUG && !defined JSON_STDERROR
//When libjson errors, a callback allows the user to know what went wrong
- MIR_CORE_DLL(void) json_register_debug_callback(json_error_callback_t callback){
+ LIBJSON_DLL(void) json_register_debug_callback(json_error_callback_t callback) {
JSONDebug::register_callback(callback);
}
#endif
#ifdef JSON_MUTEX_CALLBACKS
#ifdef JSON_MUTEX_MANAGE
- MIR_CORE_DLL(void) json_register_mutex_callbacks(json_mutex_callback_t lock, json_mutex_callback_t unlock, json_mutex_callback_t destroy, void * manager_lock){
+ LIBJSON_DLL(void) json_register_mutex_callbacks(json_mutex_callback_t lock, json_mutex_callback_t unlock, json_mutex_callback_t destroy, void * manager_lock) {
JSONNode::register_mutex_callbacks(lock, unlock, manager_lock);
JSONNode::register_mutex_destructor(destroy);
}
#else
- MIR_CORE_DLL(void) json_register_mutex_callbacks(json_mutex_callback_t lock, json_mutex_callback_t unlock, void * manager_lock){
+ LIBJSON_DLL(void) json_register_mutex_callbacks(json_mutex_callback_t lock, json_mutex_callback_t unlock, void * manager_lock) {
JSONNode::register_mutex_callbacks(lock, unlock, manager_lock);
}
#endif
- MIR_CORE_DLL(void) json_set_global_mutex(void * mutex){
+ LIBJSON_DLL(void) json_set_global_mutex(void * mutex) {
JSONNode::set_global_mutex(mutex);
}
- MIR_CORE_DLL(void) json_set_mutex(JSONNODE *node, void * mutex){
+ LIBJSON_DLL(void) json_set_mutex(JSONNode *node, void * mutex) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_set_mutex"), return;);
((JSONNode*)node) -> set_mutex(mutex);
}
- MIR_CORE_DLL(void) json_lock(JSONNODE *node, int threadid){
+ LIBJSON_DLL(void) json_lock(JSONNode *node, int threadid) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_lock"), return;);
((JSONNode*)node) -> lock(threadid);
}
- MIR_CORE_DLL(void) json_unlock(JSONNODE *node, int threadid){
+ LIBJSON_DLL(void) json_unlock(JSONNode *node, int threadid) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_unlock"), return;);
((JSONNode*)node) -> unlock(threadid);
}
@@ -162,7 +162,7 @@ MIR_CORE_DLL(TCHAR*) json_strip_white_space(const json_char *json){
stuff that's in class JSONNode
*/
//ctors
-MIR_CORE_DLL(JSONNODE*) json_new_a(const json_char *name, const json_char *value){
+LIBJSON_DLL(JSONNode*) json_new_a(const json_char *name, const json_char *value) {
JSON_ASSERT_SAFE(name, JSON_TEXT("null name to json_new_a"), name = EMPTY_CSTRING;);
JSON_ASSERT_SAFE(value, JSON_TEXT("null value to json_new_a"), value = EMPTY_CSTRING;);
#ifdef JSON_MEMORY_CALLBACKS
@@ -172,7 +172,7 @@ MIR_CORE_DLL(JSONNODE*) json_new_a(const json_char *name, const json_char *value
#endif
}
-MIR_CORE_DLL(JSONNODE*) json_new_i(const json_char *name, long value){
+LIBJSON_DLL(JSONNode*) json_new_i(const json_char *name, long value) {
JSON_ASSERT_SAFE(name, JSON_TEXT("null name to json_new_i"), name = EMPTY_CSTRING;);
#ifdef JSON_MEMORY_CALLBACKS
return MANAGER_INSERT(new(json_malloc<JSONNode>(1)) JSONNode(name, value));
@@ -181,7 +181,7 @@ MIR_CORE_DLL(JSONNODE*) json_new_i(const json_char *name, long value){
#endif
}
-MIR_CORE_DLL(JSONNODE*) json_new_f(const json_char *name, double value){
+LIBJSON_DLL(JSONNode*) json_new_f(const json_char *name, double value) {
JSON_ASSERT_SAFE(name, JSON_TEXT("null name to json_new_f"), name = EMPTY_CSTRING;);
#ifdef JSON_MEMORY_CALLBACKS
return MANAGER_INSERT(new(json_malloc<JSONNode>(1)) JSONNode(name, value));
@@ -190,7 +190,7 @@ MIR_CORE_DLL(JSONNODE*) json_new_f(const json_char *name, double value){
#endif
}
-MIR_CORE_DLL(JSONNODE*) json_new_b(const json_char *name, int value){
+LIBJSON_DLL(JSONNode*) json_new_b(const json_char *name, int value) {
JSON_ASSERT_SAFE(name, JSON_TEXT("null name to json_new_b"), name = EMPTY_CSTRING;);
#ifdef JSON_MEMORY_CALLBACKS
return MANAGER_INSERT(new(json_malloc<JSONNode>(1)) JSONNode(name, value != 0 ));
@@ -199,7 +199,7 @@ MIR_CORE_DLL(JSONNODE*) json_new_b(const json_char *name, int value){
#endif
}
-MIR_CORE_DLL(JSONNODE*) json_new(char type){
+LIBJSON_DLL(JSONNode*) json_new(char type) {
#ifdef JSON_MEMORY_CALLBACKS
return MANAGER_INSERT(new(json_malloc<JSONNode>(1)) JSONNode(type));
#else
@@ -207,7 +207,7 @@ MIR_CORE_DLL(JSONNODE*) json_new(char type){
#endif
}
-MIR_CORE_DLL(JSONNODE*) json_copy(const JSONNODE *orig){
+LIBJSON_DLL(JSONNode*) json_copy(const JSONNode *orig) {
JSON_ASSERT_SAFE(orig, JSON_TEXT("null orig to json_copy"), return 0;);
#ifdef JSON_MEMORY_CALLBACKS
return MANAGER_INSERT(new(json_malloc<JSONNode>(1)) JSONNode(*((JSONNode*)orig)));
@@ -216,105 +216,100 @@ MIR_CORE_DLL(JSONNODE*) json_copy(const JSONNODE *orig){
#endif
}
-MIR_CORE_DLL(JSONNODE*) json_duplicate(const JSONNODE *orig){
+LIBJSON_DLL(JSONNode*) json_duplicate(const JSONNode *orig) {
JSON_ASSERT_SAFE(orig, JSON_TEXT("null orig to json_duplicate"), return 0;);
return MANAGER_INSERT(JSONNode::newJSONNode_Shallow(((JSONNode*)orig) -> duplicate()));
}
//assignment
-MIR_CORE_DLL(void) json_set_a(JSONNODE *node, const json_char *value){
+LIBJSON_DLL(void) json_set_a(JSONNode *node, const json_char *value) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_set_a"), return;);
JSON_ASSERT_SAFE(value, JSON_TEXT("null value to json_set_a"), value = EMPTY_CSTRING;);
*((JSONNode*)node) = json_string(value);
}
-MIR_CORE_DLL(void) json_set_i(JSONNODE *node, long value){
+LIBJSON_DLL(void) json_set_i(JSONNode *node, long value) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_set_i"), return;);
*((JSONNode*)node) = value;
}
-MIR_CORE_DLL(void) json_set_f(JSONNODE *node, double value){
+LIBJSON_DLL(void) json_set_f(JSONNode *node, double value) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_set_f"), return;);
*((JSONNode*)node) = value;
}
-MIR_CORE_DLL(void) json_set_b(JSONNODE *node, int value){
+LIBJSON_DLL(void) json_set_b(JSONNode *node, int value) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_set_b"), return;);
*((JSONNode*)node) = value != 0;
}
-MIR_CORE_DLL(void) json_set_n(JSONNODE *node, const JSONNODE *orig){
+LIBJSON_DLL(void) json_set_n(JSONNode *node, const JSONNode *orig) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_set_n"), return;);
JSON_ASSERT_SAFE(orig, JSON_TEXT("null node to json_set_n"), return;);
*((JSONNode*)node) = *((JSONNode*)orig);
}
//inspectors
-MIR_CORE_DLL(char) json_type(const JSONNODE *node){
+LIBJSON_DLL(char) json_type(const JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_type"), return JSON_NULL;);
return ((JSONNode*)node) -> type();
}
-MIR_CORE_DLL(json_index_t) json_size(const JSONNODE *node){
+LIBJSON_DLL(json_index_t) json_size(const JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_size"), return 0;);
return ((JSONNode*)node) -> size();
}
-MIR_CORE_DLL(int) json_empty(const JSONNODE *node){
+LIBJSON_DLL(int) json_empty(const JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_empty"), return true;);
return (int)(((JSONNode*)node) -> empty());
}
-MIR_CORE_DLL(const json_char*) json_name(const JSONNODE *node){
+LIBJSON_DLL(const json_char*) json_name(const JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_name"), return EMPTY_CSTRING;);
return ((JSONNode*)node) -> name();
}
#ifdef JSON_COMMENTS
- MIR_CORE_DLL(json_char*) json_get_comment(const JSONNODE *node){
+ LIBJSON_DLL(json_char*) json_get_comment(const JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_get_comment"), return toCString(EMPTY_CSTRING););
return toCString(((JSONNode*)node) -> get_comment());
}
#endif
-MIR_CORE_DLL(TCHAR*) json_as_string(const JSONNODE *node){
+LIBJSON_DLL(TCHAR*) json_as_string(const JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_as_string"), return toCString(EMPTY_CSTRING););
return toCString(((JSONNode*)node) -> as_string());
}
-MIR_C_CORE_DLL(std::string) json_as_pstring(const JSONNODE *node){
- JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_as_string"), return EMPTY_CSTRING;);
- return ((JSONNode*)node) -> as_string();
-}
-
-MIR_CORE_DLL(long) json_as_int(const JSONNODE *node){
+LIBJSON_DLL(long) json_as_int(const JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_as_int"), return 0;);
return ((JSONNode*)node) -> as_int();
}
-MIR_CORE_DLL(double) json_as_float(const JSONNODE *node){
+LIBJSON_DLL(double) json_as_float(const JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_as_float"), return 0.0;);
return ((JSONNode*)node) -> as_float();
}
-MIR_CORE_DLL(int) json_as_bool(const JSONNODE *node){
+LIBJSON_DLL(int) json_as_bool(const JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_as_bool"), return false;);
return (int)(((JSONNode*)node) -> as_bool());
}
-MIR_CORE_DLL(JSONNODE*) json_as_node(const JSONNODE *node){
+LIBJSON_DLL(JSONNode*) json_as_node(const JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_as_node"), return 0;);
return MANAGER_INSERT(JSONNode::newJSONNode_Shallow(((JSONNode*)node) -> as_node()));
}
-MIR_CORE_DLL(JSONNODE*) json_as_array(const JSONNODE *node){
+LIBJSON_DLL(JSONNode*) json_as_array(const JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_as_array"), return 0;);
return MANAGER_INSERT(JSONNode::newJSONNode_Shallow(((JSONNode*)node) -> as_array()));
}
#ifdef JSON_BINARY
- void * json_as_binary(const JSONNODE *node, unsigned long * size){
- JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_as_binary"), if (size){*size = 0;} return 0;);
+ void * json_as_binary(const JSONNode *node, unsigned long * size) {
+ JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_as_binary"), if (size) {*size = 0;} return 0;);
const std::string result = ((JSONNode*)node) -> as_binary();
const size_t len = result.length();
if (size) *size = len;
@@ -330,87 +325,87 @@ MIR_CORE_DLL(JSONNODE*) json_as_array(const JSONNODE *node){
#endif
#ifdef JSON_WRITER
- MIR_CORE_DLL(TCHAR*) json_write(const JSONNODE *node){
+ LIBJSON_DLL(TCHAR*) json_write(const JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_write"), return toCString(EMPTY_CSTRING););
return toCString(((JSONNode*)node) -> write());
}
- MIR_CORE_DLL(TCHAR*) json_write_formatted(const JSONNODE *node){
+ LIBJSON_DLL(TCHAR*) json_write_formatted(const JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_write_formatted"), return toCString(EMPTY_CSTRING););
return toCString(((JSONNode*)node) -> write_formatted());
}
#endif
//modifiers
-MIR_CORE_DLL(void) json_set_name(JSONNODE *node, const json_char *name){
+LIBJSON_DLL(void) json_set_name(JSONNode *node, const json_char *name) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_set_name"), return;);
JSON_ASSERT_SAFE(name, JSON_TEXT("null name to json_set_name"), name = EMPTY_CSTRING;);
((JSONNode*)node) -> set_name(name);
}
#ifdef JSON_COMMENTS
- MIR_CORE_DLL(void) json_set_comment(JSONNODE *node, const json_char * comment){
+ LIBJSON_DLL(void) json_set_comment(JSONNode *node, const json_char * comment) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_set_comment"), return;);
JSON_ASSERT_SAFE(comment, JSON_TEXT("null name to json_set_comment"), comment = EMPTY_CSTRING;);
((JSONNode*)node) -> set_comment(comment);
}
#endif
-MIR_CORE_DLL(void) json_clear(JSONNODE *node){
+LIBJSON_DLL(void) json_clear(JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_clear"), return;);
((JSONNode*)node) -> clear();
}
-MIR_CORE_DLL(void) json_nullify(JSONNODE *node){
+LIBJSON_DLL(void) json_nullify(JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_nullify"), return;);
((JSONNode*)node) -> nullify();
}
-MIR_CORE_DLL(void) json_swap(JSONNODE *node, JSONNODE *node2){
+LIBJSON_DLL(void) json_swap(JSONNode *node, JSONNode *node2) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_swap"), return;);
JSON_ASSERT_SAFE(node2, JSON_TEXT("null node to json_swap"), return;);
((JSONNode*)node) -> swap(*(JSONNode*)node2);
}
-MIR_CORE_DLL(void) json_merge(JSONNODE *node, JSONNODE *node2){
+LIBJSON_DLL(void) json_merge(JSONNode *node, JSONNode *node2) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_merge"), return;);
JSON_ASSERT_SAFE(node2, JSON_TEXT("null node to json_merge"), return;);
((JSONNode*)node) -> merge(*(JSONNode*)node2);
}
#ifndef JSON_PREPARSE
- MIR_CORE_DLL(void) json_preparse(JSONNODE *node){
+ LIBJSON_DLL(void) json_preparse(JSONNode *node) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_preparse"), return;);
((JSONNode*)node) -> preparse();
}
#endif
#ifdef JSON_BINARY
- MIR_CORE_DLL(void) json_set_binary(JSONNODE *node, const void * data, unsigned long length){
+ LIBJSON_DLL(void) json_set_binary(JSONNode *node, const void * data, unsigned long length) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_swap"), return;);
JSON_ASSERT_SAFE(data, JSON_TEXT("null data to json_set_binary"), *((JSONNode*)node) = EMPTY_CSTRING; return;);
((JSONNode*)node) -> set_binary((unsigned char *)data, length);
}
#endif
-MIR_CORE_DLL(void) json_cast(JSONNODE *node, char type){
+LIBJSON_DLL(void) json_cast(JSONNode *node, char type) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_cast"), return;);
((JSONNode*)node) -> cast(type);
}
//children access
-MIR_CORE_DLL(void) json_reserve(JSONNODE *node, json_index_t siz){
+LIBJSON_DLL(void) json_reserve(JSONNode *node, json_index_t siz) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_reserve"), return;);
((JSONNode*)node) -> reserve(siz);
}
-MIR_CORE_DLL(JSONNODE*) json_at(JSONNODE *node, json_index_t pos){
+LIBJSON_DLL(JSONNode*) json_at(JSONNode *node, json_index_t pos) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_at"), return 0;);
JSONNode &res = ((JSONNode*)node) -> at(pos);
return (&res == &nullNode) ? NULL : &res;
}
-MIR_CORE_DLL(JSONNODE*) json_get(JSONNODE *node, const json_char *name){
+LIBJSON_DLL(JSONNode*) json_get(JSONNode *node, const json_char *name) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_get"), return 0;);
JSON_ASSERT_SAFE(name, JSON_TEXT("null node to json_get. Did you mean to use json_at?"), return 0;);
JSONNode &res = ((JSONNode*)node)->at(name);
@@ -418,23 +413,23 @@ MIR_CORE_DLL(JSONNODE*) json_get(JSONNODE *node, const json_char *name){
}
#ifdef JSON_CASE_INSENSITIVE_FUNCTIONS
- MIR_CORE_DLL(JSONNODE*) json_get_nocase(JSONNODE *node, const json_char *name){
+ LIBJSON_DLL(JSONNode*) json_get_nocase(JSONNode *node, const json_char *name) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_at_nocase"), return 0;);
JSON_ASSERT_SAFE(name, JSON_TEXT("null name to json_at_nocase"), return 0;);
try {
return &((JSONNode*)node) -> at_nocase(name);
- } catch (std::out_of_range){}
+ } catch (std::out_of_range) {}
return 0;
}
- MIR_CORE_DLL(JSONNODE*) json_pop_back_nocase(JSONNODE *node, const json_char *name){
+ LIBJSON_DLL(JSONNode*) json_pop_back_nocase(JSONNode *node, const json_char *name) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_pop_back_nocase"), return 0;);
JSON_ASSERT_SAFE(name, JSON_TEXT("null name to json_pop_back_nocase"), return 0;);
return MANAGER_INSERT(((JSONNode*)node) -> pop_back_nocase(name));
}
#endif
-MIR_CORE_DLL(void) json_push_back(JSONNODE *node, JSONNODE *node2){
+LIBJSON_DLL(void) json_push_back(JSONNode *node, JSONNode *node2) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_push_back"), return;);
JSON_ASSERT_SAFE(node2, JSON_TEXT("null node2 to json_push_back"), return;);
#ifdef JSON_MEMORY_MANAGE
@@ -443,19 +438,19 @@ MIR_CORE_DLL(void) json_push_back(JSONNODE *node, JSONNODE *node2){
((JSONNode*)node) -> push_back(*(JSONNode*)node2);
}
-MIR_CORE_DLL(JSONNODE*) json_pop_back_at(JSONNODE *node, json_index_t pos){
+LIBJSON_DLL(JSONNode*) json_pop_back_at(JSONNode *node, json_index_t pos) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_pop_back_i"), return 0;);
return MANAGER_INSERT(&((JSONNode*)node) -> pop_back(pos));
}
-MIR_CORE_DLL(JSONNODE*) json_pop_back(JSONNODE *node, const json_char *name){
+LIBJSON_DLL(JSONNode*) json_pop_back(JSONNode *node, const json_char *name) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_pop_back"), return 0;);
JSON_ASSERT_SAFE(name, JSON_TEXT("null name to json_pop_back. Did you mean to use json_pop_back_at?"), return 0;);
return MANAGER_INSERT(&((JSONNode*)node) -> pop_back(name));
}
//comparison
-MIR_CORE_DLL(int) json_equal(JSONNODE *node, JSONNODE *node2){
+LIBJSON_DLL(int) json_equal(JSONNode *node, JSONNode *node2) {
JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_equal"), return false;);
JSON_ASSERT_SAFE(node2, JSON_TEXT("null node2 to json_equal"), return false;);
return (int)(*((JSONNode*)node) == *((JSONNode*)node2));
diff --git a/libs/libjson/src/libjson.def b/libs/libjson/src/libjson.def
new file mode 100644
index 0000000000..27f3b7eb4c
--- /dev/null
+++ b/libs/libjson/src/libjson.def
@@ -0,0 +1,194 @@
+LIBRARY libjson
+
+EXPORTS
+??0JSONNode@@AAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1 NONAME
+??0JSONNode@@AAE@PAVinternalJSONNode@@@Z @2 NONAME
+??0JSONNode@@AAE@_NAAV0@@Z @3 NONAME
+??0JSONNode@@QAE@ABV0@@Z @4 NONAME
+??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z @5 NONAME
+??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@D@Z @6 NONAME
+??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@E@Z @7 NONAME
+??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@F@Z @8 NONAME
+??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@G@Z @9 NONAME
+??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z @10 NONAME
+??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@I@Z @11 NONAME
+??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@J@Z @12 NONAME
+??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@K@Z @13 NONAME
+??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@M@Z @14 NONAME
+??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@N@Z @15 NONAME
+??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z @16 NONAME
+??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z @17 NONAME
+??0JSONNode@@QAE@D@Z @18 NONAME
+??1JSONNode@@QAE@XZ @19 NONAME
+??4JSONNode@@QAEAAV0@ABV0@@Z @20 NONAME
+??4JSONNode@@QAEAAV0@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @21 NONAME
+??4JSONNode@@QAEAAV0@D@Z @22 NONAME
+??4JSONNode@@QAEAAV0@E@Z @23 NONAME
+??4JSONNode@@QAEAAV0@F@Z @24 NONAME
+??4JSONNode@@QAEAAV0@G@Z @25 NONAME
+??4JSONNode@@QAEAAV0@H@Z @26 NONAME
+??4JSONNode@@QAEAAV0@I@Z @27 NONAME
+??4JSONNode@@QAEAAV0@J@Z @28 NONAME
+??4JSONNode@@QAEAAV0@K@Z @29 NONAME
+??4JSONNode@@QAEAAV0@M@Z @30 NONAME
+??4JSONNode@@QAEAAV0@N@Z @31 NONAME
+??4JSONNode@@QAEAAV0@PBD@Z @32 NONAME
+??4JSONNode@@QAEAAV0@_N@Z @33 NONAME
+??4JSONWorker@@QAEAAV0@ABV0@@Z @34 NONAME
+??8JSONNode@@QBE_NABV0@@Z @35 NONAME
+??8JSONNode@@QBE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @36 NONAME
+??8JSONNode@@QBE_ND@Z @37 NONAME
+??8JSONNode@@QBE_NE@Z @38 NONAME
+??8JSONNode@@QBE_NF@Z @39 NONAME
+??8JSONNode@@QBE_NG@Z @40 NONAME
+??8JSONNode@@QBE_NH@Z @41 NONAME
+??8JSONNode@@QBE_NI@Z @42 NONAME
+??8JSONNode@@QBE_NJ@Z @43 NONAME
+??8JSONNode@@QBE_NK@Z @44 NONAME
+??8JSONNode@@QBE_NM@Z @45 NONAME
+??8JSONNode@@QBE_NN@Z @46 NONAME
+??8JSONNode@@QBE_NPBD@Z @47 NONAME
+??8JSONNode@@QBE_N_N@Z @48 NONAME
+??9JSONNode@@QBE_NABV0@@Z @49 NONAME
+??9JSONNode@@QBE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @50 NONAME
+??9JSONNode@@QBE_ND@Z @51 NONAME
+??9JSONNode@@QBE_NE@Z @52 NONAME
+??9JSONNode@@QBE_NF@Z @53 NONAME
+??9JSONNode@@QBE_NG@Z @54 NONAME
+??9JSONNode@@QBE_NH@Z @55 NONAME
+??9JSONNode@@QBE_NI@Z @56 NONAME
+??9JSONNode@@QBE_NJ@Z @57 NONAME
+??9JSONNode@@QBE_NK@Z @58 NONAME
+??9JSONNode@@QBE_NM@Z @59 NONAME
+??9JSONNode@@QBE_NN@Z @60 NONAME
+??9JSONNode@@QBE_NPBD@Z @61 NONAME
+??9JSONNode@@QBE_N_N@Z @62 NONAME
+??AJSONNode@@QAEAAV0@I@Z @63 NONAME
+??AJSONNode@@QAEAAV0@PBD@Z @64 NONAME
+??AJSONNode@@QBEABV0@I@Z @65 NONAME
+??AJSONNode@@QBEABV0@PBD@Z @66 NONAME
+??BJSONNode@@QBE_NXZ @67 NONAME
+??_FJSONNode@@QAEXXZ @68 NONAME
+?DoArray@JSONWorker@@SAXPBVinternalJSONNode@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @69 NONAME
+?DoNode@JSONWorker@@SAXPBVinternalJSONNode@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @70 NONAME
+?FindNextRelevant@JSONWorker@@CAIDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@I@Z @71 NONAME
+?FixString@JSONWorker@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV23@AA_N@Z @72 NONAME
+?Hex@JSONWorker@@CADAAPBD@Z @73 NONAME
+?NewNode@JSONWorker@@CAXPBVinternalJSONNode@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@1_N@Z @74 NONAME
+?RemoveWhiteSpace@JSONWorker@@SAPADABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAD@Z @75 NONAME
+?RemoveWhiteSpaceAndComments@JSONWorker@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV23@@Z @76 NONAME
+?SpecialChar@JSONWorker@@CAXAAPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @77 NONAME
+?UTF8@JSONWorker@@CAEAAPBD@Z @78 NONAME
+?UTF8_2@JSONWorker@@CAPADAAPBD@Z @79 NONAME
+?UnfixString@JSONWorker@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV23@_N@Z @80 NONAME
+?as_array@JSONNode@@QBE?AV1@XZ @81 NONAME
+?as_bool@JSONNode@@QBE_NXZ @82 NONAME
+?as_float@JSONNode@@QBENXZ @83 NONAME
+?as_int@JSONNode@@QBEJXZ @84 NONAME
+?as_mstring@JSONNode@@QBE?AV?$CMStringT@_WV?$ChTraitsCRT@_W@@@@XZ @85 NONAME
+?as_node@JSONNode@@QBE?AV1@XZ @86 NONAME
+?as_string@JSONNode@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ @87 NONAME
+?at@JSONNode@@QAEAAV1@I@Z @88 NONAME
+?at@JSONNode@@QAEAAV1@PBD@Z @89 NONAME
+?at@JSONNode@@QBEABV1@I@Z @90 NONAME
+?at@JSONNode@@QBEABV1@PBD@Z @91 NONAME
+?begin@JSONNode@@QAE?AUiterator@1@XZ @92 NONAME
+?begin@JSONNode@@QBE?AUconst_iterator@1@XZ @93 NONAME
+?cast@JSONNode@@QAEXD@Z @94 NONAME
+?clear@JSONNode@@QAEXXZ @95 NONAME
+?decRef@JSONNode@@AAEXXZ @96 NONAME
+?deleteJSONNode@JSONNode@@SAXPAV1@@Z @97 NONAME
+?duplicate@JSONNode@@QBE?AV1@XZ @98 NONAME
+?empty@JSONNode@@QBE_NXZ @99 NONAME
+?end@JSONNode@@QAE?AUiterator@1@XZ @100 NONAME
+?end@JSONNode@@QBE?AUconst_iterator@1@XZ @101 NONAME
+?erase@JSONNode@@QAE?AUiterator@1@U21@@Z @102 NONAME
+?erase@JSONNode@@QAE?AUiterator@1@U21@ABU21@@Z @103 NONAME
+?erase@JSONNode@@QAE?AUreverse_iterator@1@U21@@Z @104 NONAME
+?erase@JSONNode@@QAE?AUreverse_iterator@1@U21@ABU21@@Z @105 NONAME
+?find@JSONNode@@QAE?AUiterator@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @106 NONAME
+?find@JSONNode@@QBE?AUconst_iterator@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @107 NONAME
+?insert@JSONNode@@QAE?AUiterator@1@U21@ABU21@1@Z @108 NONAME
+?insert@JSONNode@@QAE?AUiterator@1@U21@ABUconst_iterator@1@1@Z @109 NONAME
+?insert@JSONNode@@QAE?AUiterator@1@U21@ABUreverse_const_iterator@1@1@Z @110 NONAME
+?insert@JSONNode@@QAE?AUiterator@1@U21@ABUreverse_iterator@1@1@Z @111 NONAME
+?insert@JSONNode@@QAE?AUiterator@1@U21@ABV1@@Z @112 NONAME
+?insert@JSONNode@@QAE?AUreverse_iterator@1@U21@ABU21@1@Z @113 NONAME
+?insert@JSONNode@@QAE?AUreverse_iterator@1@U21@ABUconst_iterator@1@1@Z @114 NONAME
+?insert@JSONNode@@QAE?AUreverse_iterator@1@U21@ABUiterator@1@1@Z @115 NONAME
+?insert@JSONNode@@QAE?AUreverse_iterator@1@U21@ABUreverse_const_iterator@1@1@Z @116 NONAME
+?insert@JSONNode@@QAE?AUreverse_iterator@1@U21@ABV1@@Z @117 NONAME
+?insertFFF@JSONNode@@AAE?AUiterator@1@U21@QAPAV1@1@Z @118 NONAME
+?insertFRR@JSONNode@@AAE?AUiterator@1@U21@QAPAV1@1@Z @119 NONAME
+?insertRFF@JSONNode@@AAE?AUreverse_iterator@1@U21@QAPAV1@1@Z @120 NONAME
+?insertRRR@JSONNode@@AAE?AUreverse_iterator@1@U21@QAPAV1@1@Z @121 NONAME
+?isnull@JSONNode@@QBE_NXZ @122 NONAME
+?makeUniqueInternal@JSONNode@@AAEXXZ @123 NONAME
+?merge@JSONNode@@AAEXPAV1@@Z @124 NONAME
+?merge@JSONNode@@QAAXIZZ @125 NONAME
+?merge@JSONNode@@QAEXAAV1@@Z @126 NONAME
+?name@JSONNode@@QBEPBDXZ @127 NONAME
+?newJSONNode@JSONNode@@CAPAV1@ABV1@@Z @128 NONAME
+?newJSONNode@JSONNode@@CAPAV1@PAVinternalJSONNode@@@Z @129 NONAME
+?newJSONNode_Shallow@JSONNode@@SAPAV1@ABV1@@Z @130 NONAME
+?nullify@JSONNode@@QAEXXZ @131 NONAME
+?parse@JSONNode@@SA?AV1@PBD@Z @132 NONAME
+?parse@JSONWorker@@SA?AVJSONNode@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @133 NONAME
+?pop_back@JSONNode@@QAE?AV1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @134 NONAME
+?pop_back@JSONNode@@QAE?AV1@I@Z @135 NONAME
+?preparse@JSONNode@@QAEXXZ @136 NONAME
+?push_back@JSONNode@@QAEXABV1@@Z @137 NONAME
+?rbegin@JSONNode@@QAE?AUreverse_iterator@1@XZ @138 NONAME
+?rbegin@JSONNode@@QBE?AUreverse_const_iterator@1@XZ @139 NONAME
+?rend@JSONNode@@QAE?AUreverse_iterator@1@XZ @140 NONAME
+?rend@JSONNode@@QBE?AUreverse_const_iterator@1@XZ @141 NONAME
+?reserve@JSONNode@@QAEXI@Z @142 NONAME
+?set_name@JSONNode@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @143 NONAME
+?size@JSONNode@@QBEIXZ @144 NONAME
+?swap@JSONNode@@QAEXAAV1@@Z @145 NONAME
+?toUTF8@JSONWorker@@CA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@E@Z @146 NONAME
+?type@JSONNode@@QBEEXZ @147 NONAME
+?write@JSONNode@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ @148 NONAME
+?write_formatted@JSONNode@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ @149 NONAME
+json_as_array @150
+json_as_bool @151
+json_as_float @152
+json_as_int @153
+json_as_node @154
+json_as_string @155
+json_at @156
+json_cast @157
+json_clear @158
+json_copy @159
+json_delete @160
+json_duplicate @161
+json_empty @162
+json_equal @163
+json_free @164
+json_get @165
+json_merge @166
+json_name @167
+json_new @168
+json_new_a @169
+json_new_b @170
+json_new_f @171
+json_new_i @172
+json_nullify @173
+json_parse @174
+json_pop_back @175
+json_pop_back_at @176
+json_preparse @177
+json_push_back @178
+json_reserve @179
+json_set_a @180
+json_set_b @181
+json_set_f @182
+json_set_i @183
+json_set_n @184
+json_set_name @185
+json_size @186
+json_strip_white_space @187
+json_swap @188
+json_type @189
+json_write @190
+json_write_formatted @191
diff --git a/libs/libjson/src/libjson64.def b/libs/libjson/src/libjson64.def
new file mode 100644
index 0000000000..15137e18e0
--- /dev/null
+++ b/libs/libjson/src/libjson64.def
@@ -0,0 +1,194 @@
+LIBRARY libjson
+
+EXPORTS
+??0JSONNode@@AEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1 NONAME
+??0JSONNode@@AEAA@PEAVinternalJSONNode@@@Z @2 NONAME
+??0JSONNode@@AEAA@_NAEAV0@@Z @3 NONAME
+??0JSONNode@@QEAA@AEBV0@@Z @4 NONAME
+??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z @5 NONAME
+??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@D@Z @6 NONAME
+??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@E@Z @7 NONAME
+??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@F@Z @8 NONAME
+??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@G@Z @9 NONAME
+??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z @10 NONAME
+??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@I@Z @11 NONAME
+??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@J@Z @12 NONAME
+??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@K@Z @13 NONAME
+??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@M@Z @14 NONAME
+??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@N@Z @15 NONAME
+??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z @16 NONAME
+??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z @17 NONAME
+??0JSONNode@@QEAA@D@Z @18 NONAME
+??1JSONNode@@QEAA@XZ @19 NONAME
+??4JSONNode@@QEAAAEAV0@AEBV0@@Z @20 NONAME
+??4JSONNode@@QEAAAEAV0@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @21 NONAME
+??4JSONNode@@QEAAAEAV0@D@Z @22 NONAME
+??4JSONNode@@QEAAAEAV0@E@Z @23 NONAME
+??4JSONNode@@QEAAAEAV0@F@Z @24 NONAME
+??4JSONNode@@QEAAAEAV0@G@Z @25 NONAME
+??4JSONNode@@QEAAAEAV0@H@Z @26 NONAME
+??4JSONNode@@QEAAAEAV0@I@Z @27 NONAME
+??4JSONNode@@QEAAAEAV0@J@Z @28 NONAME
+??4JSONNode@@QEAAAEAV0@K@Z @29 NONAME
+??4JSONNode@@QEAAAEAV0@M@Z @30 NONAME
+??4JSONNode@@QEAAAEAV0@N@Z @31 NONAME
+??4JSONNode@@QEAAAEAV0@PEBD@Z @32 NONAME
+??4JSONNode@@QEAAAEAV0@_N@Z @33 NONAME
+??4JSONWorker@@QEAAAEAV0@AEBV0@@Z @34 NONAME
+??8JSONNode@@QEBA_NAEBV0@@Z @35 NONAME
+??8JSONNode@@QEBA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @36 NONAME
+??8JSONNode@@QEBA_ND@Z @37 NONAME
+??8JSONNode@@QEBA_NE@Z @38 NONAME
+??8JSONNode@@QEBA_NF@Z @39 NONAME
+??8JSONNode@@QEBA_NG@Z @40 NONAME
+??8JSONNode@@QEBA_NH@Z @41 NONAME
+??8JSONNode@@QEBA_NI@Z @42 NONAME
+??8JSONNode@@QEBA_NJ@Z @43 NONAME
+??8JSONNode@@QEBA_NK@Z @44 NONAME
+??8JSONNode@@QEBA_NM@Z @45 NONAME
+??8JSONNode@@QEBA_NN@Z @46 NONAME
+??8JSONNode@@QEBA_NPEBD@Z @47 NONAME
+??8JSONNode@@QEBA_N_N@Z @48 NONAME
+??9JSONNode@@QEBA_NAEBV0@@Z @49 NONAME
+??9JSONNode@@QEBA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @50 NONAME
+??9JSONNode@@QEBA_ND@Z @51 NONAME
+??9JSONNode@@QEBA_NE@Z @52 NONAME
+??9JSONNode@@QEBA_NF@Z @53 NONAME
+??9JSONNode@@QEBA_NG@Z @54 NONAME
+??9JSONNode@@QEBA_NH@Z @55 NONAME
+??9JSONNode@@QEBA_NI@Z @56 NONAME
+??9JSONNode@@QEBA_NJ@Z @57 NONAME
+??9JSONNode@@QEBA_NK@Z @58 NONAME
+??9JSONNode@@QEBA_NM@Z @59 NONAME
+??9JSONNode@@QEBA_NN@Z @60 NONAME
+??9JSONNode@@QEBA_NPEBD@Z @61 NONAME
+??9JSONNode@@QEBA_N_N@Z @62 NONAME
+??AJSONNode@@QEAAAEAV0@PEBD@Z @63 NONAME
+??AJSONNode@@QEAAAEAV0@_K@Z @64 NONAME
+??AJSONNode@@QEBAAEBV0@PEBD@Z @65 NONAME
+??AJSONNode@@QEBAAEBV0@_K@Z @66 NONAME
+??BJSONNode@@QEBA_NXZ @67 NONAME
+??_FJSONNode@@QEAAXXZ @68 NONAME
+?DoArray@JSONWorker@@SAXPEBVinternalJSONNode@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @69 NONAME
+?DoNode@JSONWorker@@SAXPEBVinternalJSONNode@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @70 NONAME
+?FindNextRelevant@JSONWorker@@CA_KDAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_K@Z @71 NONAME
+?FixString@JSONWorker@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV23@AEA_N@Z @72 NONAME
+?Hex@JSONWorker@@CADAEAPEBD@Z @73 NONAME
+?NewNode@JSONWorker@@CAXPEBVinternalJSONNode@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@1_N@Z @74 NONAME
+?RemoveWhiteSpace@JSONWorker@@SAPEADAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAD@Z @75 NONAME
+?RemoveWhiteSpaceAndComments@JSONWorker@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV23@@Z @76 NONAME
+?SpecialChar@JSONWorker@@CAXAEAPEBDAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @77 NONAME
+?UTF8@JSONWorker@@CAEAEAPEBD@Z @78 NONAME
+?UTF8_2@JSONWorker@@CAPEADAEAPEBD@Z @79 NONAME
+?UnfixString@JSONWorker@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV23@_N@Z @80 NONAME
+?as_array@JSONNode@@QEBA?AV1@XZ @81 NONAME
+?as_bool@JSONNode@@QEBA_NXZ @82 NONAME
+?as_float@JSONNode@@QEBANXZ @83 NONAME
+?as_int@JSONNode@@QEBAJXZ @84 NONAME
+?as_mstring@JSONNode@@QEBA?AV?$CMStringT@_WV?$ChTraitsCRT@_W@@@@XZ @85 NONAME
+?as_node@JSONNode@@QEBA?AV1@XZ @86 NONAME
+?as_string@JSONNode@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ @87 NONAME
+?at@JSONNode@@QEAAAEAV1@PEBD@Z @88 NONAME
+?at@JSONNode@@QEAAAEAV1@_K@Z @89 NONAME
+?at@JSONNode@@QEBAAEBV1@PEBD@Z @90 NONAME
+?at@JSONNode@@QEBAAEBV1@_K@Z @91 NONAME
+?begin@JSONNode@@QEAA?AUiterator@1@XZ @92 NONAME
+?begin@JSONNode@@QEBA?AUconst_iterator@1@XZ @93 NONAME
+?cast@JSONNode@@QEAAXD@Z @94 NONAME
+?clear@JSONNode@@QEAAXXZ @95 NONAME
+?decRef@JSONNode@@AEAAXXZ @96 NONAME
+?deleteJSONNode@JSONNode@@SAXPEAV1@@Z @97 NONAME
+?duplicate@JSONNode@@QEBA?AV1@XZ @98 NONAME
+?empty@JSONNode@@QEBA_NXZ @99 NONAME
+?end@JSONNode@@QEAA?AUiterator@1@XZ @100 NONAME
+?end@JSONNode@@QEBA?AUconst_iterator@1@XZ @101 NONAME
+?erase@JSONNode@@QEAA?AUiterator@1@U21@@Z @102 NONAME
+?erase@JSONNode@@QEAA?AUiterator@1@U21@AEBU21@@Z @103 NONAME
+?erase@JSONNode@@QEAA?AUreverse_iterator@1@U21@@Z @104 NONAME
+?erase@JSONNode@@QEAA?AUreverse_iterator@1@U21@AEBU21@@Z @105 NONAME
+?find@JSONNode@@QEAA?AUiterator@1@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @106 NONAME
+?find@JSONNode@@QEBA?AUconst_iterator@1@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @107 NONAME
+?insert@JSONNode@@QEAA?AUiterator@1@U21@AEBU21@1@Z @108 NONAME
+?insert@JSONNode@@QEAA?AUiterator@1@U21@AEBUconst_iterator@1@1@Z @109 NONAME
+?insert@JSONNode@@QEAA?AUiterator@1@U21@AEBUreverse_const_iterator@1@1@Z @110 NONAME
+?insert@JSONNode@@QEAA?AUiterator@1@U21@AEBUreverse_iterator@1@1@Z @111 NONAME
+?insert@JSONNode@@QEAA?AUiterator@1@U21@AEBV1@@Z @112 NONAME
+?insert@JSONNode@@QEAA?AUreverse_iterator@1@U21@AEBU21@1@Z @113 NONAME
+?insert@JSONNode@@QEAA?AUreverse_iterator@1@U21@AEBUconst_iterator@1@1@Z @114 NONAME
+?insert@JSONNode@@QEAA?AUreverse_iterator@1@U21@AEBUiterator@1@1@Z @115 NONAME
+?insert@JSONNode@@QEAA?AUreverse_iterator@1@U21@AEBUreverse_const_iterator@1@1@Z @116 NONAME
+?insert@JSONNode@@QEAA?AUreverse_iterator@1@U21@AEBV1@@Z @117 NONAME
+?insertFFF@JSONNode@@AEAA?AUiterator@1@U21@QEAPEAV1@1@Z @118 NONAME
+?insertFRR@JSONNode@@AEAA?AUiterator@1@U21@QEAPEAV1@1@Z @119 NONAME
+?insertRFF@JSONNode@@AEAA?AUreverse_iterator@1@U21@QEAPEAV1@1@Z @120 NONAME
+?insertRRR@JSONNode@@AEAA?AUreverse_iterator@1@U21@QEAPEAV1@1@Z @121 NONAME
+?isnull@JSONNode@@QEBA_NXZ @122 NONAME
+?makeUniqueInternal@JSONNode@@AEAAXXZ @123 NONAME
+?merge@JSONNode@@AEAAXPEAV1@@Z @124 NONAME
+?merge@JSONNode@@QEAAXAEAV1@@Z @125 NONAME
+?merge@JSONNode@@QEAAXIZZ @126 NONAME
+?name@JSONNode@@QEBAPEBDXZ @127 NONAME
+?newJSONNode@JSONNode@@CAPEAV1@AEBV1@@Z @128 NONAME
+?newJSONNode@JSONNode@@CAPEAV1@PEAVinternalJSONNode@@@Z @129 NONAME
+?newJSONNode_Shallow@JSONNode@@SAPEAV1@AEBV1@@Z @130 NONAME
+?nullify@JSONNode@@QEAAXXZ @131 NONAME
+?parse@JSONNode@@SA?AV1@PEBD@Z @132 NONAME
+?parse@JSONWorker@@SA?AVJSONNode@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @133 NONAME
+?pop_back@JSONNode@@QEAA?AV1@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @134 NONAME
+?pop_back@JSONNode@@QEAA?AV1@_K@Z @135 NONAME
+?preparse@JSONNode@@QEAAXXZ @136 NONAME
+?push_back@JSONNode@@QEAAXAEBV1@@Z @137 NONAME
+?rbegin@JSONNode@@QEAA?AUreverse_iterator@1@XZ @138 NONAME
+?rbegin@JSONNode@@QEBA?AUreverse_const_iterator@1@XZ @139 NONAME
+?rend@JSONNode@@QEAA?AUreverse_iterator@1@XZ @140 NONAME
+?rend@JSONNode@@QEBA?AUreverse_const_iterator@1@XZ @141 NONAME
+?reserve@JSONNode@@QEAAX_K@Z @142 NONAME
+?set_name@JSONNode@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @143 NONAME
+?size@JSONNode@@QEBA_KXZ @144 NONAME
+?swap@JSONNode@@QEAAXAEAV1@@Z @145 NONAME
+?toUTF8@JSONWorker@@CA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@E@Z @146 NONAME
+?type@JSONNode@@QEBAEXZ @147 NONAME
+?write@JSONNode@@QEAA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ @148 NONAME
+?write_formatted@JSONNode@@QEAA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ @149 NONAME
+json_as_array @150
+json_as_bool @151
+json_as_float @152
+json_as_int @153
+json_as_node @154
+json_as_string @155
+json_at @156
+json_cast @157
+json_clear @158
+json_copy @159
+json_delete @160
+json_duplicate @161
+json_empty @162
+json_equal @163
+json_free @164
+json_get @165
+json_merge @166
+json_name @167
+json_new @168
+json_new_a @169
+json_new_b @170
+json_new_f @171
+json_new_i @172
+json_nullify @173
+json_parse @174
+json_pop_back @175
+json_pop_back_at @176
+json_preparse @177
+json_push_back @178
+json_reserve @179
+json_set_a @180
+json_set_b @181
+json_set_f @182
+json_set_i @183
+json_set_n @184
+json_set_name @185
+json_size @186
+json_strip_white_space @187
+json_swap @188
+json_type @189
+json_write @190
+json_write_formatted @191
diff --git a/libs/libjson/src/stdafx.cxx b/libs/libjson/src/stdafx.cxx
new file mode 100644
index 0000000000..5d3cae4e8e
--- /dev/null
+++ b/libs/libjson/src/stdafx.cxx
@@ -0,0 +1,19 @@
+/*
+
+Copyright (C) 2012-15 Miranda NG team (http://miranda-ng.org)
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation version 2
+of the License.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "stdafx.h" \ No newline at end of file
diff --git a/libs/libjson/src/stdafx.h b/libs/libjson/src/stdafx.h
new file mode 100644
index 0000000000..173018faa6
--- /dev/null
+++ b/libs/libjson/src/stdafx.h
@@ -0,0 +1,41 @@
+/*
+
+Miranda NG: the free IM client for Microsoft* Windows*
+
+Copyright (ñ) 2012-15 Miranda NG project (http://miranda-ng.org),
+all portions of this codebase are copyrighted to the people
+listed in contributors.txt.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include <windows.h>
+
+#include <malloc.h>
+#include <stdio.h>
+#include <time.h>
+#include <stddef.h>
+#include <process.h>
+#include <io.h>
+#include <limits.h>
+#include <string.h>
+#include <locale.h>
+#include <direct.h>
+
+#include <m_system.h>
+#include <m_system_cpp.h>
+
+#include <m_string.h>
+#include <m_json.h>
diff --git a/make_core_def.cmd b/make_core_def.cmd
index c46a23aaf3..9f1c762f10 100644
--- a/make_core_def.cmd
+++ b/make_core_def.cmd
@@ -5,3 +5,7 @@ echo.
.\tools\makedef\makedef64.exe /IMAGE:bin12\debug64\mir_core.dll /DEF:src\mir_core\src\mir_core64.def
echo.
.\tools\makedef\makedef.exe /IMAGE:bin12\debug\libs\mir_app.dll /DEF:src\mir_app\src\mir_app.def
+echo.
+.\tools\makedef\makedef.exe /IMAGE:bin12\debug\libs\libjson.dll /DEF:libs\libjson\src\libjson.def
+echo.
+.\tools\makedef\makedef.exe /IMAGE:bin12\debug64\libs\libjson.dll /DEF:libs\libjson\src\libjson64.def
diff --git a/protocols/MSN/src/msn_skypeab.cpp b/protocols/MSN/src/msn_skypeab.cpp
index 5c7c40ab6a..22821e0de8 100644
--- a/protocols/MSN/src/msn_skypeab.cpp
+++ b/protocols/MSN/src/msn_skypeab.cpp
@@ -41,13 +41,10 @@ bool CMsnProto::APISkypeComRequest(NETLIBHTTPREQUEST *nlhr, NETLIBHTTPHEADER *he
return true;
}
-static TCHAR *get_json_str(JSONNODE *item, const char *pszValue)
+static TCHAR* get_json_str(JSONNode *item, const char *pszValue)
{
- JSONNODE *node;
- TCHAR *ret;
-
- if (node=json_get(item, pszValue)) {
- ret = json_as_string(node);
+ if (JSONNode *node = json_get(item, pszValue)) {
+ TCHAR *ret = json_as_string(node);
if (!mir_tstrcmp(ret, _T("null"))) {
mir_free(ret);
return NULL;
@@ -79,7 +76,7 @@ bool CMsnProto::MSN_SKYABRefreshClist(void)
JSONROOT root(nlhrReply->pData);
if (root == NULL) return false;
- JSONNODE *items = json_as_array(root), *item;
+ JSONNode *items = json_as_array(root), *item;
for (size_t i = 0; i < json_size(items); i++)
{
int lstId = LIST_FL;
@@ -134,7 +131,7 @@ bool CMsnProto::MSN_SKYABGetProfiles(const char *pszPOST)
JSONROOT root(nlhrReply->pData);
if (root == NULL) return false;
- JSONNODE *items = json_as_array(root), *item, *node;
+ JSONNode *items = json_as_array(root), *item, *node;
for (size_t i = 0; i < json_size(items); i++)
{
item = json_at(items, i);
@@ -186,7 +183,7 @@ bool CMsnProto::MSN_SKYABGetProfile(const char *wlid)
hHttpsConnection = nlhrReply->nlc;
if (nlhrReply->resultCode == 200 && nlhrReply->pData) {
JSONROOT item(nlhrReply->pData);
- JSONNODE *node;
+ JSONNode *node;
if (item == NULL) return false;
ptrA skypename(mir_t2a(ptrT(json_as_string(json_get(item, "username")))));
@@ -215,7 +212,7 @@ bool CMsnProto::MSN_SKYABGetProfile(const char *wlid)
if (value=get_json_str(item, "about")) setTString(hContact, "About", value);
if ((node = json_get(item, "emails")) && !json_empty(node))
{
- JSONNODE *items = json_as_array(node), *item;
+ JSONNode *items = json_as_array(node), *item;
char szName[16];
for (size_t i = 0; i < min(json_size(items), 3); i++)
{
@@ -382,12 +379,12 @@ bool CMsnProto::MSN_SKYABSearch(const char *keyWord, HANDLE hSearch)
return false;
}
- JSONNODE *items = json_as_array(root);
+ JSONNode *items = json_as_array(root);
for (size_t i = 0; i < json_size(items); i++)
{
- JSONNODE *item = json_at(items, i);
- JSONNODE *ContactCards = json_get(item, "ContactCards");
- JSONNODE *Skype = json_get(ContactCards, "Skype");
+ JSONNode *item = json_at(items, i);
+ JSONNode *ContactCards = json_get(item, "ContactCards");
+ JSONNode *Skype = json_get(ContactCards, "Skype");
TCHAR *sDisplayName = json_as_string(json_get(Skype, "DisplayName"));
TCHAR *sSkypeName = json_as_string(json_get(Skype, "SkypeName"));
diff --git a/protocols/Steam/src/steam_contacts.cpp b/protocols/Steam/src/steam_contacts.cpp
index fa6f2c0965..72a5422e5a 100644
--- a/protocols/Steam/src/steam_contacts.cpp
+++ b/protocols/Steam/src/steam_contacts.cpp
@@ -94,9 +94,9 @@ MCONTACT CSteamProto::FindContact(const char *steamId)
return hContact;
}
-void CSteamProto::UpdateContact(MCONTACT hContact, JSONNODE *data)
+void CSteamProto::UpdateContact(MCONTACT hContact, JSONNode *data)
{
- JSONNODE *node = NULL;
+ JSONNode *node = NULL;
// set common data
node = json_get(data, "personaname");
@@ -322,15 +322,15 @@ MCONTACT CSteamProto::AddContact(const char *steamId, bool isTemporary)
return hContact;
}
-void CSteamProto::ProcessContact(std::map<std::string, JSONNODE*>::iterator *it, MCONTACT hContact)
+void CSteamProto::ProcessContact(std::map<std::string, JSONNode*>::iterator *it, MCONTACT hContact)
{
std::string steamId = (*it)->first;
- JSONNODE *child = (*it)->second;
+ JSONNode *child = (*it)->second;
if (!hContact)
hContact = AddContact(steamId.c_str());
- JSONNODE *node = json_get(child, "friend_since");
+ JSONNode *node = json_get(child, "friend_since");
if (node)
db_set_dw(hContact, "UserInfo", "ContactAddTime", json_as_int(node));
@@ -365,16 +365,16 @@ void CSteamProto::OnGotFriendList(const NETLIBHTTPREQUEST *response)
std::string steamIds = ptrA(getStringA("SteamID"));
- std::map<std::string, JSONNODE*> friends;
+ std::map<std::string, JSONNode*> friends;
// Remember contacts on server
- JSONNODE *node = json_get(root, "friends");
- JSONNODE *nroot = json_as_array(node);
+ JSONNode *node = json_get(root, "friends");
+ JSONNode *nroot = json_as_array(node);
if (nroot != NULL)
{
for (size_t i = 0; i < json_size(nroot); i++)
{
- JSONNODE *child = json_at(nroot, i);
+ JSONNode *child = json_at(nroot, i);
if (child == NULL)
break;
@@ -397,7 +397,7 @@ void CSteamProto::OnGotFriendList(const NETLIBHTTPREQUEST *response)
if (id == NULL)
continue;
- std::map<std::string, JSONNODE*>::iterator it = friends.find(std::string(id));
+ std::map<std::string, JSONNode*>::iterator it = friends.find(std::string(id));
if (it != friends.end())
{
@@ -415,7 +415,7 @@ void CSteamProto::OnGotFriendList(const NETLIBHTTPREQUEST *response)
}
// Check remaining contacts in map and add them to contact list
- for (std::map<std::string, JSONNODE*>::iterator it = friends.begin(); it != friends.end();)
+ for (std::map<std::string, JSONNode*>::iterator it = friends.begin(); it != friends.end();)
{
// Contact is on server-list, but not in database, add (but not notify) it
ProcessContact(&it, NULL);
@@ -425,7 +425,7 @@ void CSteamProto::OnGotFriendList(const NETLIBHTTPREQUEST *response)
}
friends.clear();
- // We need to delete nroot here at the end, because we had references to JSONNODE objects stored in friends map
+ // We need to delete nroot here at the end, because we had references to JSONNode objects stored in friends map
json_delete(nroot);
if (!steamIds.empty())
@@ -450,13 +450,13 @@ void CSteamProto::OnGotBlockList(const NETLIBHTTPREQUEST *response)
//std::string steamIds;
- JSONNODE *node = json_get(root, "friends");
- JSONNODE *nroot = json_as_array(node);
+ JSONNode *node = json_get(root, "friends");
+ JSONNode *nroot = json_as_array(node);
if (nroot != NULL)
{
for (size_t i = 0; i < json_size(nroot); i++)
{
- JSONNODE *child = json_at(nroot, i);
+ JSONNode *child = json_at(nroot, i);
if (child == NULL)
break;
@@ -492,13 +492,13 @@ void CSteamProto::OnGotUserSummaries(const NETLIBHTTPREQUEST *response)
if (root == NULL)
return;
- JSONNODE *node = json_get(root, "players");
- JSONNODE *nroot = json_as_array(node);
+ JSONNode *node = json_get(root, "players");
+ JSONNode *nroot = json_as_array(node);
if (nroot != NULL)
{
for (size_t i = 0; i < json_size(nroot); i++)
{
- JSONNODE *item = json_at(nroot, i);
+ JSONNode *item = json_at(nroot, i);
if (item == NULL)
break;
@@ -601,9 +601,9 @@ void CSteamProto::OnAuthRequested(const NETLIBHTTPREQUEST *response, void *arg)
if (root == NULL)
return;
- JSONNODE *node = json_get(root, "players");
- JSONNODE *nodes = json_as_array(node);
- JSONNODE *nroot = json_at(nodes, 0);
+ JSONNode *node = json_get(root, "players");
+ JSONNode *nodes = json_as_array(node);
+ JSONNode *nroot = json_at(nodes, 0);
if (nroot != NULL)
{
@@ -665,7 +665,7 @@ void CSteamProto::OnPendingApproved(const NETLIBHTTPREQUEST *response, void *arg
if (root == NULL)
return;
- JSONNODE *node = json_get(root, "success");
+ JSONNode *node = json_get(root, "success");
if (json_as_int(node) == 0)
{
node = json_get(root, "error_text");
@@ -685,7 +685,7 @@ void CSteamProto::OnPendingIgnoreded(const NETLIBHTTPREQUEST *response, void *ar
if (root == NULL)
return;
- JSONNODE *node = json_get(root, "success");
+ JSONNode *node = json_get(root, "success");
if (json_as_int(node) == 0)
{
node = json_get(root, "error_text");
@@ -706,9 +706,9 @@ void CSteamProto::OnSearchByIdEnded(const NETLIBHTTPREQUEST *response, void *arg
if (root == NULL)
return;
- JSONNODE *node = json_get(root, "players");
- JSONNODE *nodes = json_as_array(node);
- JSONNODE *nroot = json_at(nodes, 0);
+ JSONNode *node = json_get(root, "players");
+ JSONNode *nodes = json_as_array(node);
+ JSONNode *nroot = json_at(nodes, 0);
if (nroot != NULL)
{
diff --git a/protocols/Steam/src/steam_login.cpp b/protocols/Steam/src/steam_login.cpp
index 2002586053..6128428dbe 100644
--- a/protocols/Steam/src/steam_login.cpp
+++ b/protocols/Steam/src/steam_login.cpp
@@ -269,7 +269,7 @@ void CSteamProto::OnLoggedOn(const NETLIBHTTPREQUEST *response)
JSONROOT root(response->pData);
- JSONNODE *node = json_get(root, "error");
+ JSONNode *node = json_get(root, "error");
ptrT error(json_as_string(node));
if (mir_tstrcmpi(error, _T("OK")) || response->resultCode == HTTP_STATUS_UNAUTHORIZED)
{
diff --git a/protocols/Steam/src/steam_messages.cpp b/protocols/Steam/src/steam_messages.cpp
index 5a55919a07..563923c919 100644
--- a/protocols/Steam/src/steam_messages.cpp
+++ b/protocols/Steam/src/steam_messages.cpp
@@ -23,7 +23,7 @@ void CSteamProto::OnMessageSent(const NETLIBHTTPREQUEST *response, void *arg)
if (response != NULL && response->resultCode == HTTP_STATUS_OK)
{
JSONROOT root(response->pData);
- JSONNODE *node = json_get(root, "error");
+ JSONNode *node = json_get(root, "error");
if (node)
error = json_as_string(node);
}
diff --git a/protocols/Steam/src/steam_pooling.cpp b/protocols/Steam/src/steam_pooling.cpp
index b6cb91f56e..71d1b20f0e 100644
--- a/protocols/Steam/src/steam_pooling.cpp
+++ b/protocols/Steam/src/steam_pooling.cpp
@@ -2,9 +2,9 @@
#define POLLING_ERRORS_LIMIT 3
-void CSteamProto::ParsePollData(JSONNODE *data)
+void CSteamProto::ParsePollData(JSONNode *data)
{
- JSONNODE *node, *item = NULL;
+ JSONNode *node, *item = NULL;
std::string steamIds;
for (size_t i = 0; i < json_size(data); i++)
@@ -192,7 +192,7 @@ void CSteamProto::PollingThread(void*)
errors = 0;
JSONROOT root(response->pData);
- JSONNODE *node = json_get(root, "error");
+ JSONNode *node = json_get(root, "error");
ptrT error(json_as_string(node));
if (!lstrcmpi(error, _T("OK")))
@@ -201,7 +201,7 @@ void CSteamProto::PollingThread(void*)
messageId = json_as_int(node);
node = json_get(root, "messages");
- JSONNODE *nroot = json_as_array(node);
+ JSONNode *nroot = json_as_array(node);
if (nroot != NULL)
{
diff --git a/protocols/Steam/src/steam_proto.h b/protocols/Steam/src/steam_proto.h
index fc82986b67..4b4dcaa40a 100644
--- a/protocols/Steam/src/steam_proto.h
+++ b/protocols/Steam/src/steam_proto.h
@@ -27,7 +27,7 @@ struct SendMessageParam
struct STEAM_SEARCH_RESULT
{
PROTOSEARCHRESULT hdr;
- JSONNODE *data;
+ JSONNode *data;
};
enum
@@ -129,7 +129,7 @@ protected:
static void MirFreeArg(void *arg) { mir_free(arg); }
// pooling thread
- void ParsePollData(JSONNODE *data);
+ void ParsePollData(JSONNode *data);
void __cdecl PollingThread(void*);
// account
@@ -153,8 +153,8 @@ protected:
MCONTACT GetContactFromAuthEvent(MEVENT hEvent);
- void UpdateContact(MCONTACT hContact, JSONNODE *data);
- void ProcessContact(std::map<std::string, JSONNODE*>::iterator *it, MCONTACT hContact);
+ void UpdateContact(MCONTACT hContact, JSONNode *data);
+ void ProcessContact(std::map<std::string, JSONNode*>::iterator *it, MCONTACT hContact);
void ContactIsRemoved(MCONTACT hContact);
void ContactIsFriend(MCONTACT hContact);
diff --git a/src/mir_app/src/skin2opts.cpp b/src/mir_app/src/skin2opts.cpp
index 7805550d34..4c9e7ede0e 100644
--- a/src/mir_app/src/skin2opts.cpp
+++ b/src/mir_app/src/skin2opts.cpp
@@ -73,7 +73,7 @@ HICON IconItem_GetIcon_Preview(IcolibItem* item)
HICON hIcon = NULL;
if (!item->temp_reset) {
- HICON hRefIcon = IcoLib_GetIconByHandle(item, false);
+ HICON hRefIcon = IcoLib_GetIconByHandle((HANDLE)item, false);
hIcon = CopyIcon(hRefIcon);
if (item->source_small && item->source_small->icon == hRefIcon)
IconSourceItem_ReleaseIcon(item->source_small);
diff --git a/src/mir_core/mir_core_10.vcxproj b/src/mir_core/mir_core_10.vcxproj
index 68946ed6c2..e47163cce5 100644
--- a/src/mir_core/mir_core_10.vcxproj
+++ b/src/mir_core/mir_core_10.vcxproj
@@ -25,15 +25,6 @@
<ClInclude Include="..\..\include\m_system.h" />
<ClInclude Include="..\..\include\m_system_cpp.h" />
<ClInclude Include="src\commonheaders.h" />
- <ClInclude Include="src\json\internalJSONNode.h" />
- <ClInclude Include="src\json\JSONChildren.h" />
- <ClInclude Include="src\json\JSONDebug.h" />
- <ClInclude Include="src\json\JSONDefs.h" />
- <ClInclude Include="src\json\JSONMemory.h" />
- <ClInclude Include="src\json\JSONNode.h" />
- <ClInclude Include="src\json\JSONOptions.h" />
- <ClInclude Include="src\json\JSONWorker.h" />
- <ClInclude Include="src\json\NumberToString.h" />
<ClInclude Include="src\miranda.h" />
</ItemGroup>
<ItemGroup>
@@ -41,36 +32,6 @@
<ClCompile Include="src\cmdline.cpp" />
<ClCompile Include="src\http.cpp" />
<ClCompile Include="src\icons.cpp" />
- <ClCompile Include="src\json\internalJSONNode.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONChildren.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONDebug.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONIterators.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONMemory.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONNode.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONNode_Mutex.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONWorker.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONWriter.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\libJSON.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
<ClCompile Include="src\logger.cpp" />
<ClCompile Include="src\mc.cpp" />
<ClCompile Include="src\mstring.cpp" />
@@ -97,7 +58,6 @@
</ItemGroup>
<ItemGroup>
<None Include="..\..\include\m_string.inl" />
- <None Include="src\json\JSONNode.inl" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>mir_core</ProjectName>
diff --git a/src/mir_core/mir_core_10.vcxproj.filters b/src/mir_core/mir_core_10.vcxproj.filters
index f65ee2856e..3511b23f6a 100644
--- a/src/mir_core/mir_core_10.vcxproj.filters
+++ b/src/mir_core/mir_core_10.vcxproj.filters
@@ -8,9 +8,6 @@
<Filter Include="Header Files">
<UniqueIdentifier>{a578a180-0eb9-4c3e-b4ae-0eaefa01d207}</UniqueIdentifier>
</Filter>
- <Filter Include="Source Files\json">
- <UniqueIdentifier>{fd36323a-6636-4faa-90b0-e2980235fe19}</UniqueIdentifier>
- </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\memory.cpp">
@@ -67,36 +64,6 @@
<ClCompile Include="src\protos.cpp">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="src\json\internalJSONNode.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\JSONChildren.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\JSONDebug.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\JSONIterators.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\JSONMemory.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\JSONNode.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\JSONNode_Mutex.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\JSONWorker.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\JSONWriter.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\libJSON.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
<ClCompile Include="src\logger.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -135,33 +102,6 @@
<ClInclude Include="..\..\include\m_database.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="src\json\internalJSONNode.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
- <ClInclude Include="src\json\JSONChildren.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
- <ClInclude Include="src\json\JSONDebug.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
- <ClInclude Include="src\json\JSONDefs.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
- <ClInclude Include="src\json\JSONMemory.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
- <ClInclude Include="src\json\JSONNode.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
- <ClInclude Include="src\json\JSONOptions.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
- <ClInclude Include="src\json\JSONWorker.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
- <ClInclude Include="src\json\NumberToString.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
<ClInclude Include="..\..\include\m_system_cpp.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -173,8 +113,5 @@
<None Include="..\..\include\m_string.inl">
<Filter>Header Files</Filter>
</None>
- <None Include="src\json\JSONNode.inl">
- <Filter>Source Files\json</Filter>
- </None>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/src/mir_core/mir_core_12.vcxproj b/src/mir_core/mir_core_12.vcxproj
index ab2cb013e5..3ae8658e84 100644
--- a/src/mir_core/mir_core_12.vcxproj
+++ b/src/mir_core/mir_core_12.vcxproj
@@ -22,7 +22,6 @@
<ClInclude Include="..\..\include\m_core.h" />
<ClInclude Include="..\..\include\m_database.h" />
<ClInclude Include="..\..\include\m_gui.h" />
- <ClInclude Include="..\..\include\m_json.h" />
<ClInclude Include="..\..\include\m_metacontacts.h" />
<ClInclude Include="..\..\include\m_protoint.h" />
<ClInclude Include="..\..\include\m_string.h" />
@@ -30,14 +29,6 @@
<ClInclude Include="..\..\include\m_system_cpp.h" />
<ClInclude Include="..\..\include\m_utils.h" />
<ClInclude Include="src\commonheaders.h" />
- <ClInclude Include="src\json\internalJSONNode.h" />
- <ClInclude Include="src\json\JSONChildren.h" />
- <ClInclude Include="src\json\JSONDebug.h" />
- <ClInclude Include="src\json\JSONDefs.h" />
- <ClInclude Include="src\json\JSONMemory.h" />
- <ClInclude Include="src\json\JSONNode.h" />
- <ClInclude Include="src\json\JSONOptions.h" />
- <ClInclude Include="src\json\NumberToString.h" />
<ClInclude Include="src\miranda.h" />
</ItemGroup>
<ItemGroup>
@@ -45,36 +36,6 @@
<ClCompile Include="src\cmdline.cpp" />
<ClCompile Include="src\http.cpp" />
<ClCompile Include="src\icons.cpp" />
- <ClCompile Include="src\json\internalJSONNode.cpp">
- <PrecompiledHeaderFile>../commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONChildren.cpp">
- <PrecompiledHeaderFile>../commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONDebug.cpp">
- <PrecompiledHeaderFile>../commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONIterators.cpp">
- <PrecompiledHeaderFile>../commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONMemory.cpp">
- <PrecompiledHeaderFile>../commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONNode.cpp">
- <PrecompiledHeaderFile>../commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONNode_Mutex.cpp">
- <PrecompiledHeaderFile>../commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONWorker.cpp">
- <PrecompiledHeaderFile>../commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\JSONWriter.cpp">
- <PrecompiledHeaderFile>../commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\json\libJSON.cpp">
- <PrecompiledHeaderFile>../commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
<ClCompile Include="src\logger.cpp" />
<ClCompile Include="src\mc.cpp" />
<ClCompile Include="src\mstring.cpp" />
@@ -101,7 +62,6 @@
</ItemGroup>
<ItemGroup>
<None Include="..\..\include\m_string.inl" />
- <None Include="src\json\JSONNode.inl" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>mir_core</ProjectName>
diff --git a/src/mir_core/mir_core_12.vcxproj.filters b/src/mir_core/mir_core_12.vcxproj.filters
index d320dd8ba4..956b314f32 100644
--- a/src/mir_core/mir_core_12.vcxproj.filters
+++ b/src/mir_core/mir_core_12.vcxproj.filters
@@ -8,9 +8,6 @@
<Filter Include="Header Files">
<UniqueIdentifier>{a578a180-0eb9-4c3e-b4ae-0eaefa01d207}</UniqueIdentifier>
</Filter>
- <Filter Include="Source Files\json">
- <UniqueIdentifier>{78a0dcef-2ff4-4e4f-b787-092afab60e64}</UniqueIdentifier>
- </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\memory.cpp">
@@ -67,33 +64,6 @@
<ClCompile Include="src\protos.cpp">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="src\json\internalJSONNode.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\JSONChildren.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\JSONDebug.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\JSONMemory.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\JSONNode.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\JSONNode_Mutex.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\JSONWorker.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\JSONWriter.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
- <ClCompile Include="src\json\libJSON.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
<ClCompile Include="src\logger.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -109,9 +79,6 @@
<ClCompile Include="src\ui_utils.cpp">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="src\json\JSONIterators.cpp">
- <Filter>Source Files\json</Filter>
- </ClCompile>
<ClCompile Include="src\bitmaps.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -132,30 +99,6 @@
<ClInclude Include="..\..\include\m_database.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="src\json\internalJSONNode.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
- <ClInclude Include="src\json\JSONChildren.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
- <ClInclude Include="src\json\JSONDebug.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
- <ClInclude Include="src\json\JSONDefs.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
- <ClInclude Include="src\json\JSONMemory.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
- <ClInclude Include="src\json\JSONNode.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
- <ClInclude Include="src\json\JSONOptions.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\m_json.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
<ClInclude Include="..\..\include\m_system_cpp.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -165,9 +108,6 @@
<ClInclude Include="src\commonheaders.h">
<Filter>Source Files</Filter>
</ClInclude>
- <ClInclude Include="src\json\NumberToString.h">
- <Filter>Source Files\json</Filter>
- </ClInclude>
<ClInclude Include="..\..\include\m_string.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -185,8 +125,5 @@
<None Include="..\..\include\m_string.inl">
<Filter>Header Files</Filter>
</None>
- <None Include="src\json\JSONNode.inl">
- <Filter>Source Files\json</Filter>
- </None>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/src/mir_core/src/mir_core.def b/src/mir_core/src/mir_core.def
index 6c1c107d7f..030e9378df 100644
--- a/src/mir_core/src/mir_core.def
+++ b/src/mir_core/src/mir_core.def
@@ -170,49 +170,6 @@ ProtoHookEvent @171
ProtoCreateHookableEvent @172
ProtoForkThread @173
ProtoForkThreadEx @174
-json_as_array @175
-json_as_bool @176
-json_as_float @177
-json_as_int @178
-json_as_node @179
-json_as_string @180
-json_as_pstring @181
-json_at @182
-json_cast @183
-json_clear @184
-json_copy @185
-json_delete @186
-json_duplicate @187
-json_empty @188
-json_equal @189
-json_free @190
-json_get @191
-json_merge @192
-json_name @193
-json_new @194
-json_new_a @195
-json_new_b @196
-json_new_f @197
-json_new_i @198
-json_nullify @199
-json_parse @200
-json_pop_back @201
-json_pop_back_at @202
-json_preparse @203
-json_push_back @204
-json_reserve @205
-json_set_a @206
-json_set_b @207
-json_set_f @208
-json_set_i @209
-json_set_n @210
-json_set_name @211
-json_size @212
-json_strip_white_space @213
-json_swap @214
-json_type @215
-json_write @216
-json_write_formatted @217
mir_subclassWindowFull @218
ProtoGetAvatarFormat @219
ProtoGetAvatarExtension @220
@@ -1085,163 +1042,14 @@ Proto_RegisterModule @1074 NONAME
?Fail@CDlgBase@@QAEXXZ @1096 NONAME
?OnApply@CCtrlPages@@MAEXXZ @1097 NONAME
?OnReset@CCtrlPages@@MAEXXZ @1098 NONAME
-??0JSONNode@@AAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1099 NONAME
-??0JSONNode@@AAE@PAVinternalJSONNode@@@Z @1100 NONAME
-??0JSONNode@@AAE@_NAAV0@@Z @1101 NONAME
-??0JSONNode@@QAE@ABV0@@Z @1102 NONAME
-??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z @1103 NONAME
-??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@D@Z @1104 NONAME
-??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@E@Z @1105 NONAME
-??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@F@Z @1106 NONAME
-??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@G@Z @1107 NONAME
-??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z @1108 NONAME
-??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@I@Z @1109 NONAME
-??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@J@Z @1110 NONAME
-??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@K@Z @1111 NONAME
-??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@M@Z @1112 NONAME
-??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@N@Z @1113 NONAME
-??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z @1114 NONAME
-??0JSONNode@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z @1115 NONAME
-??0JSONNode@@QAE@D@Z @1116 NONAME
-??1JSONNode@@QAE@XZ @1117 NONAME
-??4JSONNode@@QAEAAV0@ABV0@@Z @1118 NONAME
-??4JSONNode@@QAEAAV0@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1119 NONAME
-??4JSONNode@@QAEAAV0@D@Z @1120 NONAME
-??4JSONNode@@QAEAAV0@E@Z @1121 NONAME
-??4JSONNode@@QAEAAV0@F@Z @1122 NONAME
-??4JSONNode@@QAEAAV0@G@Z @1123 NONAME
-??4JSONNode@@QAEAAV0@H@Z @1124 NONAME
-??4JSONNode@@QAEAAV0@I@Z @1125 NONAME
-??4JSONNode@@QAEAAV0@J@Z @1126 NONAME
-??4JSONNode@@QAEAAV0@K@Z @1127 NONAME
-??4JSONNode@@QAEAAV0@M@Z @1128 NONAME
-??4JSONNode@@QAEAAV0@N@Z @1129 NONAME
-??4JSONNode@@QAEAAV0@PBD@Z @1130 NONAME
-??4JSONNode@@QAEAAV0@_N@Z @1131 NONAME
-??4JSONWorker@@QAEAAV0@ABV0@@Z @1132 NONAME
-??8JSONNode@@QBE_NABV0@@Z @1133 NONAME
-??8JSONNode@@QBE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1134 NONAME
-??8JSONNode@@QBE_ND@Z @1135 NONAME
-??8JSONNode@@QBE_NE@Z @1136 NONAME
-??8JSONNode@@QBE_NF@Z @1137 NONAME
-??8JSONNode@@QBE_NG@Z @1138 NONAME
-??8JSONNode@@QBE_NH@Z @1139 NONAME
-??8JSONNode@@QBE_NI@Z @1140 NONAME
-??8JSONNode@@QBE_NJ@Z @1141 NONAME
-??8JSONNode@@QBE_NK@Z @1142 NONAME
-??8JSONNode@@QBE_NM@Z @1143 NONAME
-??8JSONNode@@QBE_NN@Z @1144 NONAME
-??8JSONNode@@QBE_NPBD@Z @1145 NONAME
-??8JSONNode@@QBE_N_N@Z @1146 NONAME
-??9JSONNode@@QBE_NABV0@@Z @1147 NONAME
-??9JSONNode@@QBE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1148 NONAME
-??9JSONNode@@QBE_ND@Z @1149 NONAME
-??9JSONNode@@QBE_NE@Z @1150 NONAME
-??9JSONNode@@QBE_NF@Z @1151 NONAME
-??9JSONNode@@QBE_NG@Z @1152 NONAME
-??9JSONNode@@QBE_NH@Z @1153 NONAME
-??9JSONNode@@QBE_NI@Z @1154 NONAME
-??9JSONNode@@QBE_NJ@Z @1155 NONAME
-??9JSONNode@@QBE_NK@Z @1156 NONAME
-??9JSONNode@@QBE_NM@Z @1157 NONAME
-??9JSONNode@@QBE_NN@Z @1158 NONAME
-??9JSONNode@@QBE_NPBD@Z @1159 NONAME
-??9JSONNode@@QBE_N_N@Z @1160 NONAME
-??AJSONNode@@QAEAAV0@I@Z @1161 NONAME
-??AJSONNode@@QAEAAV0@PBD@Z @1162 NONAME
-??AJSONNode@@QBEABV0@I@Z @1163 NONAME
-??AJSONNode@@QBEABV0@PBD@Z @1164 NONAME
-??_FJSONNode@@QAEXXZ @1165 NONAME
-?DoArray@JSONWorker@@SAXPBVinternalJSONNode@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1166 NONAME
-?DoNode@JSONWorker@@SAXPBVinternalJSONNode@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1167 NONAME
-?FindNextRelevant@JSONWorker@@CAIDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@I@Z @1168 NONAME
-?FixString@JSONWorker@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV23@AA_N@Z @1169 NONAME
-?Hex@JSONWorker@@CADAAPBD@Z @1170 NONAME
-?NewNode@JSONWorker@@CAXPBVinternalJSONNode@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@1_N@Z @1171 NONAME
-?RemoveWhiteSpace@JSONWorker@@SAPADABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAD@Z @1172 NONAME
-?RemoveWhiteSpaceAndComments@JSONWorker@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV23@@Z @1173 NONAME
-?SpecialChar@JSONWorker@@CAXAAPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1174 NONAME
-?UTF8@JSONWorker@@CAEAAPBD@Z @1175 NONAME
-?UTF8_2@JSONWorker@@CAPADAAPBD@Z @1176 NONAME
-?UnfixString@JSONWorker@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV23@_N@Z @1177 NONAME
-?as_array@JSONNode@@QBE?AV1@XZ @1178 NONAME
-?as_bool@JSONNode@@QBE_NXZ @1179 NONAME
-?as_float@JSONNode@@QBENXZ @1180 NONAME
-?as_int@JSONNode@@QBEJXZ @1181 NONAME
-?as_node@JSONNode@@QBE?AV1@XZ @1182 NONAME
-?as_string@JSONNode@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ @1183 NONAME
-?at@JSONNode@@QAEAAV1@I@Z @1184 NONAME
-?at@JSONNode@@QAEAAV1@PBD@Z @1185 NONAME
-?at@JSONNode@@QBEABV1@I@Z @1186 NONAME
-?at@JSONNode@@QBEABV1@PBD@Z @1187 NONAME
-?begin@JSONNode@@QAE?AUiterator@1@XZ @1188 NONAME
-?begin@JSONNode@@QBE?AUconst_iterator@1@XZ @1189 NONAME
-?cast@JSONNode@@QAEXD@Z @1190 NONAME
-?clear@JSONNode@@QAEXXZ @1191 NONAME
-?decRef@JSONNode@@AAEXXZ @1192 NONAME
-?deleteJSONNode@JSONNode@@SAXPAV1@@Z @1193 NONAME
-?duplicate@JSONNode@@QBE?AV1@XZ @1194 NONAME
-?empty@JSONNode@@QBE_NXZ @1195 NONAME
-?end@JSONNode@@QAE?AUiterator@1@XZ @1196 NONAME
-?end@JSONNode@@QBE?AUconst_iterator@1@XZ @1197 NONAME
-?erase@JSONNode@@QAE?AUiterator@1@U21@@Z @1198 NONAME
-?erase@JSONNode@@QAE?AUiterator@1@U21@ABU21@@Z @1199 NONAME
-?erase@JSONNode@@QAE?AUreverse_iterator@1@U21@@Z @1200 NONAME
-?erase@JSONNode@@QAE?AUreverse_iterator@1@U21@ABU21@@Z @1201 NONAME
-?find@JSONNode@@QAE?AUiterator@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1202 NONAME
-?find@JSONNode@@QBE?AUconst_iterator@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1203 NONAME
-?insert@JSONNode@@QAE?AUiterator@1@U21@ABU21@1@Z @1204 NONAME
-?insert@JSONNode@@QAE?AUiterator@1@U21@ABUconst_iterator@1@1@Z @1205 NONAME
-?insert@JSONNode@@QAE?AUiterator@1@U21@ABUreverse_const_iterator@1@1@Z @1206 NONAME
-?insert@JSONNode@@QAE?AUiterator@1@U21@ABUreverse_iterator@1@1@Z @1207 NONAME
-?insert@JSONNode@@QAE?AUiterator@1@U21@ABV1@@Z @1208 NONAME
-?insert@JSONNode@@QAE?AUreverse_iterator@1@U21@ABU21@1@Z @1209 NONAME
-?insert@JSONNode@@QAE?AUreverse_iterator@1@U21@ABUconst_iterator@1@1@Z @1210 NONAME
-?insert@JSONNode@@QAE?AUreverse_iterator@1@U21@ABUiterator@1@1@Z @1211 NONAME
-?insert@JSONNode@@QAE?AUreverse_iterator@1@U21@ABUreverse_const_iterator@1@1@Z @1212 NONAME
-?insert@JSONNode@@QAE?AUreverse_iterator@1@U21@ABV1@@Z @1213 NONAME
-?insertFFF@JSONNode@@AAE?AUiterator@1@U21@QAPAV1@1@Z @1214 NONAME
-?insertFRR@JSONNode@@AAE?AUiterator@1@U21@QAPAV1@1@Z @1215 NONAME
-?insertRFF@JSONNode@@AAE?AUreverse_iterator@1@U21@QAPAV1@1@Z @1216 NONAME
-?insertRRR@JSONNode@@AAE?AUreverse_iterator@1@U21@QAPAV1@1@Z @1217 NONAME
-?makeUniqueInternal@JSONNode@@AAEXXZ @1218 NONAME
-?merge@JSONNode@@AAEXPAV1@@Z @1219 NONAME
-?merge@JSONNode@@QAAXIZZ @1220 NONAME
-?merge@JSONNode@@QAEXAAV1@@Z @1221 NONAME
-?name@JSONNode@@QBEPBDXZ @1222 NONAME
-?newJSONNode@JSONNode@@CAPAV1@ABV1@@Z @1223 NONAME
-?newJSONNode@JSONNode@@CAPAV1@PAVinternalJSONNode@@@Z @1224 NONAME
-?newJSONNode_Shallow@JSONNode@@SAPAV1@ABV1@@Z @1225 NONAME
-?nullify@JSONNode@@QAEXXZ @1226 NONAME
-?parse@JSONNode@@SA?AV1@PBD@Z @1227 NONAME
-?parse@JSONWorker@@SA?AVJSONNode@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1228 NONAME
-?pop_back@JSONNode@@QAE?AV1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1229 NONAME
-?pop_back@JSONNode@@QAE?AV1@I@Z @1230 NONAME
-?preparse@JSONNode@@QAEXXZ @1231 NONAME
-?push_back@JSONNode@@QAEXABV1@@Z @1232 NONAME
-?rbegin@JSONNode@@QAE?AUreverse_iterator@1@XZ @1233 NONAME
-?rbegin@JSONNode@@QBE?AUreverse_const_iterator@1@XZ @1234 NONAME
-?rend@JSONNode@@QAE?AUreverse_iterator@1@XZ @1235 NONAME
-?rend@JSONNode@@QBE?AUreverse_const_iterator@1@XZ @1236 NONAME
-?reserve@JSONNode@@QAEXI@Z @1237 NONAME
-?set_name@JSONNode@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1238 NONAME
-?size@JSONNode@@QBEIXZ @1239 NONAME
-?swap@JSONNode@@QAEXAAV1@@Z @1240 NONAME
-?toUTF8@JSONWorker@@CA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@E@Z @1241 NONAME
-?type@JSONNode@@QBEEXZ @1242 NONAME
-?write@JSONNode@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ @1243 NONAME
-?write_formatted@JSONNode@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ @1244 NONAME
-?isnull@JSONNode@@QBE_NXZ @1245 NONAME
-??BJSONNode@@QBE_NXZ @1246 NONAME
-?as_mstring@JSONNode@@QBE?AV?$CMStringT@_WV?$ChTraitsCRT@_W@@@@XZ @1247 NONAME
-Bitmap_GetFilter @1248
-Bitmap_Load @1249
-CreateProtoServiceFunction @1250
-?SetSilent@CCtrlBase@@QAEXXZ @1251 NONAME
-WindowList_Add @1252
-WindowList_Broadcast @1253
-WindowList_BroadcastAsync @1254
-WindowList_Create @1255
-WindowList_Destroy @1256
-WindowList_Find @1257
-WindowList_Remove @1258
+Bitmap_GetFilter @1099
+Bitmap_Load @1100
+CreateProtoServiceFunction @1101
+WindowList_Add @1102
+WindowList_Broadcast @1103
+WindowList_BroadcastAsync @1104
+WindowList_Create @1105
+WindowList_Destroy @1106
+WindowList_Find @1107
+WindowList_Remove @1108
+?SetSilent@CCtrlBase@@QAEXXZ @1109 NONAME
diff --git a/src/mir_core/src/mir_core64.def b/src/mir_core/src/mir_core64.def
index 9fc7449fee..b2139750cf 100644
--- a/src/mir_core/src/mir_core64.def
+++ b/src/mir_core/src/mir_core64.def
@@ -170,49 +170,6 @@ ProtoHookEvent @171
ProtoCreateHookableEvent @172
ProtoForkThread @173
ProtoForkThreadEx @174
-json_as_array @175
-json_as_bool @176
-json_as_float @177
-json_as_int @178
-json_as_node @179
-json_as_string @180
-json_as_pstring @181
-json_at @182
-json_cast @183
-json_clear @184
-json_copy @185
-json_delete @186
-json_duplicate @187
-json_empty @188
-json_equal @189
-json_free @190
-json_get @191
-json_merge @192
-json_name @193
-json_new @194
-json_new_a @195
-json_new_b @196
-json_new_f @197
-json_new_i @198
-json_nullify @199
-json_parse @200
-json_pop_back @201
-json_pop_back_at @202
-json_preparse @203
-json_push_back @204
-json_reserve @205
-json_set_a @206
-json_set_b @207
-json_set_f @208
-json_set_i @209
-json_set_n @210
-json_set_name @211
-json_size @212
-json_strip_white_space @213
-json_swap @214
-json_type @215
-json_write @216
-json_write_formatted @217
mir_subclassWindowFull @218
ProtoGetAvatarFormat @219
ProtoGetAvatarExtension @220
@@ -1085,163 +1042,14 @@ Proto_RegisterModule @1074 NONAME
?Fail@CDlgBase@@QEAAXXZ @1096 NONAME
?OnApply@CCtrlPages@@MEAAXXZ @1097 NONAME
?OnReset@CCtrlPages@@MEAAXXZ @1098 NONAME
-??0JSONNode@@AEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1099 NONAME
-??0JSONNode@@AEAA@PEAVinternalJSONNode@@@Z @1100 NONAME
-??0JSONNode@@AEAA@_NAEAV0@@Z @1101 NONAME
-??0JSONNode@@QEAA@AEBV0@@Z @1102 NONAME
-??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z @1103 NONAME
-??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@D@Z @1104 NONAME
-??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@E@Z @1105 NONAME
-??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@F@Z @1106 NONAME
-??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@G@Z @1107 NONAME
-??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z @1108 NONAME
-??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@I@Z @1109 NONAME
-??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@J@Z @1110 NONAME
-??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@K@Z @1111 NONAME
-??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@M@Z @1112 NONAME
-??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@N@Z @1113 NONAME
-??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z @1114 NONAME
-??0JSONNode@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z @1115 NONAME
-??0JSONNode@@QEAA@D@Z @1116 NONAME
-??1JSONNode@@QEAA@XZ @1117 NONAME
-??4JSONNode@@QEAAAEAV0@AEBV0@@Z @1118 NONAME
-??4JSONNode@@QEAAAEAV0@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1119 NONAME
-??4JSONNode@@QEAAAEAV0@D@Z @1120 NONAME
-??4JSONNode@@QEAAAEAV0@E@Z @1121 NONAME
-??4JSONNode@@QEAAAEAV0@F@Z @1122 NONAME
-??4JSONNode@@QEAAAEAV0@G@Z @1123 NONAME
-??4JSONNode@@QEAAAEAV0@H@Z @1124 NONAME
-??4JSONNode@@QEAAAEAV0@I@Z @1125 NONAME
-??4JSONNode@@QEAAAEAV0@J@Z @1126 NONAME
-??4JSONNode@@QEAAAEAV0@K@Z @1127 NONAME
-??4JSONNode@@QEAAAEAV0@M@Z @1128 NONAME
-??4JSONNode@@QEAAAEAV0@N@Z @1129 NONAME
-??4JSONNode@@QEAAAEAV0@PEBD@Z @1130 NONAME
-??4JSONNode@@QEAAAEAV0@_N@Z @1131 NONAME
-??4JSONWorker@@QEAAAEAV0@AEBV0@@Z @1132 NONAME
-??8JSONNode@@QEBA_NAEBV0@@Z @1133 NONAME
-??8JSONNode@@QEBA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1134 NONAME
-??8JSONNode@@QEBA_ND@Z @1135 NONAME
-??8JSONNode@@QEBA_NE@Z @1136 NONAME
-??8JSONNode@@QEBA_NF@Z @1137 NONAME
-??8JSONNode@@QEBA_NG@Z @1138 NONAME
-??8JSONNode@@QEBA_NH@Z @1139 NONAME
-??8JSONNode@@QEBA_NI@Z @1140 NONAME
-??8JSONNode@@QEBA_NJ@Z @1141 NONAME
-??8JSONNode@@QEBA_NK@Z @1142 NONAME
-??8JSONNode@@QEBA_NM@Z @1143 NONAME
-??8JSONNode@@QEBA_NN@Z @1144 NONAME
-??8JSONNode@@QEBA_NPEBD@Z @1145 NONAME
-??8JSONNode@@QEBA_N_N@Z @1146 NONAME
-??9JSONNode@@QEBA_NAEBV0@@Z @1147 NONAME
-??9JSONNode@@QEBA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1148 NONAME
-??9JSONNode@@QEBA_ND@Z @1149 NONAME
-??9JSONNode@@QEBA_NE@Z @1150 NONAME
-??9JSONNode@@QEBA_NF@Z @1151 NONAME
-??9JSONNode@@QEBA_NG@Z @1152 NONAME
-??9JSONNode@@QEBA_NH@Z @1153 NONAME
-??9JSONNode@@QEBA_NI@Z @1154 NONAME
-??9JSONNode@@QEBA_NJ@Z @1155 NONAME
-??9JSONNode@@QEBA_NK@Z @1156 NONAME
-??9JSONNode@@QEBA_NM@Z @1157 NONAME
-??9JSONNode@@QEBA_NN@Z @1158 NONAME
-??9JSONNode@@QEBA_NPEBD@Z @1159 NONAME
-??9JSONNode@@QEBA_N_N@Z @1160 NONAME
-??AJSONNode@@QEAAAEAV0@PEBD@Z @1161 NONAME
-??AJSONNode@@QEAAAEAV0@_K@Z @1162 NONAME
-??AJSONNode@@QEBAAEBV0@PEBD@Z @1163 NONAME
-??AJSONNode@@QEBAAEBV0@_K@Z @1164 NONAME
-??_FJSONNode@@QEAAXXZ @1165 NONAME
-?DoArray@JSONWorker@@SAXPEBVinternalJSONNode@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1166 NONAME
-?DoNode@JSONWorker@@SAXPEBVinternalJSONNode@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1167 NONAME
-?FindNextRelevant@JSONWorker@@CA_KDAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_K@Z @1168 NONAME
-?FixString@JSONWorker@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV23@AEA_N@Z @1169 NONAME
-?Hex@JSONWorker@@CADAEAPEBD@Z @1170 NONAME
-?NewNode@JSONWorker@@CAXPEBVinternalJSONNode@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@1_N@Z @1171 NONAME
-?RemoveWhiteSpace@JSONWorker@@SAPEADAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAD@Z @1172 NONAME
-?RemoveWhiteSpaceAndComments@JSONWorker@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV23@@Z @1173 NONAME
-?SpecialChar@JSONWorker@@CAXAEAPEBDAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1174 NONAME
-?UTF8@JSONWorker@@CAEAEAPEBD@Z @1175 NONAME
-?UTF8_2@JSONWorker@@CAPEADAEAPEBD@Z @1176 NONAME
-?UnfixString@JSONWorker@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV23@_N@Z @1177 NONAME
-?as_array@JSONNode@@QEBA?AV1@XZ @1178 NONAME
-?as_bool@JSONNode@@QEBA_NXZ @1179 NONAME
-?as_float@JSONNode@@QEBANXZ @1180 NONAME
-?as_int@JSONNode@@QEBAJXZ @1181 NONAME
-?as_node@JSONNode@@QEBA?AV1@XZ @1182 NONAME
-?as_string@JSONNode@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ @1183 NONAME
-?at@JSONNode@@QEAAAEAV1@PEBD@Z @1184 NONAME
-?at@JSONNode@@QEAAAEAV1@_K@Z @1185 NONAME
-?at@JSONNode@@QEBAAEBV1@PEBD@Z @1186 NONAME
-?at@JSONNode@@QEBAAEBV1@_K@Z @1187 NONAME
-?begin@JSONNode@@QEAA?AUiterator@1@XZ @1188 NONAME
-?begin@JSONNode@@QEBA?AUconst_iterator@1@XZ @1189 NONAME
-?cast@JSONNode@@QEAAXD@Z @1190 NONAME
-?clear@JSONNode@@QEAAXXZ @1191 NONAME
-?decRef@JSONNode@@AEAAXXZ @1192 NONAME
-?deleteJSONNode@JSONNode@@SAXPEAV1@@Z @1193 NONAME
-?duplicate@JSONNode@@QEBA?AV1@XZ @1194 NONAME
-?empty@JSONNode@@QEBA_NXZ @1195 NONAME
-?end@JSONNode@@QEAA?AUiterator@1@XZ @1196 NONAME
-?end@JSONNode@@QEBA?AUconst_iterator@1@XZ @1197 NONAME
-?erase@JSONNode@@QEAA?AUiterator@1@U21@@Z @1198 NONAME
-?erase@JSONNode@@QEAA?AUiterator@1@U21@AEBU21@@Z @1199 NONAME
-?erase@JSONNode@@QEAA?AUreverse_iterator@1@U21@@Z @1200 NONAME
-?erase@JSONNode@@QEAA?AUreverse_iterator@1@U21@AEBU21@@Z @1201 NONAME
-?find@JSONNode@@QEAA?AUiterator@1@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1202 NONAME
-?find@JSONNode@@QEBA?AUconst_iterator@1@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1203 NONAME
-?insert@JSONNode@@QEAA?AUiterator@1@U21@AEBU21@1@Z @1204 NONAME
-?insert@JSONNode@@QEAA?AUiterator@1@U21@AEBUconst_iterator@1@1@Z @1205 NONAME
-?insert@JSONNode@@QEAA?AUiterator@1@U21@AEBUreverse_const_iterator@1@1@Z @1206 NONAME
-?insert@JSONNode@@QEAA?AUiterator@1@U21@AEBUreverse_iterator@1@1@Z @1207 NONAME
-?insert@JSONNode@@QEAA?AUiterator@1@U21@AEBV1@@Z @1208 NONAME
-?insert@JSONNode@@QEAA?AUreverse_iterator@1@U21@AEBU21@1@Z @1209 NONAME
-?insert@JSONNode@@QEAA?AUreverse_iterator@1@U21@AEBUconst_iterator@1@1@Z @1210 NONAME
-?insert@JSONNode@@QEAA?AUreverse_iterator@1@U21@AEBUiterator@1@1@Z @1211 NONAME
-?insert@JSONNode@@QEAA?AUreverse_iterator@1@U21@AEBUreverse_const_iterator@1@1@Z @1212 NONAME
-?insert@JSONNode@@QEAA?AUreverse_iterator@1@U21@AEBV1@@Z @1213 NONAME
-?insertFFF@JSONNode@@AEAA?AUiterator@1@U21@QEAPEAV1@1@Z @1214 NONAME
-?insertFRR@JSONNode@@AEAA?AUiterator@1@U21@QEAPEAV1@1@Z @1215 NONAME
-?insertRFF@JSONNode@@AEAA?AUreverse_iterator@1@U21@QEAPEAV1@1@Z @1216 NONAME
-?insertRRR@JSONNode@@AEAA?AUreverse_iterator@1@U21@QEAPEAV1@1@Z @1217 NONAME
-?makeUniqueInternal@JSONNode@@AEAAXXZ @1218 NONAME
-?merge@JSONNode@@AEAAXPEAV1@@Z @1219 NONAME
-?merge@JSONNode@@QEAAXAEAV1@@Z @1220 NONAME
-?merge@JSONNode@@QEAAXIZZ @1221 NONAME
-?name@JSONNode@@QEBAPEBDXZ @1222 NONAME
-?newJSONNode@JSONNode@@CAPEAV1@AEBV1@@Z @1223 NONAME
-?newJSONNode@JSONNode@@CAPEAV1@PEAVinternalJSONNode@@@Z @1224 NONAME
-?newJSONNode_Shallow@JSONNode@@SAPEAV1@AEBV1@@Z @1225 NONAME
-?nullify@JSONNode@@QEAAXXZ @1226 NONAME
-?parse@JSONNode@@SA?AV1@PEBD@Z @1227 NONAME
-?parse@JSONWorker@@SA?AVJSONNode@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1228 NONAME
-?pop_back@JSONNode@@QEAA?AV1@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1229 NONAME
-?pop_back@JSONNode@@QEAA?AV1@_K@Z @1230 NONAME
-?preparse@JSONNode@@QEAAXXZ @1231 NONAME
-?push_back@JSONNode@@QEAAXAEBV1@@Z @1232 NONAME
-?rbegin@JSONNode@@QEAA?AUreverse_iterator@1@XZ @1233 NONAME
-?rbegin@JSONNode@@QEBA?AUreverse_const_iterator@1@XZ @1234 NONAME
-?rend@JSONNode@@QEAA?AUreverse_iterator@1@XZ @1235 NONAME
-?rend@JSONNode@@QEBA?AUreverse_const_iterator@1@XZ @1236 NONAME
-?reserve@JSONNode@@QEAAX_K@Z @1237 NONAME
-?set_name@JSONNode@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z @1238 NONAME
-?size@JSONNode@@QEBA_KXZ @1239 NONAME
-?swap@JSONNode@@QEAAXAEAV1@@Z @1240 NONAME
-?toUTF8@JSONWorker@@CA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@E@Z @1241 NONAME
-?type@JSONNode@@QEBAEXZ @1242 NONAME
-?write@JSONNode@@QEAA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ @1243 NONAME
-?write_formatted@JSONNode@@QEAA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ @1244 NONAME
-?isnull@JSONNode@@QEBA_NXZ @1245 NONAME
-??BJSONNode@@QEBA_NXZ @1246 NONAME
-?as_mstring@JSONNode@@QEBA?AV?$CMStringT@_WV?$ChTraitsCRT@_W@@@@XZ @1247 NONAME
-Bitmap_GetFilter @1248
-Bitmap_Load @1249
-CreateProtoServiceFunction @1250
-?SetSilent@CCtrlBase@@QEAAXXZ @1251 NONAME
-WindowList_Add @1252
-WindowList_Broadcast @1253
-WindowList_BroadcastAsync @1254
-WindowList_Create @1255
-WindowList_Destroy @1256
-WindowList_Find @1257
-WindowList_Remove @1258
+Bitmap_GetFilter @1099
+Bitmap_Load @1100
+CreateProtoServiceFunction @1101
+WindowList_Add @1102
+WindowList_Broadcast @1103
+WindowList_BroadcastAsync @1104
+WindowList_Create @1105
+WindowList_Destroy @1106
+WindowList_Find @1107
+WindowList_Remove @1108
+?SetSilent@CCtrlBase@@QEAAXXZ @1109 NONAME