]> gitweb.factorcode.org Git - factor.git/commitdiff
csv: bit faster writing csv.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 27 Jul 2012 20:47:15 +0000 (13:47 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 27 Jul 2012 20:47:15 +0000 (13:47 -0700)
basis/csv/csv.factor

index 7ae29913d95d6e8f68a57402fb3b3fb7aaff5377..2359c89a20f1b1f18a6ee49620d9380aff229006 100644 (file)
@@ -84,10 +84,8 @@ PRIVATE>
 
 <PRIVATE
 
-: needs-escaping? ( cell -- ? )
-    delimiter> '[
-        dup "\n\"" member? [ drop t ] [ _ = ] if
-    ] any? ; inline
+: needs-escaping? ( cell delimiter -- ? )
+    '[ dup "\n\"" member? [ drop t ] [ _ = ] if ] any? ; inline
 
 : escape-quotes ( cell -- cell' )
     [
@@ -100,13 +98,13 @@ PRIVATE>
 : enclose-in-quotes ( cell -- cell' )
     "\"" dup surround ; inline
 
-: escape-if-required ( cell -- cell' )
-    dup needs-escaping?
+: escape-if-required ( cell delimiter -- cell' )
+    dupd needs-escaping?
     [ escape-quotes enclose-in-quotes ] when ; inline
 
 : (write-row) ( row delimiter -- )
-    '[ _ write1 ]
-    [ escape-if-required write ] interleave nl ; inline
+    dup '[ _ write1 ] swap
+    '[ _ escape-if-required write ] interleave nl ; inline
 
 PRIVATE>