Skip to content

Commit 580d6d3

Browse files
committed
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.
1 parent 6bdee43 commit 580d6d3

File tree

4 files changed

+9
-10
lines changed

4 files changed

+9
-10
lines changed

src/cat.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,9 @@ function _cat(options, files) {
3232
if (!fs.existsSync(file))
3333
common.error('no such file or directory: ' + file);
3434

35-
cat += fs.readFileSync(file, 'utf8') + '\n';
35+
cat += fs.readFileSync(file, 'utf8');
3636
});
3737

38-
if (cat[cat.length-1] === '\n')
39-
cat = cat.substring(0, cat.length-1);
40-
4138
return common.ShellString(cat);
4239
}
4340
module.exports = _cat;

test/cat.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,19 @@ assert.ok(shell.error());
2424
//
2525

2626
// simple
27-
var result = shell.cat('resources/file1');
27+
var result = shell.cat('resources/cat/file1');
2828
assert.equal(shell.error(), null);
29-
assert.equal(result, 'test1');
29+
assert.equal(result, 'test1\n');
3030

3131
// multiple files
32-
var result = shell.cat('resources/file2', 'resources/file1');
32+
var result = shell.cat('resources/cat/file2', 'resources/cat/file1');
3333
assert.equal(shell.error(), null);
34-
assert.equal(result, 'test2\ntest1');
34+
assert.equal(result, 'test2\ntest1\n');
3535

3636
// multiple files, array syntax
37-
var result = shell.cat(['resources/file2', 'resources/file1']);
37+
var result = shell.cat(['resources/cat/file2', 'resources/cat/file1']);
3838
assert.equal(shell.error(), null);
39-
assert.equal(result, 'test2\ntest1');
39+
assert.equal(result, 'test2\ntest1\n');
4040

4141
var result = shell.cat('resources/file*.txt');
4242
assert.equal(shell.error(), null);

test/resources/cat/file1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
test1

test/resources/cat/file2

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
test2

0 commit comments

Comments
 (0)