diff --git a/lib/po.js b/lib/po.js index 06c61fd..e22db97 100644 --- a/lib/po.js +++ b/lib/po.js @@ -261,7 +261,8 @@ PO.Item.prototype.toString = function () { }); } else { text = isArray(text) ? text.join() : text; - lines = lines.concat(mkObsolete + _process(keyword, text)); + var processed = _process(keyword, text); + lines = lines.concat(mkObsolete + processed.join('\n' + mkObsolete)); } } }); diff --git a/test/write.js b/test/write.js index d982b3a..dd319ad 100644 --- a/test/write.js +++ b/test/write.js @@ -92,6 +92,15 @@ describe('Write', function () { assertHasLine(item.toString(), 'msgid "\\\\ should be written escaped"'); }); + it('should escape \\n', function () { + var item = new PO.Item(); + + item.msgid = '\n should be written escaped'; + assertHasLine(item.toString(), 'msgid ""'); + assertHasLine(item.toString(), '""'); + assertHasLine(item.toString(), '" should be written escaped"'); + }); + it('should write identical file after parsing a file', function () { var input = fs.readFileSync(__dirname + '/fixtures/c-strings.po', 'utf8'); var po = PO.parse(input);