;
*append = M_SAVE_OVERWRITE; break;
int mutt_check_overwrite (const char *attname, const char *path,				char *fname, size_t flen, int *append) {  char tmp[_POSIX_PATH_MAX];  struct stat st;  strfcpy (fname, path, flen);  if (access (fname, F_OK) != 0)    return 0;  if (stat (fname, &st) != 0)    return -1;  if (S_ISDIR (st.st_mode))  {    if (mutt_yesorno (_("File is a directory, save under it?"), 1) != M_YES)       return (-1);    if (!attname || !attname[0])    {      tmp[0] = 0;      if (mutt_get_field (_("File under directory: "), tmp, sizeof (tmp),				      M_FILE | M_CLEAR) != 0 || !tmp[0])	return (-1);      snprintf (fname, flen, "%s/%s", path, tmp);    }    else      snprintf (fname, flen, "%s/%s", path, attname);  }    if (*append == 0 && access (fname, F_OK) == 0)  {    switch (mutt_multi_choice	    (_("File exists, (o)verwrite, (a)ppend, or (c)ancel?"), _("oac")))    {      case -1: /* abort */      case 3:  /* cancel */	return -1;      case 2: /* append */        *append = M_SAVE_APPEND;      case 1: /* overwrite */	;    }  }  return 0;}