You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2022/12/26 16:15:39 UTC

svn commit: r1906217 - in /poi/trunk/poi/src: main/java/org/apache/poi/ss/formula/FormulaParser.java test/java/org/apache/poi/hssf/model/TestFormulaParser.java test/java/org/apache/poi/sl/draw/geom/TestFormulaParser.java

Author: centic
Date: Mon Dec 26 16:15:39 2022
New Revision: 1906217

URL: http://svn.apache.org/viewvc?rev=1906217&view=rev
Log:
Bug 66401: Handle escaped single-quote in formulas properly

Modified:
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/FormulaParser.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/model/TestFormulaParser.java
    poi/trunk/poi/src/test/java/org/apache/poi/sl/draw/geom/TestFormulaParser.java

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/FormulaParser.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/FormulaParser.java?rev=1906217&r1=1906216&r2=1906217&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/FormulaParser.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/FormulaParser.java Mon Dec 26 16:15:39 2022
@@ -1182,6 +1182,7 @@ public final class FormulaParser {
                         if (look == '\''){
                             // Any single quotes which were already present in the sheet name will be converted to double single quotes ('')
                             // so switch back to single quote
+                            sb.appendCodePoint(look);
                             nextChar();
                             break;
                         }

Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/model/TestFormulaParser.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/model/TestFormulaParser.java?rev=1906217&r1=1906216&r2=1906217&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/model/TestFormulaParser.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/model/TestFormulaParser.java Mon Dec 26 16:15:39 2022
@@ -645,7 +645,7 @@ final class TestFormulaParser {
         assertEquals(expectedClasses.length, ptgs.length);
         for (int i = 0; i < expectedClasses.length; i++) {
             assertSame(expectedClasses[i], ptgs[i].getClass(),
-                "difference at token[" + i + "]: expected ("
+                "difference at token[" + i + "] for Ptg " + ptgs[i] + ": expected ("
                 + expectedClasses[i].getName() + ") but got ("
                 + ptgs[i].getClass().getName() + ")");
         }
@@ -1357,6 +1357,17 @@ final class TestFormulaParser {
                 UnionPtg.class
         );
 
+        wb.createSheet("Sh't1");
+        ptgs = parse("'Sh''t1'!$A:$A,'Sh''t1'!$1:$4", wb);
+        confirmTokenClasses(ptgs,
+                MemFuncPtg.class,
+                Area3DPtg.class,
+                Area3DPtg.class,
+                UnionPtg.class
+        );
+        assertEquals(1, ((Area3DPtg)ptgs[1]).getExternSheetIndex());
+        assertEquals(1, ((Area3DPtg)ptgs[2]).getExternSheetIndex());
+
         wb.close();
     }
 

Modified: poi/trunk/poi/src/test/java/org/apache/poi/sl/draw/geom/TestFormulaParser.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/sl/draw/geom/TestFormulaParser.java?rev=1906217&r1=1906216&r2=1906217&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/sl/draw/geom/TestFormulaParser.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/sl/draw/geom/TestFormulaParser.java Mon Dec 26 16:15:39 2022
@@ -22,9 +22,6 @@ import static org.junit.jupiter.api.Asse
 
 import org.junit.jupiter.api.Test;
 
-/**
- * Date: 10/24/11
- */
 class TestFormulaParser {
     @Test
     void testParse(){



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org