chs->name = safe_strdup(name);
static CHARSET *load_charset(const char *name){  char path[_POSIX_PATH_MAX];  char buffer[SHORT_STRING];  CHARSET *chs;  FILE *fp = NULL;  int i;  chs = mutt_new_charset();  chs->name = safe_strdup(name);    snprintf(path, sizeof(path), "%s/charsets/%s", SHAREDIR, name);  if((fp = fopen(path, "r")) == NULL)    goto bail;    if(fgets(buffer, sizeof(buffer), fp) == NULL)    goto bail;    if(strcmp(buffer, CHARSET_MAGIC) != 0)    goto bail;  chs->map  = safe_malloc(sizeof(UNICODE_MAP));    for(i = 0; i < 256; i++)  {    if(fscanf(fp, "%i", &(*chs->map)[i]) != 1)    {      safe_free((void **) &chs->map);      break;    }  }  bail:    if(fp) fclose(fp);  return chs;}