Added csv quoting
Build and Test API / Build-and-test-API (push) Successful in 54s
Details
Build and Test API / Build-and-test-API (push) Successful in 54s
Details
This commit is contained in:
parent
e8de8e8d59
commit
ae33f57a36
|
@ -136,6 +136,18 @@ private struct CSVOutputStream(S) if (isByteOutputStream!S) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void writeCell(string s) {
|
void writeCell(string s) {
|
||||||
|
import std.string;
|
||||||
|
import std.regex;
|
||||||
|
import std.algorithm : canFind, any;
|
||||||
|
const pattern = ctRegex!`\"`;
|
||||||
|
if (canFind(s, "\"")) {
|
||||||
|
s = replaceAll(s, pattern, "\"\"");
|
||||||
|
}
|
||||||
|
const escapeableChars = ["\"", ",", ",", "\\", "\n"];
|
||||||
|
bool shouldQuote = escapeableChars.any!(c => canFind(s, c));
|
||||||
|
if (shouldQuote) {
|
||||||
|
s = "\"" ~ s ~ "\"";
|
||||||
|
}
|
||||||
writeElement(s);
|
writeElement(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue