[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] COLOR_PAIR() macro needs protect its argument
From: |
nick black |
Subject: |
[PATCH] COLOR_PAIR() macro needs protect its argument |
Date: |
Thu, 26 Jul 2012 00:58:28 -0400 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
wdy!
While developing the ncurses UI of the Omphalos wireless tool
(http://nick-black.com/dankwiki/index.php/Omphalos), I noticed strange
behavior when using a ternary expression as an argument to COLOR_PAIR().
I determined this due to a failure to protect the arguments of COLOR_PAIR,
and whipped up the following patch. I tested a rebuilt ncurses and verified
that the expected behavior resulted. Please apply. Thanks!
Looking at it, you also need protect a in the following PAIR_NUMBER macro.
Updated patch attached. This was all on Debian Unstable.
diff -ur ncurses-5.9/include/curses.h.in
src/ncurses-5.9-dank/include/curses.h.in
--- ncurses-5.9/include/curses.h.in 2011-04-05 14:31:12.000000000 -0400
+++ src/ncurses-5.9-dank/include/curses.h.in 2012-07-25 23:54:40.178764847
-0400
@@ -1154,8 +1154,8 @@
/*
* These apply to the first 256 color pairs.
*/
-#define COLOR_PAIR(n) NCURSES_BITS(n, 0)
-#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,a) &
A_COLOR) >> NCURSES_ATTR_SHIFT)))
+#define COLOR_PAIR(n) NCURSES_BITS((n), 0)
+#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,(a)) &
A_COLOR) >> NCURSES_ATTR_SHIFT)))
/*
* pseudo functions for standard screen
--
nick black http://www.sprezzatech.com -- unix and hpc consulting
to make an apple pie from scratch, you need first invent a universe.
ncurses-5.9.diff
Description: Text Data
signature.asc
Description: Digital signature