hillion     01/11/21 07:22:00

  Modified:    sources/org/apache/batik/css/parser Scanner.java
               sources/org/apache/batik/parser AbstractParser.java
                        LengthParser.java NumberParser.java
               test-resources/org/apache/batik/parser unitTesting.xml
  Log:
  Fixed line/column numbers in parsers.
  
  Revision  Changes    Path
  1.10      +28 -21    xml-batik/sources/org/apache/batik/css/parser/Scanner.java
  
  Index: Scanner.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/css/parser/Scanner.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Scanner.java      2001/11/13 16:23:17     1.9
  +++ Scanner.java      2001/11/21 15:22:00     1.10
  @@ -16,7 +16,7 @@
    * units.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stephane Hillion</a>
  - * @version $Id: Scanner.java,v 1.9 2001/11/13 16:23:17 hillion Exp $
  + * @version $Id: Scanner.java,v 1.10 2001/11/21 15:22:00 hillion Exp $
    */
   public class Scanner {
   
  @@ -33,7 +33,7 @@
       /**
        * The current column.
        */
  -    protected int column = 1;
  +    protected int column;
   
       /**
        * The current char.
  @@ -1199,12 +1199,10 @@
        * end of stream has been reached.
        */
       protected int nextChar() throws IOException {
  -        if ((readPosition == readCount) && (!fillReadBuffer())) {
  +        if (readPosition == readCount && !fillReadBuffer()) {
               return current = -1;
           }
   
  -        current = readBuffer[readPosition++];
  -
           if (current != 10) {
               column++;
           } else {
  @@ -1212,6 +1210,8 @@
               column = 1;
           }
   
  +        current = readBuffer[readPosition++];
  +
           if (position == buffer.length) {
               char[] t = new char[position * 3 / 2];
               System.arraycopy(buffer, 0, t, 0, position);
  @@ -1221,11 +1221,12 @@
           return buffer[position++] = (char)current;
       }
   
  -    protected final boolean fillReadBuffer() throws IOException {
  +    private boolean fillReadBuffer() throws IOException {
           if (readCount != 0) {
               if (readPosition == readCount) {
                   readBuffer[0] = readBuffer[readCount-1];
  -                readCount=readPosition=1;
  +                readCount = 1;
  +                readPosition = 1;
               } else {
                   // we keep the last char in our readBuffer.
                   System.arraycopy(readBuffer, readPosition-1, readBuffer, 0, 
  @@ -1236,46 +1237,52 @@
           }
   
           // No reader so can't extend...
  -        if (reader == null)
  +        if (reader == null) {
               return (readCount != readPosition);
  +        }
                       
           // remember where the fill starts...
  -        int src=readCount-1;
  -        if (src < 0) src = 0;
  +        int src = readCount - 1;
  +        if (src < 0) {
  +            src = 0;
  +        }
   
           // Refill the readBuffer...
           int read = reader.read(readBuffer, readCount, 
                                  readBuffer.length-readCount);
  -        if (read == -1)
  -            return (readCount != readPosition);
  -
  -        readCount+=read; // add in chars read.
  +        if (read == -1) {
  +            return readCount != readPosition;
  +        }
   
  -        
  +        readCount += read; // add in chars read.
           collapseCRNL(src); // Now collapse cr/nl...
   
  -        return (readCount != readPosition);
  +        return readCount != readPosition;
       }
   
  -    protected final void collapseCRNL(int src) {
  +    private void collapseCRNL(int src) {
           // Now collapse cr/nl...
  -        while (src<readCount) {
  +        while (src < readCount) {
               if (readBuffer[src] != 13) {
                   src++;
               } else {
                   readBuffer[src] = 10;
                   src++;
  -                if (src>=readCount) break;
  +                if (src >= readCount) {
  +                    break;
  +                }
                   if (readBuffer[src] == 10) {
                       // We now need to collapse some of the chars to
                       // eliminate cr/nl pairs.  This is where we do it...
                       int dst = src; // start writing where this 10 is
                       src++; // skip reading this 10.
  -                    while (src<readCount) {
  +                    while (src < readCount) {
                           if (readBuffer[src] == 13) {
                               readBuffer[dst++] = 10;
                               src++;
  -                            if (src>=readCount) break;
  +                            if (src >= readCount) {
  +                                break;
  +                            }
                               if (readBuffer[src] == 10) {
                                   src++;
                               }
  
  
  
  1.5       +82 -47    xml-batik/sources/org/apache/batik/parser/AbstractParser.java
  
  Index: AbstractParser.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/parser/AbstractParser.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AbstractParser.java       2001/11/08 23:02:43     1.4
  +++ AbstractParser.java       2001/11/21 15:22:00     1.5
  @@ -24,7 +24,7 @@
    * and error handling methods.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stephane Hillion</a>
  - * @version $Id: AbstractParser.java,v 1.4 2001/11/08 23:02:43 deweese Exp $
  + * @version $Id: AbstractParser.java,v 1.5 2001/11/21 15:22:00 hillion Exp $
    */
   public abstract class AbstractParser implements Parser {
   
  @@ -58,7 +58,7 @@
       /**
        * The current column.
        */
  -    protected int column = 1;
  +    protected int column;
   
       /**
        * The buffer.
  @@ -80,7 +80,6 @@
        */
       protected int current;
   
  -
       /**
        * Returns the current character value.
        */
  @@ -143,8 +142,7 @@
       public void parse(String s)  throws ParseException {
           reader = null;
           buffer = s.toCharArray();
  -        position=0;
  -        count=buffer.length;
  +        count = buffer.length;
           collapseCRNL(0, count);
   
           doParse();
  @@ -158,23 +156,27 @@
   
       protected final void collapseCRNL(int src, int end) {
           // Now collapse cr/nl...
  -        while(src<end) {
  +        while (src < end) {
               if (buffer[src] != 13) {
                   src++;
               } else {
                   buffer[src] = 10;
                   src++;
  -                if (src>=end) break;
  +                if (src >= end) {
  +                    break;
  +                }
                   if (buffer[src] == 10) {
                       // We now need to collapse some of the chars to
                       // eliminate cr/nl pairs.  This is where we do it...
                       int dst = src; // start writing where this 10 is
                       src++; // skip reading this 10.
  -                    while (src<end) {
  +                    while (src < end) {
                           if (buffer[src] == 13) {
                               buffer[dst++] = 10;
                               src++;
  -                            if (src>=end) break;
  +                            if (src >= end) {
  +                                break;
  +                            }
                               if (buffer[src] == 10) {
                                   src++;
                               }
  @@ -193,23 +195,27 @@
           try {
               if (count != 0) {
                   if (position == count) {
  -                    buffer[0] = buffer[count-1];
  -                    count=position=1;
  +                    buffer[0] = buffer[count - 1];
  +                    count = 1;
  +                    position = 1;
                   } else {
                       // we keep the last char in our buffer.
  -                    System.arraycopy(buffer, position-1, buffer, 0, 
  -                                     count-position+1);
  -                    count = (count-position)+1;
  +                    System.arraycopy(buffer, position - 1, buffer, 0, 
  +                                     count - position + 1);
  +                    count = (count - position) + 1;
                       position = 1;
                   }
               }
   
  -            if (reader == null)
  +            if (reader == null) {
                   return (count != position);
  -                    
  +            }
  +            
               // remember where the fill starts...
  -            int src=count-1;
  -            if (src < 0) src = 0;
  +            int src = count - 1;
  +            if (src < 0) {
  +                src = 0;
  +            }
   
               // Refill the buffer...
               int read = reader.read(buffer, count, buffer.length-count);
  @@ -217,13 +223,12 @@
                   return (count != position);
               }
   
  -            count+=read; // add in chars read.
  +            count += read; // add in chars read.
               collapseCRNL(src, count);
           } catch (IOException e) {
               errorHandler.error
                   (new ParseException
  -                    (createErrorMessage("io.exception", null),
  -                     e));
  +                    (createErrorMessage("io.exception", null), e));
           }
           return (count != position);
       }
  @@ -233,19 +238,19 @@
        * value.
        */
       protected void read() {
  -        if ((position == count) && (!fillBuffer())) {
  +        if (position == count && !fillBuffer()) {
               current = -1;
               return;
           }
   
  -        current = buffer[position++];
  -
           if (current == 10) {
               line++;
               column = 1;
           } else {
               column++;
           }
  +
  +        current = buffer[position++];
       }
   
       /**
  @@ -294,16 +299,24 @@
           case 0xA:
           }
           for (;;) {
  -            if ((position == count) && (!fillBuffer())) {
  +            if (position == count && !fillBuffer()) {
                   current = -1;
                   return;
               }
  +
  +            if (current == 10) {
  +                line++;
  +                column = 1;
  +            } else {
  +                column++;
  +            }
  +
               current = buffer[position++];
   
               switch (current) {
  -            default:             return;
  -            case 0x20: case 0x09: column++; break;
  -            case 0x0D: case 0x0A: line++; column=0; break;
  +            default:
  +                return;
  +            case 0x20: case 0x09: case 0x0D: case 0x0A:
               }
           }
       }
  @@ -312,51 +325,73 @@
        * Skips the whitespaces and an optional comma.
        */
       protected void skipCommaSpaces() {
  -        // Check current char...
           switch (current) {
  -        default: return;
  -        case 0x20: case 0x09: case 0x0D: case 0x0A: break; // nl/cr, spc, tab
  +        default:
  +            return;
  +        case 0x20: case 0x09: case 0x0D: case 0x0A:
  +            break;
           case ',': 
  -            // for a comma just eat rest of ws.
               for(;;) {
  -                if ((position == count) && (!fillBuffer())) {
  +                if (position == count && !fillBuffer()) {
                       current = -1;
                       return;
                   }
  +
  +                if (current == 10) {
  +                    line++;
  +                    column = 1;
  +                } else {
  +                    column++;
  +                }
  +
                   current = buffer[position++];
  +
                   switch (current) {
  -                default:                                return; 
  -                case 0x20: case 0x09: column++;         break; // space/tab
  -                case 0x0D: case 0x0A: line++; column=0; break; // nl/cr
  +                default:
  +                    return;
  +                case 0x20: case 0x09: case 0x0D: case 0x0A:
                   }
               }
           }
   
           for(;;) {
  -            // After current char we need to take care to increment line
  -            // and column...
  -            if ((position == count) && (!fillBuffer())) {
  +            if (position == count && !fillBuffer()) {
                   current = -1;
                   return;
               }
  +
  +            if (current == 10) {
  +                line++;
  +                column = 1;
  +            } else {
  +                column++;
  +            }
  +
               current = buffer[position++];
   
               switch (current) {
  -            default:                                return;
  -            case 0x20: case 0x09: column++;         break; // space tab
  -            case 0x0D: case 0x0A: line++; column=0; break; // nl cr
  +            default:
  +                return;
  +            case 0x20: case 0x09: case 0x0D: case 0x0A:
  +                break;
               case ',':
  -                // for a comma just eat rest of ws.
                   for(;;) {
  -                    if ((position == count) && (!fillBuffer())) {
  +                    if (position == count && !fillBuffer()) {
                           current = -1;
                           return;
                       }
  +
  +                    if (current == 10) {
  +                        line++;
  +                        column = 1;
  +                    } else {
  +                        column++;
  +                    }
                       current = buffer[position++];
                       switch (current) {
  -                    default:                                return; 
  -                    case 0x20: case 0x09: column++;         break;
  -                    case 0x0D: case 0x0A: line++; column=0; break;
  +                    default:
  +                        return; 
  +                    case 0x20: case 0x09: case 0x0D: case 0x0A:
                       }
                   }
               }
  
  
  
  1.7       +11 -41    xml-batik/sources/org/apache/batik/parser/LengthParser.java
  
  Index: LengthParser.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/parser/LengthParser.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- LengthParser.java 2001/11/19 13:39:56     1.6
  +++ LengthParser.java 2001/11/21 15:22:00     1.7
  @@ -15,7 +15,7 @@
    * values.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stephane Hillion</a>
  - * @version $Id: LengthParser.java,v 1.6 2001/11/19 13:39:56 hillion Exp $
  + * @version $Id: LengthParser.java,v 1.7 2001/11/21 15:22:00 hillion Exp $
    */
   public class LengthParser extends AbstractParser {
   
  @@ -93,14 +93,11 @@
                   current = -1;
                   break;
               }
  -            current = buffer[position++];
               column++;
  +            current = buffer[position++];
           }
   
           m1: switch (current) {
  -        case 10:
  -            line++;
  -            column = 1;
           default:
               reportError("character.unexpected",
                           new Object[] { new Integer(current) });
  @@ -115,16 +112,13 @@
                   if (position == count && !fillBuffer()) {
                       current = -1;
                   } else {
  -                    current = buffer[position++];
                       column++;
  +                    current = buffer[position++];
                   }
                   switch (current) {
                   case '1': case '2': case '3': case '4': 
                   case '5': case '6': case '7': case '8': case '9': 
                       break l;
  -                case 10:
  -                    line++;
  -                    column = 1;
                   default:
                       break m1;
                   case '0':
  @@ -144,13 +138,10 @@
                   if (position == count && !fillBuffer()) {
                       current = -1;
                   } else {
  -                    current = buffer[position++];
                       column++;
  +                    current = buffer[position++];
                   }
                   switch (current) {
  -                case 10:
  -                    line++;
  -                    column = 1;
                   default:
                       break l;
                   case '0': case '1': case '2': case '3': case '4': 
  @@ -163,13 +154,10 @@
               if (position == count && !fillBuffer()) {
                   current = -1;
               } else {
  -                current = buffer[position++];
                   column++;
  +                current = buffer[position++];
               }
               m2: switch (current) {
  -            case 10:
  -                line++;
  -                column = 1;
               default:
               case 'e': case 'E':
                   if (!mantRead) {
  @@ -185,17 +173,14 @@
                           if (position == count && !fillBuffer()) {
                               current = -1;
                           } else {
  -                            current = buffer[position++];
                               column++;
  +                            current = buffer[position++];
                           }
                           expAdj--;
                           switch (current) {
                           case '1': case '2': case '3': case '4': 
                           case '5': case '6': case '7': case '8': case '9': 
                               break l;
  -                        case 10:
  -                            line++;
  -                            column = 1;
                           default:
                               break m2;
                           case '0':
  @@ -213,13 +198,10 @@
                       if (position == count && !fillBuffer()) {
                           current = -1;
                       } else {
  -                        current = buffer[position++];
                           column++;
  +                        current = buffer[position++];
                       }
                       switch (current) {
  -                    case 10:
  -                        line++;
  -                        column = 1;
                       default:
                           break l;
                       case '0': case '1': case '2': case '3': case '4': 
  @@ -237,13 +219,10 @@
               if (position == count && !fillBuffer()) {
                   current = -1;
               } else {
  -                current = buffer[position++];
                   column++;
  +                current = buffer[position++];
               }
               switch (current) {
  -            case 10:
  -                line++;
  -                column = 1;
               default:
                   reportError("character.unexpected",
                               new Object[] { new Integer(current) });
  @@ -270,13 +249,10 @@
                   if (position == count && !fillBuffer()) {
                       current = -1;
                   } else {
  -                    current = buffer[position++];
                       column++;
  +                    current = buffer[position++];
                   }
                   switch (current) {
  -                case 10:
  -                    line++;
  -                    column = 1;
                   default:
                       reportError("character.unexpected",
                                   new Object[] { new Integer(current) });
  @@ -294,16 +270,13 @@
                       if (position == count && !fillBuffer()) {
                           current = -1;
                       } else {
  -                        current = buffer[position++];
                           column++;
  +                        current = buffer[position++];
                       }
                       switch (current) {
                       case '1': case '2': case '3': case '4': 
                       case '5': case '6': case '7': case '8': case '9': 
                           break l;
  -                    case 10:
  -                        line++;
  -                        column = 1;
                       default:
                           break en;
                       case '0':
  @@ -320,13 +293,10 @@
                       if (position == count && !fillBuffer()) {
                           current = -1;
                       } else {
  -                        current = buffer[position++];
                           column++;
  +                        current = buffer[position++];
                       }
                       switch (current) {
  -                    case 10:
  -                        line++;
  -                        column = 1;
                       default:
                           break l;
                       case '0': case '1': case '2': case '3': case '4': 
  
  
  
  1.5       +30 -51    xml-batik/sources/org/apache/batik/parser/NumberParser.java
  
  Index: NumberParser.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/parser/NumberParser.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- NumberParser.java 2001/11/19 13:39:56     1.4
  +++ NumberParser.java 2001/11/21 15:22:00     1.5
  @@ -15,7 +15,7 @@
    * This class represents a parser with support for numbers.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stephane Hillion</a>
  - * @version $Id: NumberParser.java,v 1.4 2001/11/19 13:39:56 hillion Exp $
  + * @version $Id: NumberParser.java,v 1.5 2001/11/21 15:22:00 hillion Exp $
    */
   public abstract class NumberParser extends AbstractParser {
   
  @@ -41,14 +41,11 @@
                   current = -1;
                   break;
               }
  -            current = buffer[position++];
               column++;
  +            current = buffer[position++];
           }
   
           m1: switch (current) {
  -        case 10:
  -            line++;
  -            column = 1;
           default:
               reportError("character.unexpected",
                           new Object[] { new Integer(current) });
  @@ -63,8 +60,8 @@
                   if (position == count && !fillBuffer()) {
                       current = -1;
                   } else {
  -                    current = buffer[position++];
                       column++;
  +                    current = buffer[position++];
                   }
                   switch (current) {
                   case '1': case '2': case '3': case '4': 
  @@ -72,9 +69,6 @@
                       break l;
                   case '.': case 'e': case 'E':
                       break m1;
  -                case 10:
  -                    line++;
  -                    column = 1;
                   default:
                       return 0f;
                   case '0':
  @@ -94,13 +88,10 @@
                   if (position == count && !fillBuffer()) {
                       current = -1;
                   } else {
  -                    current = buffer[position++];
                       column++;
  +                    current = buffer[position++];
                   }
                   switch (current) {
  -                case 10:
  -                    line++;
  -                    column = 1;
                   default:
                       break l;
                   case '0': case '1': case '2': case '3': case '4': 
  @@ -113,13 +104,10 @@
               if (position == count && !fillBuffer()) {
                   current = -1;
               } else {
  -                current = buffer[position++];
                   column++;
  +                current = buffer[position++];
               }
               m2: switch (current) {
  -            case 10:
  -                line++;
  -                column = 1;
               default:
               case 'e': case 'E':
                   if (!mantRead) {
  @@ -135,17 +123,14 @@
                           if (position == count && !fillBuffer()) {
                               current = -1;
                           } else {
  -                            current = buffer[position++];
                               column++;
  +                            current = buffer[position++];
                           }
                           expAdj--;
                           switch (current) {
                           case '1': case '2': case '3': case '4': 
                           case '5': case '6': case '7': case '8': case '9': 
                               break l;
  -                        case 10:
  -                            line++;
  -                            column = 1;
                           default:
                               if (!mantRead) {
                                   return 0f;
  @@ -166,13 +151,10 @@
                       if (position == count && !fillBuffer()) {
                           current = -1;
                       } else {
  -                        current = buffer[position++];
                           column++;
  +                        current = buffer[position++];
                       }
                       switch (current) {
  -                    case 10:
  -                        line++;
  -                        column = 1;
                       default:
                           break l;
                       case '0': case '1': case '2': case '3': case '4': 
  @@ -187,13 +169,10 @@
               if (position == count && !fillBuffer()) {
                   current = -1;
               } else {
  -                current = buffer[position++];
                   column++;
  +                current = buffer[position++];
               }
               switch (current) {
  -            case 10:
  -                line++;
  -                column = 1;
               default:
                   reportError("character.unexpected",
                               new Object[] { new Integer(current) });
  @@ -204,13 +183,10 @@
                   if (position == count && !fillBuffer()) {
                       current = -1;
                   } else {
  -                    current = buffer[position++];
                       column++;
  +                    current = buffer[position++];
                   }
                   switch (current) {
  -                case 10:
  -                    line++;
  -                    column = 1;
                   default:
                       reportError("character.unexpected",
                                   new Object[] { new Integer(current) });
  @@ -228,16 +204,13 @@
                       if (position == count && !fillBuffer()) {
                           current = -1;
                       } else {
  -                        current = buffer[position++];
                           column++;
  +                        current = buffer[position++];
                       }
                       switch (current) {
                       case '1': case '2': case '3': case '4': 
                       case '5': case '6': case '7': case '8': case '9': 
                           break l;
  -                    case 10:
  -                        line++;
  -                        column = 1;
                       default:
                           break en;
                       case '0':
  @@ -254,13 +227,10 @@
                       if (position == count && !fillBuffer()) {
                           current = -1;
                       } else {
  -                        current = buffer[position++];
                           column++;
  +                        current = buffer[position++];
                       }
                       switch (current) {
  -                    case 10:
  -                        line++;
  -                        column = 1;
                       default:
                           break l;
                       case '0': case '1': case '2': case '3': case '4': 
  @@ -282,20 +252,29 @@
           return buildFloat(mant, exp);
       }
   
  +    /**
  +     * Computes a float from mantissa and exponent.
  +     */
       public static float buildFloat(int mant, int exp) {
  -        if ((exp < -125) || (mant==0)) return 0f;
  +        if (exp < -125 || mant == 0) {
  +            return 0f;
  +        }
  +
           if (exp >  128) {
  -            if (mant > 0) return Float.POSITIVE_INFINITY;
  -            else          return Float.NEGATIVE_INFINITY;
  +            return (mant > 0)
  +                ? Float.POSITIVE_INFINITY
  +                : Float.NEGATIVE_INFINITY;
           }
   
  -        if (exp == 0) return mant;
  +        if (exp == 0) {
  +            return mant;
  +        }
               
  -        if (mant >= 1<<26)
  +        if (mant >= 1 << 26) {
               mant++;  // round up trailing bits if they will be dropped.
  +        }
   
  -        if (exp >  0) return mant*pow10[exp];
  -        else          return mant/pow10[-exp];
  +        return (exp > 0) ? mant * pow10[exp] : mant / pow10[-exp];
       }
   
       /**
  @@ -303,8 +282,8 @@
        */
       private static final float pow10[] = new float [128];
       static {
  -      for (int i=0; i<pow10.length; i++) {
  -        pow10[i] = (float)Math.pow(10, i);
  -      }
  +        for (int i = 0; i < pow10.length; i++) {
  +            pow10[i] = (float)Math.pow(10, i);
  +        }
       };
   }
  
  
  
  1.3       +2 -2      xml-batik/test-resources/org/apache/batik/parser/unitTesting.xml
  
  Index: unitTesting.xml
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/test-resources/org/apache/batik/parser/unitTesting.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- unitTesting.xml   2001/11/19 13:39:56     1.2
  +++ unitTesting.xml   2001/11/21 15:22:00     1.3
  @@ -8,7 +8,7 @@
   
   <!-- ========================================================================= -->
   <!-- @author [EMAIL PROTECTED]                                              -->
  -<!-- @version $Id: unitTesting.xml,v 1.2 2001/11/19 13:39:56 hillion Exp $  -->
  +<!-- @version $Id: unitTesting.xml,v 1.3 2001/11/21 15:22:00 hillion Exp $  -->
   <!-- ========================================================================= -->
   <testSuite id="parser.unitTesting" name="org.apache.batik.parser package - Unit 
Testing">
   
  @@ -336,7 +336,7 @@
       </test>
   
       <test id="transformParser10" 
class="org.apache.batik.parser.TransformListParserTest">
  -        <arg class="java.lang.String" value="scale(1),skewX(2) translate(3,4)" />
  +        <arg class="java.lang.String" value="scale(1) , skewX(2) translate(3,4)" />
           <arg class="java.lang.String" value="scale(1.0) skewX(2.0) translate(3.0, 
4.0)"/>
       </test>
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to