bit_read_CMC (Bit_Chain *restrict dat, Dwg_Color *restrict color)
{
  memset (color, 0, sizeof (Dwg_Color));
  color->index = bit_read_BS (dat);
  if (dat->version >= R_2004)
    {
      color->rgb = bit_read_BL (dat);
      color->flag = bit_read_RC (dat);
      // wide?
      color->name = (color->flag & 1) ? (char *)bit_read_TV (dat) : NULL;
      color->book_name = (color->flag & 2) ? (char *)bit_read_TV (dat) : NULL;
    }
}
bit_read_CMC (Bit_Chain *restrict dat, Dwg_Color *restrict color)
{
  memset (color, 0, sizeof (Dwg_Color));
  color->index = bit_read_BS (dat);
  if (dat->version >= R_2004)
    {
      color->rgb = bit_read_BL (dat);
      color->flag = bit_read_RC (dat);
       
      color->name = (color->flag & 1) ? (char *)bit_read_TV (dat) : NULL;
      color->book_name = (color->flag & 2) ? (char *)bit_read_TV (dat) : NULL;
    }
}