return;
{ dprint (2, (debugfile, "%s:%d [mutt_decode_base64()]: " "didn't get a multiple of 4 chars.\n", __FILE__, __LINE__)); break; }
void mutt_decode_base64 (STATE *s, BODY *b, int istext, DECODER *dec){  long len = b->length;  char buf[5];  int c1, c2, c3, c4, ch, cr = 0, i;  size_t l = 0;  buf[4] = 0;  if (istext) state_set_prefix(s);  while (len > 0)  {    for (i = 0 ; i < 4 && len > 0 ; len--)    {      if ((ch = fgetc (s->fpin)) == EOF)	return;      if (!ISSPACE (ch))	buf[i++] = ch;    }    if (i != 4)      return; /* didn't get a multiple of four chars! */    c1 = base64val (buf[0]);    c2 = base64val (buf[1]);    ch = (c1 << 2) | (c2 >> 4);    if (cr && ch != '\n')     {      mutt_decoder_push_one (dec, '\r');    }    cr = 0;          if (istext && ch == '\r')      cr = 1;    else    {      mutt_decoder_push_one (dec, ch);    }    if (buf[2] == '=')      break;    c3 = base64val (buf[2]);    ch = ((c2 & 0xf) << 4) | (c3 >> 2);    if (cr && ch != '\n')    {      mutt_decoder_push_one (dec, ch);    }    cr = 0;    if (istext && ch == '\r')      cr = 1;    else    {      mutt_decoder_push_one (dec, ch);    }    if (buf[3] == '=') break;    c4 = base64val (buf[3]);    ch = ((c3 & 0x3) << 6) | c4;    if (cr && ch != '\n')    {      mutt_decoder_push_one (dec, ch);    }    cr = 0;    if (istext && ch == '\r')      cr = 1;    else    {      mutt_decoder_push_one (dec, ch);    }        if ((l += 3) >= 1024)    {      mutt_decoder_pop_to_state (dec, s);      l = 0;    }  }  mutt_decoder_push (dec, NULL, 0, NULL);  mutt_decoder_pop_to_state (dec, s);  state_reset_prefix(s);}