csv: bit faster writing csv.

db4
John Benediktsson 2012-07-27 13:47:15 -07:00
parent d7f9fe7600
commit 7cb973009a
1 changed files with 6 additions and 8 deletions

View File

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