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