csv: bit faster writing csv.
parent
d7f9fe7600
commit
7cb973009a
|
@ -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>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue