summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCédric Bosdonnat <cedric.bosdonnat.ooo@free.fr>2013-08-30 14:06:09 +0200
committerCédric Bosdonnat <cedric.bosdonnat.ooo@free.fr>2013-08-30 14:06:09 +0200
commita6fcdfbeaa925695a440ff7fc4be5eff16aacc78 (patch)
tree0485a1555e9de2608af41172d3c4b8e4262e6644
parent908c36f6829389f5dc0e214497af035c18971995 (diff)
libcmis: add a mandatory patch for GDrive feature to properly work
Change-Id: I1bd183508b7f481feed641f8658c0baea6f743bd
-rw-r--r--libcmis/UnpackedTarball_cmis.mk2
-rw-r--r--libcmis/libcmis-0.4.1.patch95
-rw-r--r--ucb/source/ucp/cmis/cmis_content.cxx2
3 files changed, 98 insertions, 1 deletions
diff --git a/libcmis/UnpackedTarball_cmis.mk b/libcmis/UnpackedTarball_cmis.mk
index 57864742c62d..0b2a9fbc261d 100644
--- a/libcmis/UnpackedTarball_cmis.mk
+++ b/libcmis/UnpackedTarball_cmis.mk
@@ -13,6 +13,8 @@ $(eval $(call gb_UnpackedTarball_set_tarball,cmis,$(CMIS_TARBALL)))
$(eval $(call gb_UnpackedTarball_set_patchlevel,cmis,0))
+$(eval $(call gb_UnpackedTarball_add_patches,cmis,libcmis/libcmis-0.4.1.patch))
+
ifeq ($(OS)$(COM),WNTMSC)
$(eval $(call gb_UnpackedTarball_add_patches,cmis,libcmis/boost-win.patch))
endif
diff --git a/libcmis/libcmis-0.4.1.patch b/libcmis/libcmis-0.4.1.patch
new file mode 100644
index 000000000000..214475fc575d
--- /dev/null
+++ b/libcmis/libcmis-0.4.1.patch
@@ -0,0 +1,95 @@
+diff --git src/libcmis/json-utils.cxx src/libcmis/json-utils.cxx
+index b537a09..b4e037d 100644
+--- src/libcmis/json-utils.cxx
++++ src/libcmis/json-utils.cxx
+@@ -213,48 +213,54 @@ Json::Type Json::parseType( )
+ {
+ Type type = json_string;
+ string str = toString( );
+- boost::posix_time::ptime time = libcmis::parseDateTime( str );
+- if ( !time.is_not_a_date_time( ) )
+- type = json_datetime;
+- else
++ if ( str.empty( ) )
++ return type;
++ try
+ {
+- Type backupType = type;
+- type = json_bool;
+- try
+- {
+- parseBool( str );
+- }
+- catch (...)
++ boost::posix_time::ptime time = libcmis::parseDateTime( str );
++ if ( !time.is_not_a_date_time( ) )
++ return json_datetime;
++ }
++ catch (...)
++ {
++ // Try other types
++ }
++ Type backupType = type;
++ type = json_bool;
++ try
++ {
++ parseBool( str );
++ }
++ catch (...)
++ {
++ type = backupType;
++ }
++ if ( type != json_bool )
++ {
++ if ( str.find('.') == string::npos )
+ {
+- type = backupType;
++ backupType = type;
++ type = json_int;
++ try
++ {
++ parseInteger( str );
++ }
++ catch(...)
++ {
++ type = backupType;
++ }
+ }
+- if ( type != json_bool )
++ else
+ {
+- if ( str.find('.') == string::npos )
++ backupType = type;
++ type = json_double;
++ try
+ {
+- backupType = type;
+- type = json_int;
+- try
+- {
+- parseInteger( str );
+- }
+- catch(...)
+- {
+- type = backupType;
+- }
++ parseDouble( str );
+ }
+- else
+- {
+- backupType = type;
+- type = json_double;
+- try
+- {
+- parseDouble( str );
+- }
+- catch(...)
+- {
+- type = backupType;
+- }
++ catch(...)
++ {
++ type = backupType;
+ }
+ }
+ }
diff --git a/ucb/source/ucp/cmis/cmis_content.cxx b/ucb/source/ucp/cmis/cmis_content.cxx
index 5b8451cff881..76d23b93da6e 100644
--- a/ucb/source/ucp/cmis/cmis_content.cxx
+++ b/ucb/source/ucp/cmis/cmis_content.cxx
@@ -174,7 +174,7 @@ namespace
bool bMultiValued = prop.MultiValued;
bool bOpenChoice = prop.OpenChoice;
uno::Any value = prop.Value;
- libcmis::PropertyType::Type type;
+ libcmis::PropertyType::Type type = libcmis::PropertyType::String;
if ( prop.Type == CMIS_TYPE_STRING )
type = libcmis::PropertyType::String;
else if ( prop.Type == CMIS_TYPE_BOOL )