From: Wolfgang Bumiller Date: Wed, 26 Dec 2012 20:39:00 +0000 (+0100) Subject: Switch over to LONGBIT X-Git-Tag: before-library~482 X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=commitdiff_plain;h=b42328dbc66c1c4337d963240830acb5429c92df Switch over to LONGBIT --- diff --git a/gmqcc.h b/gmqcc.h index c953b02..3a47e74 100644 --- a/gmqcc.h +++ b/gmqcc.h @@ -917,18 +917,20 @@ void ftepp_add_macro (const char *name, const char *value); /*======================= main.c commandline ========================*/ /*===================================================================*/ -#if 0 +#if 1 /* Helpers to allow for a whole lot of flags. Otherwise we'd limit * to 32 or 64 -f options... */ typedef struct { size_t idx; /* index into an array of 32 bit words */ - uint8_t bit; /* index _into_ the 32 bit word, thus just uint8 */ + uint8_t bit; /* bit index for the 8 bit group idx points to */ } longbit; #define LONGBIT(bit) { ((bit)/32), ((bit)%32) } +#define LONGBIT_SET(B, I) ((B).idx = (I)/32, (B).bit = ((I)%32)) #else typedef uint32_t longbit; #define LONGBIT(bit) (bit) +#define LONGBIT_SET(B, I) ((B) = (I)) #endif /*===================================================================*/ diff --git a/opts.c b/opts.c index c1b0e63..269a69d 100644 --- a/opts.c +++ b/opts.c @@ -75,7 +75,7 @@ static bool opts_setflag_all(const char *name, bool on, uint32_t *flags, const o for (i = 0; i < listsize; ++i) { if (!strcmp(name, list[i].name)) { longbit lb = list[i].bit; -#if 0 +#if 1 if (on) flags[lb.idx] |= (1<<(lb.bit)); else @@ -105,8 +105,9 @@ bool opts_setoptim (const char *name, bool on) { } void opts_set(uint32_t *flags, size_t idx, bool on) { - longbit lb = LONGBIT(idx); -#if 0 + longbit lb; + LONGBIT_SET(lb, idx); +#if 1 if (on) flags[lb.idx] |= (1<<(lb.bit)); else