dest[idx] = toupper (dest[idx]);
dest[idx] = toupper ((unsigned char) dest[idx]);
char *mutt_gecos_name (char *dest, size_t destlen, struct passwd *pw){  regmatch_t pat_match[1];  size_t pwnl;  int idx;  char *p;    if (!pw || !pw->pw_gecos)     return NULL;  memset (dest, 0, destlen);    if (GecosMask.rx)  {    if (regexec (GecosMask.rx, pw->pw_gecos, 1, pat_match, 0) == 0)      strfcpy (dest, pw->pw_gecos + pat_match[0].rm_so, 	       MIN (pat_match[0].rm_eo - pat_match[0].rm_so + 1, destlen));  }  else if ((p = strchr (pw->pw_gecos, ',')))    strfcpy (dest, pw->pw_gecos, MIN (destlen, p - pw->pw_gecos + 1));  else    strfcpy (dest, pw->pw_gecos, destlen);  pwnl = strlen (pw->pw_name);  for (idx = 0; dest[idx]; idx++)  {    if (dest[idx] == '&')    {      memmove (&dest[idx + pwnl], &dest[idx + 1],	       MAX(destlen - idx - pwnl - 1, 0));      memcpy (&dest[idx], pw->pw_name, MIN(destlen - idx - 1, pwnl));      dest[idx] = toupper (dest[idx]);    }  }        return dest;}