Add bitmask converter
This commit is contained in:
parent
aa1d47cb27
commit
29f47560fe
|
@ -35,11 +35,12 @@ typedef enum {
|
|||
IRC_MODE_SERVERNOTICES = 's',
|
||||
} IRC_Mode;
|
||||
|
||||
bool uirc_mode_toggle(char m, IRC_Modes ms);
|
||||
bool uirc_mode_enable(char m, IRC_Modes ms);
|
||||
bool uirc_mode_disable(char m, IRC_Modes ms);
|
||||
void uirc_mode_copy(IRC_Modes d, IRC_Modes const s);
|
||||
bool uirc_mode_fetch(char m, IRC_Modes ms);
|
||||
bool uirc_mode_toggle(char m, IRC_Modes ms);
|
||||
bool uirc_mode_enable(char m, IRC_Modes ms);
|
||||
bool uirc_mode_disable(char m, IRC_Modes ms);
|
||||
void uirc_mode_copy(IRC_Modes d, IRC_Modes const s);
|
||||
bool uirc_mode_fetch(char m, IRC_Modes ms);
|
||||
const char* uirc_mode_bmconv(IRC_Modes ms);
|
||||
|
||||
#endif /* UIRC_GUARD_PUBLIC_MODES */
|
||||
|
||||
|
|
|
@ -82,3 +82,15 @@ uirc_mode_fetch(char m, IRC_Modes ms)
|
|||
assert(i != -1);
|
||||
return ms[i];
|
||||
}
|
||||
|
||||
const char*
|
||||
uirc_mode_bmconv(IRC_Modes ms)
|
||||
{
|
||||
static char bitmask[4];
|
||||
unsigned short i = sizeof(bitmask) - 1;
|
||||
bitmask[i--] = '\0';
|
||||
bitmask[i--] = '0';
|
||||
bitmask[i--] = (uirc_mode_fetch(IRC_MODE_WALLOPS, ms)) ? '1' : '0';
|
||||
bitmask[i--] = (uirc_mode_fetch(IRC_MODE_INVISIBLE, ms)) ? '1' : '0';
|
||||
return bitmask;
|
||||
}
|
||||
|
|
Reference in New Issue