From 0fcff887fe5a6e682da9ccd47a4e6c5927f332ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9as=20Livet?= Date: Fri, 17 Mar 2017 11:29:27 +0100 Subject: [PATCH 1/2] Avoid putting a space in empty comments In our pipeline, empty comments in po files are generated without a space after '#' and saving a po file using pofile lib generates unwanted diff that need to be handle manually which is really annoying. This pull request simply trim the comment line. --- lib/po.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/po.js b/lib/po.js index 623165f..a7f9c2c 100644 --- a/lib/po.js +++ b/lib/po.js @@ -20,12 +20,12 @@ PO.prototype.toString = function () { if (this.comments) { this.comments.forEach(function (comment) { - lines.push('# ' + comment); + lines.push(('# ' + comment).trim()); }); } if (this.extractedComments) { this.extractedComments.forEach(function (comment) { - lines.push('#. ' + comment); + lines.push(('#. ' + comment).trim()); }); } From 18a4cc0cb5ae35a921f2f4c446891a2cba8ae669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9as=20Livet?= Date: Mon, 20 Mar 2017 10:14:27 +0100 Subject: [PATCH 2/2] Add test to ensure no spaces are added on empty comments --- test/write.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/test/write.js b/test/write.js index c70244b..9304f49 100644 --- a/test/write.js +++ b/test/write.js @@ -2,12 +2,13 @@ var assert = require('assert'); var fs = require('fs'); var PO = require('..'); -function assertHasLine(str, line) { +function assertHasLine(str, line, doNotTrim) { var lines = str.split('\n'); var found = false; for (var i = 0; i < lines.length; i++) { - if (lines[i].trim() === line) { + var lineToCompare = doNotTrim ? lines[i] : lines[i].trim(); + if (lineToCompare === line) { found = true; break; } @@ -53,6 +54,13 @@ describe('Write', function () { assertHasLine(str, '#, fuzzy'); }); + it('write empty comment without an unecessary space', function () { + var input = fs.readFileSync(__dirname + '/fixtures/fuzzy.po', 'utf8'); + var po = PO.parse(input); + var str = po.toString(); + assertHasLine(str, '#', true); + }); + it('write flags only when true', function () { var input = fs.readFileSync(__dirname + '/fixtures/fuzzy.po', 'utf8'); var po = PO.parse(input);