# HG changeset patch # User František Kučera # Date 1557607669 -7200 # Node ID bc20d499a45837646a1da7874ae130b06d5b424e # Parent 98acfdc4c20b16a115cf2c8db29ffa5f22da3c73 value escaping in c++ diff -r 98acfdc4c20b -r bc20d499a458 src/AwkHandler.h --- a/src/AwkHandler.h Fri May 10 00:45:37 2019 +0200 +++ b/src/AwkHandler.h Sat May 11 22:47:49 2019 +0200 @@ -152,8 +152,14 @@ } string_t escapeAwkValue(const string_t& value) { - // FIXME: escape field and record separators - return value; + std::wstringstream escaped; + for (wchar_t ch : value) { + if (ch == '\t') escaped << L"\\t"; + else if (ch == '\n') escaped << L"\\n"; + else if (ch == '\\') escaped << L"\\\\"; + else escaped << ch; + } + return escaped.str(); } void processAwkOutput(int awkOutputReaderFD) {