case 1:
case M_YES:
void mutt_create_alias (ENVELOPE *cur, ADDRESS *iadr){  ALIAS *new, *t;  char buf[LONG_STRING], prompt[SHORT_STRING], *pc;  char fixed[LONG_STRING];  FILE *rc;  ADDRESS *adr = NULL;  if (cur)  {    adr = mutt_get_address (cur, NULL);  }  else if (iadr)  {    adr = iadr;  }  if (adr && adr->mailbox)  {    strfcpy (buf, adr->mailbox, sizeof (buf));    if ((pc = strchr (buf, '@')))      *pc = 0;  }  else    buf[0] = '\0';  /* Don't suggest a bad alias name in the event of a strange local part. */  mutt_check_alias_name (buf, buf);  retry_name:  /* add a new alias */  if (mutt_get_field (_("Alias as: "), buf, sizeof (buf), 0) != 0 || !buf[0])    return;  /* check to see if the user already has an alias defined */  if (mutt_lookup_alias (buf))  {    mutt_error _("You already have an alias defined with that name!");    return;  }    if (mutt_check_alias_name (buf, fixed))  {    switch (mutt_yesorno (_("Warning: This alias name may not work.  Fix it?"), 1))    {      case 1:        	strfcpy (buf, fixed, sizeof (buf));	goto retry_name;      case -1: 	return;    }  }    new       = safe_calloc (1, sizeof (ALIAS));  new->self = new;  new->name = safe_strdup (buf);  if (adr)    strfcpy (buf, adr->mailbox, sizeof (buf));  else    buf[0] = 0;  do  {    if (mutt_get_field (_("Address: "), buf, sizeof (buf), 0) != 0 || !buf[0])    {      mutt_free_alias (&new);      return;    }        if((new->addr = rfc822_parse_adrlist (new->addr, buf)) == NULL)      BEEP ();  }  while(new->addr == NULL);    if (adr && adr->personal && !mutt_is_mail_list (adr))    strfcpy (buf, adr->personal, sizeof (buf));  else    buf[0] = 0;  if (mutt_get_field (_("Personal name: "), buf, sizeof (buf), 0) != 0)  {    mutt_free_alias (&new);    return;  }  new->addr->personal = safe_strdup (buf);  buf[0] = 0;  rfc822_write_address (buf, sizeof (buf), new->addr);  snprintf (prompt, sizeof (prompt), _("[%s = %s] Accept?"), new->name, buf);  if (mutt_yesorno (prompt, 1) != 1)  {    mutt_free_alias (&new);    return;  }  if ((t = Aliases))  {    while (t->next)      t = t->next;    t->next = new;  }  else    Aliases = new;  strfcpy (buf, NONULL (AliasFile), sizeof (buf));  if (mutt_get_field (_("Save to file: "), buf, sizeof (buf), M_FILE) != 0)    return;  mutt_expand_path (buf, sizeof (buf));  if ((rc = fopen (buf, "a")))  {    if (mutt_check_alias_name (new->name, NULL))      mutt_quote_filename (buf, sizeof (buf), new->name);    else      strfcpy (buf, new->name, sizeof (buf));    fprintf (rc, "alias %s ", buf);    buf[0] = 0;    rfc822_write_address (buf, sizeof (buf), new->addr);    write_safe_address (rc, buf);    fputc ('\n', rc);    fclose (rc);    mutt_message _("Alias added.");  }  else    mutt_perror (buf);}