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]

Reply via email to