MudOSa4DGD/
MudOSa4DGD/bin/
MudOSa4DGD/data/
MudOSa4DGD/doc/
MudOSa4DGD/doc/driver/
MudOSa4DGD/doc/efun/bitstrings/
MudOSa4DGD/doc/efun/command/
MudOSa4DGD/doc/efun/communication/
MudOSa4DGD/doc/efun/heart_beat/
MudOSa4DGD/doc/efun/interactive/
MudOSa4DGD/doc/efun/inventory/
MudOSa4DGD/doc/efun/living/
MudOSa4DGD/doc/efun/mappings/
MudOSa4DGD/doc/efun/strings/
MudOSa4DGD/doc/efun/uid/
MudOSa4DGD/doc/funs/
MudOSa4DGD/doc/language/
MudOSa4DGD/mudlib/dgd/doc/
MudOSa4DGD/mudlib/dgd/lib/include/dgd/
MudOSa4DGD/mudlib/dgd/lib/std/
MudOSa4DGD/mudlib/dgd/lib/sys/
MudOSa4DGD/mudlib/dgd/log/
MudOSa4DGD/mudlib/log/
MudOSa4DGD/mudlib/std/include/
MudOSa4DGD/mudlib/std/obj/
/*
 * 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) {
  return (b<strlen(str) && b >= 0) ? (str[b]=='1') : 0;
}

static int set_bit(string str, int b) {
  if (b<strlen(str)) {
    if (b >= 0) {
      str[b]='1';
      return 1;
    }
    return 0;
  }
  str += fill_string("00000000", b-strlen(str)+1);
  str[b]='1';
  return 1;
}


static int clear_bit(string str, int b) {
  if (b<strlen(str)) {
    if (b >= 0) {
      str[b]='0';
      return 1;
    }
    return 0;
  }
  str += fill_string("00000000", b-strlen(str)+1);
  str[b]='0';
  return 1;
}