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