cppmagic: Logical operations
authorDavid Gibson <david@gibson.dropbear.id.au>
Tue, 26 Jan 2016 09:52:32 +0000 (20:52 +1100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Wed, 3 Feb 2016 22:44:13 +0000 (09:44 +1100)
commitf92c112c47d4d9271b813fd6478d8d6b4b035e9d
tree5f43637cce8bd42425ceed4c62ba1a1b7448967d
parentff71198b4e75fcaaedad34a4e362a3982a936e3e
cppmagic: Logical operations

In order to implement fancier things, we need to represent truth values in
cpp.  We use '0' and '1' strings, like in C, but we need ways to get these
values from other conditions.

CPPMAGIC_ISZERO() and CPPMAGIC_NONZERO() test if the argument is '0' or
anything else (ISZERO doubles as a logical not).

CPPMAGIC_ISEMPTY() and CPPMAGIC_NON_EMPTY() expand to 0 or 1 depending on
whether they have any arguments at all or not.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
ccan/cppmagic/cppmagic.h
ccan/cppmagic/test/run.c