Skip to content

Commit

Permalink
Close #92 PR: Closing before and reopening the style after a line break.
Browse files Browse the repository at this point in the history
  • Loading branch information
martinheidegger authored and sindresorhus committed Jan 17, 2016
1 parent 139f8b6 commit 05f87e2
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 0 deletions.
5 changes: 5 additions & 0 deletions index.js
Expand Up @@ -79,6 +79,11 @@ function applyStyle() {
// otherwise only the part of the string until said closing code
// will be colored, and the rest will simply be 'plain'.
str = code.open + str.replace(code.closeRe, code.open) + code.close;

// Close the coloring before a line break and reopening after next line
// To fix a bleed issue on macs
// see https://github.com/chalk/chalk/pull/92
str = str.replace(/\n/gm, code.close + '\n' + code.open);
}

// Reset the original 'dim' if we changed it to work around the Windows dimmed gray issue.
Expand Down
4 changes: 4 additions & 0 deletions test.js
Expand Up @@ -68,6 +68,10 @@ describe('chalk', function () {
assert.equal(chalk.reset(chalk.red.bgGreen.underline.bind(null)('foo') + 'foo'), '\u001b[0m\u001b[31m\u001b[42m\u001b[4mfoo\u001b[24m\u001b[49m\u001b[39mfoo\u001b[0m');
assert.equal(chalk.red.blue.black.call(null), '');
});

it('line breaks should open and close colors', function () {
assert.equal(chalk.grey('hello\nworld'), '\u001b[90mhello\u001b[39m\n\u001b[90mworld\u001b[39m');
});
});

describe('chalk on windows', function () {
Expand Down

0 comments on commit 05f87e2

Please sign in to comment.