Author: mbenson
Date: Mon Jul 23 15:32:42 2007
New Revision: 558885
URL: http://svn.apache.org/viewvc?view=rev&rev=558885
Log:
use strategy encapsulator in printer rather than assuming double-quote
Modified:
jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/CSVPrinter.java
Modified:
jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/CSVPrinter.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/CSVPrinter.java?view=diff&rev=558885&r1=558884&r2=558885
==============================================================================
---
jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/CSVPrinter.java
(original)
+++
jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/CSVPrinter.java
Mon Jul 23 15:32:42 2007
@@ -250,7 +250,7 @@
* @param value needs to be escaped and quoted
* @return the value, escaped and quoted
*/
- private static String escapeAndQuote(String value) {
+ private String escapeAndQuote(String value) {
// the initial count is for the preceding and trailing quotes
int count = 2;
for (int i = 0; i < value.length(); i++) {
@@ -266,13 +266,15 @@
}
}
StringBuffer sb = new StringBuffer(value.length() + count);
- sb.append('"');
+ sb.append(strategy.getEncapsulator());
for (int i = 0; i < value.length(); i++) {
char c = value.charAt(i);
+
+ if (c == strategy.getEncapsulator()) {
+ sb.append('\\').append(c);
+ continue;
+ }
switch (c) {
- case '\"' :
- sb.append("\\\"");
- break;
case '\n' :
sb.append("\\n");
break;
@@ -286,7 +288,7 @@
sb.append(c);
}
}
- sb.append('"');
+ sb.append(strategy.getEncapsulator());
return sb.toString();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]