Add bitmask converter

This commit is contained in:
Alex D. 2021-04-04 21:31:06 +00:00
parent aa1d47cb27
commit 29f47560fe
Signed by: caskd
GPG Key ID: F92BA85F61F4C173
2 changed files with 18 additions and 5 deletions

View File

@ -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 */

View File

@ -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;
}