/*
* bitstring.c
*
* Toggle bits in a bitstrings
* NB! This is a crude and simple bitstring on byte-level...
*
* (C) Frank Schmidt, Jesus@NorseMUD
*
*/
static int test_bit(string str, int b) {
if (b >= 0) {
return (b<strlen(str)) ? (str[b]!='0') : 0;
}
error("Illegal index to test_bit().");
return 0;
}
static string set_bit(string str, int b) {
if (b<strlen(str)) {
if (b >= 0) {
str[b]='1';
return str;
}
error("Illegal index to set_bit().");
return 0;
}
str += fill_string("000000000000000", b-strlen(str)+1);
str[b]='1';
return str;
}
static string clear_bit(string str, int b) {
if (b<strlen(str)) {
if (b >= 0) {
str[b]='0';
return str;
}
error("Illegal index to clear_bit().");
return 0;
}
str += fill_string("000000000000000", b-strlen(str)+1);
str[b]='0';
return str;
}