Changeset: e5c67a23d7d6 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java?cmd=changeset;node=e5c67a23d7d6
Modified Files:
        src/main/java/nl/cwi/monetdb/mcl/parser/TupleLineParser.java
Branch: default
Log Message:

Fix for bug 6350


diffs (57 lines):

diff --git a/src/main/java/nl/cwi/monetdb/mcl/parser/TupleLineParser.java 
b/src/main/java/nl/cwi/monetdb/mcl/parser/TupleLineParser.java
--- a/src/main/java/nl/cwi/monetdb/mcl/parser/TupleLineParser.java
+++ b/src/main/java/nl/cwi/monetdb/mcl/parser/TupleLineParser.java
@@ -49,7 +49,7 @@ public class TupleLineParser extends MCL
                                throw new MCLParseException(values.length +
                                                " columns expected, but only 
single value found");
 
-                       // return the whole string but the leading =
+                       // return the whole string but without the leading =
                        values[0] = source.substring(1);
 
                        // reset colnr
@@ -60,9 +60,9 @@ public class TupleLineParser extends MCL
 
                // extract separate fields by examining string, char for char
                boolean inString = false, escaped = false;
-               int cursor = 2, column = 0, i = 2;
+               int cursor = 2, column = 0;
                StringBuilder uesc = new StringBuilder();
-               for (; i < len; i++) {
+               for (int i = 2; i < len; i++) {
                        switch(chrLine[i]) {
                                default:
                                        escaped = false;
@@ -109,15 +109,21 @@ public class TupleLineParser extends MCL
                                                        for (int pos = cursor + 
1; pos < i - 2; pos++) {
                                                                if 
(chrLine[pos] == '\\' && pos + 1 < i - 2) {
                                                                        pos++;
-                                                                       // 
strToStr and strFromStr in gdk_atoms.mx only
-                                                                       // 
support \t \n \\ \" and \377
+                                                                       // 
escapedStr and GDKstrFromStr in gdk_atoms.c only
+                                                                       // 
support \\ \f \n \r \t \" and \377
                                                                        switch 
(chrLine[pos]) {
                                                                                
case '\\':
                                                                                
        uesc.append('\\');
                                                                                
break;
+                                                                               
case 'f':
+                                                                               
        uesc.append('\f');
+                                                                               
break;
                                                                                
case 'n':
                                                                                
        uesc.append('\n');
                                                                                
break;
+                                                                               
case 'r':
+                                                                               
        uesc.append('\r');
+                                                                               
break;
                                                                                
case 't':
                                                                                
        uesc.append('\t');
                                                                                
break;
@@ -177,7 +183,7 @@ public class TupleLineParser extends MCL
 
                // reset colnr
                reset();
-               
+
                return 0;
        }
 }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to