You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by pb...@apache.org on 2002/10/02 09:19:59 UTC
cvs commit: xml-fop/src/org/apache/fop/fo/expr PropertyTokenizer.java
pbwest 2002/10/02 00:19:59
Modified: src/org/apache/fop/fo/expr Tag: FOP_0-20-0_Alt-Design
PropertyTokenizer.java
Log:
Fixed bug in numeric unit handling.
Revision Changes Path
No revision
No revision
1.4.4.4 +31 -22 xml-fop/src/org/apache/fop/fo/expr/PropertyTokenizer.java
Index: PropertyTokenizer.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/expr/PropertyTokenizer.java,v
retrieving revision 1.4.4.3
retrieving revision 1.4.4.4
diff -u -r1.4.4.3 -r1.4.4.4
--- PropertyTokenizer.java 4 Jul 2002 00:59:40 -0000 1.4.4.3
+++ PropertyTokenizer.java 2 Oct 2002 07:19:59 -0000 1.4.4.4
@@ -72,8 +72,9 @@
*/
int currentToken = EOF;
String currentTokenValue = null;
- protected int currentUnitLength = 0;
+ protected int currentUnitIndex = 0;
protected int currentUnit;
+ protected String unitString;
protected String uri;
private int currentTokenStartIndex = 0;
@@ -96,6 +97,7 @@
expr = s;
exprLength = s.length();
this.property = property;
+ //System.out.println("-----Tokenizer initialized: " + expr);
}
/**
@@ -109,6 +111,15 @@
currentToken = EOF;
currentTokenValue = null;
property = 0;
+ //System.out.println("-----Tokenizer reset.");
+ }
+
+ /**
+ * Get the current expression
+ * @return - the expression.
+ */
+ public String getExpr() {
+ return expr;
}
/**
@@ -194,12 +205,11 @@
}
} else
bSawDecimal = false;
+ currentUnitIndex = exprIndex;
if (exprIndex < exprLength && expr.charAt(exprIndex) == '%') {
currentToken = PERCENT;
- currentTokenValue = expr.substring(currentTokenStartIndex,
- exprIndex);
+ unitString = "%";
exprIndex++;
- return;
} else {
// Check for possible unit name following number
currentToken = scanUnitName();
@@ -207,7 +217,7 @@
currentToken = bSawDecimal ? FLOAT : INTEGER;
}
currentTokenValue = expr.substring(currentTokenStartIndex,
- exprIndex);
+ currentUnitIndex);
return;
case '.':
@@ -343,49 +353,48 @@
* @exception PropertyException if an NCName not a UnitName recognized.
*/
private int scanUnitName() throws PropertyException {
- String unit;
- currentUnitLength = exprIndex;
+ currentUnitIndex = exprIndex;
scanName();
- if ((currentUnitLength = exprIndex - currentUnitLength) > 0) {
- unit = expr.substring(currentUnitLength, exprIndex);
- if (unit.equals("em")) return RELATIVE_LENGTH;
- if (unit.equals("cm")) {
+ if (currentUnitIndex < exprIndex) {
+ unitString = expr.substring(currentUnitIndex, exprIndex);
+ if (unitString.equals("em")) return RELATIVE_LENGTH;
+ if (unitString.equals("cm")) {
currentUnit = Length.CM;
return ABSOLUTE_LENGTH;
}
- if (unit.equals("mm")) {
+ if (unitString.equals("mm")) {
currentUnit = Length.MM;
return ABSOLUTE_LENGTH;
}
- if (unit.equals("in")) {
+ if (unitString.equals("in")) {
currentUnit = Length.IN;
return ABSOLUTE_LENGTH;
}
- if (unit.equals("pt")) {
+ if (unitString.equals("pt")) {
currentUnit = Length.PT;
return ABSOLUTE_LENGTH;
}
- if (unit.equals("pc")) {
+ if (unitString.equals("pc")) {
currentUnit = Length.PC;
return ABSOLUTE_LENGTH;
}
- if (unit.equals("px")) {
+ if (unitString.equals("px")) {
currentUnit = Length.PX;
return ABSOLUTE_LENGTH;
}
- if (unit.equals("s")) {
+ if (unitString.equals("s")) {
currentUnit = Time.SEC;
return TIME;
}
- if (unit.equals("ms")) {
+ if (unitString.equals("ms")) {
currentUnit = Time.MSEC;
return TIME;
}
- if (unit.equals("Hz")) {
+ if (unitString.equals("Hz")) {
currentUnit = Frequency.HZ;
return FREQ;
}
- if (unit.equals("kHz")) {
+ if (unitString.equals("kHz")) {
currentUnit = Frequency.KHZ;
return FREQ;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org