aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2021-02-04 11:04:52 +0000
committerRon Yorston <rmy@pobox.com>2021-02-04 11:04:52 +0000
commit4fb71406b884c6ac0a9a4d2acf7a32b544611f70 (patch)
treec8ea1930942dab12277f1d413e3098af23f43906
parentb032d8024e45eb84d21b8798cca8655b6366f01e (diff)
downloadbusybox-w32-4fb71406b884c6ac0a9a4d2acf7a32b544611f70.tar.gz
busybox-w32-4fb71406b884c6ac0a9a4d2acf7a32b544611f70.tar.bz2
busybox-w32-4fb71406b884c6ac0a9a4d2acf7a32b544611f70.zip
winansi: tweak colour mapping
-rw-r--r--win32/winansi.c28
1 files changed, 9 insertions, 19 deletions
diff --git a/win32/winansi.c b/win32/winansi.c
index eda65e62d..da3c977f0 100644
--- a/win32/winansi.c
+++ b/win32/winansi.c
@@ -275,22 +275,17 @@ static char *process_fg_24bit(char *str, WORD *attr)
275 } while (*(str-1) == ';' && count < 3); 275 } while (*(str-1) == ';' && count < 3);
276 276
277 *attr &= ~(FOREGROUND_ALL|FOREGROUND_INTENSITY); 277 *attr &= ~(FOREGROUND_ALL|FOREGROUND_INTENSITY);
278 if (val[0] > 127) { 278 if (val[0] > 85)
279 *attr |= FOREGROUND_RED; 279 *attr |= FOREGROUND_RED;
280 ++bright; 280 if (val[1] > 85)
281 }
282 if (val[1] > 127) {
283 *attr |= FOREGROUND_GREEN; 281 *attr |= FOREGROUND_GREEN;
284 ++bright; 282 if (val[2] > 85)
285 }
286 if (val[2] > 127) {
287 *attr |= FOREGROUND_BLUE; 283 *attr |= FOREGROUND_BLUE;
288 ++bright;
289 }
290 284
291 /* increase intensity if all components are either bright or 285 /* increase intensity if all components are either bright or
292 * dark and at least one is bright */ 286 * dark and at least one is bright */
293 dark = (val[0] <= 63) + (val[1] <= 63) + (val[2] <= 63); 287 dark = (val[0] <= 85) + (val[1] <= 85) + (val[2] <= 85);
288 bright = (val[0] > 171) + (val[1] > 171) + (val[2] > 171);
294 if (bright + dark == 3 && dark != 3) { 289 if (bright + dark == 3 && dark != 3) {
295 *attr |= FOREGROUND_INTENSITY; 290 *attr |= FOREGROUND_INTENSITY;
296 } 291 }
@@ -339,22 +334,17 @@ static char *process_fg_8bit(char *str, WORD *attr)
339 g = val / 6 % 6; 334 g = val / 6 % 6;
340 b = val % 6; 335 b = val % 6;
341 336
342 if (r >= 3) { 337 if (r > 1)
343 *attr |= FOREGROUND_RED; 338 *attr |= FOREGROUND_RED;
344 ++bright; 339 if (g > 1)
345 }
346 if (g >= 3) {
347 *attr |= FOREGROUND_GREEN; 340 *attr |= FOREGROUND_GREEN;
348 ++bright; 341 if (b > 1)
349 }
350 if (b >= 3) {
351 *attr |= FOREGROUND_BLUE; 342 *attr |= FOREGROUND_BLUE;
352 ++bright;
353 }
354 343
355 /* increase intensity if all components are either bright or 344 /* increase intensity if all components are either bright or
356 * dark and at least one is bright */ 345 * dark and at least one is bright */
357 dark = (r <= 1) + (g <= 1) + (b <= 1); 346 dark = (r <= 1) + (g <= 1) + (b <= 1);
347 bright = (r >= 4) + (g >= 4) + (b >= 4);
358 if (bright + dark == 3 && dark != 3) { 348 if (bright + dark == 3 && dark != 3) {
359 *attr |= FOREGROUND_INTENSITY; 349 *attr |= FOREGROUND_INTENSITY;
360 } 350 }