acoliver 2002/07/14 19:06:22 Modified: src/java/org/apache/poi/hssf/model FormulaParser.java Log: patch from Eric Ladner to correct an out of bounds on the formula string http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10735 Revision Changes Path 1.2 +12 -2 jakarta-poi/src/java/org/apache/poi/hssf/model/FormulaParser.java Index: FormulaParser.java =================================================================== RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/model/FormulaParser.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- FormulaParser.java 15 Jul 2002 00:16:24 -0000 1.1 +++ FormulaParser.java 15 Jul 2002 02:06:22 -0000 1.2 @@ -79,6 +79,7 @@ * * @author Avik Sengupta <avik AT Avik Sengupta DOT com> * @author Andrew C. oliver (acoliver at apache dot org) + * @author Eric Ladner (eladner at goldinc dot com) */ public class FormulaParser { @@ -90,6 +91,7 @@ private String formulaString; private int pointer=0; + private int formulaLength; private List tokens = new java.util.Stack(); //private Stack tokens = new java.util.Stack(); @@ -113,11 +115,19 @@ formulaString = formula; pointer=0; this.book = book; + formulaLength = formulaString.length(); } /** Read New Character From Input Stream */ private void GetChar() { + // Check to see if we've walked off the end of the string. + // Just return if so and reset Look to smoething to keep + // SkipWhitespace from spinning + if (pointer == formulaLength) { + Look = (char)0; + return; + } Look=formulaString.charAt(pointer++); //System.out.println("Got char: "+Look); } @@ -420,8 +430,8 @@ while (IsAddop(Look)) { if ( Look == '+' ) Add(); if (Look == '-') Subtract(); - // if (Look == '*') Multiply(); - // if (Look == '/') Divide(); + if (Look == '*') Multiply(); + if (Look == '/') Divide(); } }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
