[Libreoffice-commits] core.git: unotools/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Sun Jan 27 22:10:37 UTC 2019


 unotools/source/misc/datetime.cxx |   38 ++++++++++++++++----------------------
 1 file changed, 16 insertions(+), 22 deletions(-)

New commits:
commit 3c2cd4829229a312e79cfba3971b954bd605681c
Author:     Matteo Casalin <matteo.casalin at yahoo.com>
AuthorDate: Sat Jan 26 00:44:26 2019 +0100
Commit:     Matteo Casalin <matteo.casalin at yahoo.com>
CommitDate: Sun Jan 27 23:10:13 2019 +0100

    Bail out early
    
    Change-Id: I7851f4952ca2c863d92fd14fa19005ed35634033
    Reviewed-on: https://gerrit.libreoffice.org/66941
    Tested-by: Jenkins
    Reviewed-by: Matteo Casalin <matteo.casalin at yahoo.com>

diff --git a/unotools/source/misc/datetime.cxx b/unotools/source/misc/datetime.cxx
index 7a843db7a34a..7ebfd543c681 100644
--- a/unotools/source/misc/datetime.cxx
+++ b/unotools/source/misc/datetime.cxx
@@ -349,35 +349,29 @@ bool ISO8601parseDateTime(const OUString &rString, css::util::DateTime& rDateTim
 bool ISO8601parseDate(const OUString &aDateStr, css::util::Date& rDate)
 {
     const sal_Int32 nDateTokens {comphelper::string::getTokenCount(aDateStr, '-')};
-    bool bSuccess = true;
+
+    if (nDateTokens<1 || nDateTokens>3)
+        return false;
 
     sal_Int32 nYear    = 1899;
     sal_Int32 nMonth   = 12;
     sal_Int32 nDay     = 30;
 
-    if ( nDateTokens > 3 || aDateStr.isEmpty() )
-        bSuccess = false;
-    else
-    {
-        sal_Int32 n = 0;
-        if ( !convertNumber32( nYear, aDateStr.getToken( 0, '-', n ), 0, 9999 ) )
-            bSuccess = false;
-        if ( nDateTokens >= 2 )
-            if ( !convertNumber32( nMonth, aDateStr.getToken( 0, '-', n ), 0, 12 ) )
-                bSuccess = false;
-        if ( nDateTokens >= 3 )
-            if ( !convertNumber32( nDay, aDateStr.getToken( 0, '-', n ), 0, 31 ) )
-                bSuccess = false;
-    }
+    sal_Int32 nIdx {0};
+    if ( !convertNumber32( nYear, aDateStr.getToken( 0, '-', nIdx ), 0, 9999 ) )
+        return false;
+    if ( nDateTokens >= 2 )
+        if ( !convertNumber32( nMonth, aDateStr.getToken( 0, '-', nIdx ), 0, 12 ) )
+            return false;
+    if ( nDateTokens >= 3 )
+        if ( !convertNumber32( nDay, aDateStr.getToken( 0, '-', nIdx ), 0, 31 ) )
+            return false;
 
-    if (bSuccess)
-    {
-        rDate.Year = static_cast<sal_uInt16>(nYear);
-        rDate.Month = static_cast<sal_uInt16>(nMonth);
-        rDate.Day = static_cast<sal_uInt16>(nDay);
-    }
+    rDate.Year = static_cast<sal_uInt16>(nYear);
+    rDate.Month = static_cast<sal_uInt16>(nMonth);
+    rDate.Day = static_cast<sal_uInt16>(nDay);
 
-    return bSuccess;
+    return true;
 }
 
 /** convert ISO8601 Time String to util::Time */


More information about the Libreoffice-commits mailing list