vcl/source/control/field.cxx |   18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

New commits:
commit 591e34f868cc3a3f3ce7927480d224f137bfd83c
Author: Laszlo Kis-Adam <dfighter1...@gmail.com>
Date:   Thu Mar 12 17:44:01 2015 +0100

    Support "a/b" style of fractions, not just "a b/c" style. Also fixes a 
crash.
    
    Change-Id: I67f57fc09be512b8827ce2b62ba8828e23f544bc
    Reviewed-on: https://gerrit.libreoffice.org/14842
    Tested-by: Jenkins <c...@libreoffice.org>
    Tested-by: Caolán McNamara <caol...@redhat.com>
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/source/control/field.cxx b/vcl/source/control/field.cxx
index fc83af0..cab79f5 100644
--- a/vcl/source/control/field.cxx
+++ b/vcl/source/control/field.cxx
@@ -115,9 +115,21 @@ static bool ImplNumericGetValue( const OUString& rStr, 
sal_Int64& rValue,
     {
         bFrac = true;
         nFracNumPos = aStr.lastIndexOf(' ', nFracDivPos);
-        aStr1.append(aStr.getStr(), nFracNumPos);
-        aStrNum.append(aStr.getStr()+nFracNumPos+1, nFracDivPos-nFracNumPos-1);
-        aStrDenom.append(aStr.getStr()+nFracDivPos+1);
+
+        // If in "a b/c" format.
+        if(nFracNumPos != -1 )
+        {
+            aStr1.append(aStr.getStr(), nFracNumPos);
+            aStrNum.append(aStr.getStr()+nFracNumPos+1, 
nFracDivPos-nFracNumPos-1);
+            aStrDenom.append(aStr.getStr()+nFracDivPos+1);
+        }
+        // "a/b" format, or not a fraction at all
+        else
+        {
+            aStrNum.append(aStr.getStr(), nFracDivPos);
+            aStrDenom.append(aStr.getStr()+nFracDivPos+1);
+        }
+
     }
     // parse decimal strings
     else if ( nDecPos >= 0)
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to