--- CSV.py	Wed Nov  3 17:15:35 2004
+++ /home/tiago/lib/python/MoinMoin/processor/CSV.py	Wed Nov  3 22:21:47 2004
@@ -8,9 +8,13 @@
 
 Dependencies = []
 
+import csv
+
 def process(request, formatter, lines):
     # parse bangpath for arguments
     exclude = []
+    separator=';'
+    
     for arg in lines[0].split()[1:]:
         if arg[0] == '-':
             try:
@@ -19,6 +23,8 @@ def process(request, formatter, lines):
                 pass
             else:
                 exclude.append(idx-1)
+	else:
+    	    separator=arg
 
     # remove bang path, create output list
     del lines[0]
@@ -32,15 +38,16 @@ def process(request, formatter, lines):
         first = 0
         del lines[0]
 
+    reader = csv.reader(lines, delimiter=separator, quotechar='\'', escapechar='"')
     output.append(formatter.table(1))
-    for line in lines:
+    
+    for line in reader:
         output.append(formatter.table_row(1))
-        cells = line.split(';')
-        for idx in range(len(cells)):
+        for idx in range(len(line)):
             if idx in exclude: continue
             output.append(formatter.table_cell(1))
             if first: output.append(formatter.strong(1))
-            output.append(formatter.text(cells[idx]))
+            output.append(formatter.text(line[idx]))
             if first: output.append(formatter.strong(0))
             output.append(formatter.table_cell(0))
         output.append(formatter.table_row(0))
