aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/mingw.h4
-rw-r--r--win32/winansi.c6
2 files changed, 7 insertions, 3 deletions
diff --git a/include/mingw.h b/include/mingw.h
index 88da85243..4abdcf459 100644
--- a/include/mingw.h
+++ b/include/mingw.h
@@ -236,7 +236,11 @@ int strverscmp(const char *s1, const char *s2);
236/* 236/*
237 * strings.h 237 * strings.h
238 */ 238 */
239#if !defined(__clang__)
239int ffs(int i); 240int ffs(int i);
241#else
242# define ffs(i) __builtin_ffs(i)
243#endif
240 244
241/* 245/*
242 * sys/ioctl.h 246 * sys/ioctl.h
diff --git a/win32/winansi.c b/win32/winansi.c
index ff4f4b118..6142a244c 100644
--- a/win32/winansi.c
+++ b/win32/winansi.c
@@ -518,7 +518,7 @@ static char *process_colour(char *str, WORD *attr)
518{ 518{
519 long val = strtol(str, (char **)&str, 10); 519 long val = strtol(str, (char **)&str, 10);
520 520
521 *attr = -1; /* error return */ 521 *attr = 0xffff; /* error return */
522 switch (val) { 522 switch (val) {
523 case 2: 523 case 2:
524 str = process_24bit(str + 1, attr); 524 str = process_24bit(str + 1, attr);
@@ -628,7 +628,7 @@ static char *process_escape(char *pos)
628 break; 628 break;
629 case 38: /* 8/24 bit */ 629 case 38: /* 8/24 bit */
630 str = process_colour(str + 1, &t); 630 str = process_colour(str + 1, &t);
631 if (t != -1) { 631 if (t != 0xffff) {
632 attr &= ~(FOREGROUND_ALL|FOREGROUND_INTENSITY); 632 attr &= ~(FOREGROUND_ALL|FOREGROUND_INTENSITY);
633 attr |= t; 633 attr |= t;
634 } 634 }
@@ -652,7 +652,7 @@ static char *process_escape(char *pos)
652 break; 652 break;
653 case 48: /* 8/24 bit */ 653 case 48: /* 8/24 bit */
654 str = process_colour(str + 1, &t); 654 str = process_colour(str + 1, &t);
655 if (t != -1) { 655 if (t != 0xffff) {
656 attr &= ~(BACKGROUND_ALL|BACKGROUND_INTENSITY); 656 attr &= ~(BACKGROUND_ALL|BACKGROUND_INTENSITY);
657 attr |= t << 4; 657 attr |= t << 4;
658 } 658 }