diff options
Diffstat (limited to 'external/libcmis/libcmis-0.4.1.patch')
-rw-r--r-- | external/libcmis/libcmis-0.4.1.patch | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/external/libcmis/libcmis-0.4.1.patch b/external/libcmis/libcmis-0.4.1.patch new file mode 100644 index 000000000000..214475fc575d --- /dev/null +++ b/external/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; + } + } + } |