From 580d6d3301cbcc11bc74ff4e9e83b6b426235692 Mon Sep 17 00:00:00 2001 From: Nate Fischer Date: Sun, 31 Jan 2016 00:07:53 -0800 Subject: [PATCH] fix(cat): make behavior more like unix `cat()` no longer puts '\n's in weird places (causing double newlines), and no longer improperly strips off a trailing newline. --- src/cat.js | 5 +---- test/cat.js | 12 ++++++------ test/resources/cat/file1 | 1 + test/resources/cat/file2 | 1 + 4 files changed, 9 insertions(+), 10 deletions(-) create mode 100644 test/resources/cat/file1 create mode 100644 test/resources/cat/file2 diff --git a/src/cat.js b/src/cat.js index f6f4d25..5840b4e 100644 --- a/src/cat.js +++ b/src/cat.js @@ -32,12 +32,9 @@ function _cat(options, files) { if (!fs.existsSync(file)) common.error('no such file or directory: ' + file); - cat += fs.readFileSync(file, 'utf8') + '\n'; + cat += fs.readFileSync(file, 'utf8'); }); - if (cat[cat.length-1] === '\n') - cat = cat.substring(0, cat.length-1); - return common.ShellString(cat); } module.exports = _cat; diff --git a/test/cat.js b/test/cat.js index cde24c4..dc0a8fe 100644 --- a/test/cat.js +++ b/test/cat.js @@ -24,19 +24,19 @@ assert.ok(shell.error()); // // simple -var result = shell.cat('resources/file1'); +var result = shell.cat('resources/cat/file1'); assert.equal(shell.error(), null); -assert.equal(result, 'test1'); +assert.equal(result, 'test1\n'); // multiple files -var result = shell.cat('resources/file2', 'resources/file1'); +var result = shell.cat('resources/cat/file2', 'resources/cat/file1'); assert.equal(shell.error(), null); -assert.equal(result, 'test2\ntest1'); +assert.equal(result, 'test2\ntest1\n'); // multiple files, array syntax -var result = shell.cat(['resources/file2', 'resources/file1']); +var result = shell.cat(['resources/cat/file2', 'resources/cat/file1']); assert.equal(shell.error(), null); -assert.equal(result, 'test2\ntest1'); +assert.equal(result, 'test2\ntest1\n'); var result = shell.cat('resources/file*.txt'); assert.equal(shell.error(), null); diff --git a/test/resources/cat/file1 b/test/resources/cat/file1 new file mode 100644 index 0000000..a5bce3f --- /dev/null +++ b/test/resources/cat/file1 @@ -0,0 +1 @@ +test1 diff --git a/test/resources/cat/file2 b/test/resources/cat/file2 new file mode 100644 index 0000000..180cf83 --- /dev/null +++ b/test/resources/cat/file2 @@ -0,0 +1 @@ +test2