| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
There was a problem hiding this comment.
LGTM. Thanks for the fix!
Sorry, something went wrong.
Sorry, something went wrong.
| return COLORS_256; | ||
| } | ||
|
|
||
| if (env.COLORTERM) { |
There was a problem hiding this comment.
I looks like this if statement can be removed, if (env.COLORTERM === 'truecolor' || env.COLORTERM === '24bit') { /* ... */ } is sufficient.
Sorry, something went wrong.
There was a problem hiding this comment.
Hi @lpinca this is to catch the case when no TERM environment variable is set
without this COLORS_2 is returned which fails an existing test
Sorry, something went wrong.
There was a problem hiding this comment.
I don't get it, if env.COLORTERM is truthy, COLORS_16m is returned only if env.COLORTERM === 'truecolor' || env.COLORTERM === '24bit' otherwise nothing is done so why not using only
if (env.COLORTERM === 'truecolor' || env.COLORTERM === '24bit')
return COLORS_16m;
Sorry, something went wrong.
There was a problem hiding this comment.
COLORTERM can be set to values other than truecolor and 24bit . yes no gnome-terminal are other values used. We want to return the higest spec tty capability available first. If you remove the second check for env.COLORTERM you miss the case when TERM is not set but COLORTERM is not truecolor or 24bit. If you leave the code as it was before you get 256 color terminal when your terminal is capable of 16M. Basically we are moving the COLORS_256 check inbetween the COLORS_16m and the COLORS_16 checks
Sorry, something went wrong.
There was a problem hiding this comment.
FWIW this is what I'm suggesting
diff --git a/lib/internal/tty.js b/lib/internal/tty.js
index faf5df9b42..63832ef220 100644
--- a/lib/internal/tty.js
+++ b/lib/internal/tty.js
@@ -173,6 +173,9 @@ function getColorDepth(env = process.env) {
return COLORS_256;
}
+ if (env.COLORTERM === 'truecolor' || env.COLORTERM === '24bit')
+ return COLORS_16m;
+
if (env.TERM) {
if (/^xterm-256/.test(env.TERM))
return COLORS_256;
@@ -188,13 +191,10 @@ function getColorDepth(env = process.env) {
}
}
}
-
+ // Move 16 color COLORTERM below 16m and 256
if (env.COLORTERM) {
- if (env.COLORTERM === 'truecolor' || env.COLORTERM === '24bit')
- return COLORS_16m;
return COLORS_16;
}
-
return COLORS_2;
}
diff --git a/test/pseudo-tty/test-tty-color-support.js b/test/pseudo-tty/test-tty-color-support.js
index b2cfc804c3..57ed640d4d 100644
--- a/test/pseudo-tty/test-tty-color-support.js
+++ b/test/pseudo-tty/test-tty-color-support.js
@@ -71,6 +71,7 @@ const writeStream = new WriteStream(fd);
[{ NO_COLOR: '', COLORTERM: '24bit' }, 1],
[{ TMUX: '1', FORCE_COLOR: 0 }, 1],
[{ NO_COLOR: 'true', FORCE_COLOR: 0, COLORTERM: 'truecolor' }, 1],
+ [{ TERM: 'xterm-256color', COLORTERM: 'truecolor' }, 24],
].forEach(([env, depth], i) => {
const actual = writeStream.getColorDepth(env);
assert.strictEqual(
Sorry, something went wrong.
There was a problem hiding this comment.
if (env.COLORTERM) {
if (env.COLORTERM === 'truecolor' || env.COLORTERM === '24bit')
return COLORS_16m;
}is equal to
if (
env.COLORTERM &&
(env.COLORTERM === 'truecolor' || env.COLORTERM === '24bit')
) {
return COLORS_16m;
}which is equal to
if (env.COLORTERM === 'truecolor' || env.COLORTERM === '24bit') {
return COLORS_16m;
}
Sorry, something went wrong.
There was a problem hiding this comment.
if you remove the bottom if and make test you can see the case when it fails
Sorry, something went wrong.
There was a problem hiding this comment.
I've applied the patch in my previous comment and tests pass.
What you mean with bottom if? The one on line 197? If so I'm not suggesting to remove it. I never did. Anyway it does not matter, it is not very important :)
Sorry, something went wrong.
There was a problem hiding this comment.
ok yes we can remove the nested if - I thought you were talking about the second if (env.COLORTERM) - I'll update the pull request now
Sorry, something went wrong.
Sorry, something went wrong.
256 color would be return instead of 16m if both env variables were set * tty: improve color check order highest spec first * tty: add test for TERM and COLORTERM set * tty: move COLORTERM check outside TERM closure * tty: remove extra if check for COLORTERM Refs: #27609 PR-URL: #30474 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
256 color would be return instead of 16m if both env variables were set * tty: improve color check order highest spec first * tty: add test for TERM and COLORTERM set * tty: move COLORTERM check outside TERM closure * tty: remove extra if check for COLORTERM Refs: #27609 PR-URL: #30474 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
256 color would be return instead of 16m if both env variables were set * tty: improve color check order highest spec first * tty: add test for TERM and COLORTERM set * tty: move COLORTERM check outside TERM closure * tty: remove extra if check for COLORTERM Refs: #27609 PR-URL: #30474 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
256 color would be return instead of 16m if both env variables were set * tty: improve color check order highest spec first * tty: add test for TERM and COLORTERM set * tty: move COLORTERM check outside TERM closure * tty: remove extra if check for COLORTERM Refs: #27609 PR-URL: #30474 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
| Back | FazBrowse Home | New Git URL |
256 color would be return instead of 16m if both env variables were set
Test added to pseudo-tty/test-tty-color-support
Related Issue: #27609
Checklist