libcmis: add a mandatory patch for GDrive feature to properly work
Change-Id: I1bd183508b7f481feed641f8658c0baea6f743bd
This commit is contained in:
@@ -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
|
||||
|
95
libcmis/libcmis-0.4.1.patch
Normal file
95
libcmis/libcmis-0.4.1.patch
Normal file
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@@ -171,7 +171,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 )
|
||||
|
Reference in New Issue
Block a user