int in_place = (d == s);
void rfc2047_decode (char *d, const char *s, size_t dlen){  const char *p, *q;  size_t n;  int found_encoded = 0;  dlen--; /* save room for the terminal nul */  while (*s && dlen > 0)  {    if ((p = strstr (s, "=?")) == NULL ||	(q = strchr (p + 2, '?')) == NULL ||	(q = strchr (q + 1, '?')) == NULL ||	(q = strstr (q + 1, "?=")) == NULL)    {      /* no encoded words */      if (d != s)	strfcpy (d, s, dlen + 1);      return;    }    if (p != s)    {      n = (size_t) (p - s);      /* ignore spaces between encoded words */      if (!found_encoded || strspn (s, " \t\r\n") != n)      {	if (n > dlen)	  n = dlen;	if (d != s)	  memcpy (d, s, n);	d += n;	dlen -= n;      }    }    rfc2047_decode_word (d, p, dlen);    found_encoded = 1;    s = q + 2;    n = mutt_strlen (d);    dlen -= n;    d += n;  }  *d = 0;}