q = LastFolder; else if (!mutt_strcmp (s, "!!"))
char *mutt_expand_path (char *s, size_t slen){  char p[_POSIX_PATH_MAX] = "";  char *q = NULL;  if (*s == '~')  {    if (*(s + 1) == '/' || *(s + 1) == 0)      snprintf (p, sizeof (p), "%s%s", NONULL(Homedir), s + 1);    else    {      struct passwd *pw;      q = strchr (s + 1, '/');      if (q)	*q = 0;      if ((pw = getpwnam (s + 1)))	snprintf (p, sizeof (p), "%s/%s", pw->pw_dir, q ? q + 1 : "");      else      {	/* user not found! */	if (q)	  *q = '/';	return (NULL);      }    }  }  else if (*s == '=' || *s == '+')  {#ifdef USE_IMAP  /* special case: folder = {host}: don't append slash */  if (mx_is_imap (NONULL (Maildir)) && Maildir[strlen (Maildir) - 1] == '}')    snprintf (p, sizeof (p), "%s%s", NONULL (Maildir), s + 1);  else#endif    snprintf (p, sizeof (p), "%s/%s", NONULL (Maildir), s + 1);  }  else if (*s == '@')  {    /* elm compatibility, @ expands alias to user name */    HEADER *h;    ADDRESS *alias;    alias = mutt_lookup_alias (s + 1);    if (alias != NULL)    {      h = mutt_new_header();      h->env = mutt_new_envelope();      h->env->from = h->env->to = alias;      mutt_default_save (p, sizeof (p), h);      h->env->from = h->env->to = NULL;      mutt_free_header (&h);      /* Avoid infinite recursion if the resulting folder starts with '@' */      if (*p != '@')	mutt_expand_path (p, sizeof (p));    }  }  else  {    if (*s == '>')      q = Inbox;    else if (*s == '<')      q = Outbox;    else if (*s == '!')      q = Spoolfile;    else if (*s == '-')      q = LastFolder;    else if (!mutt_strcmp (s, "!!"))	/* elm compatibility */      q = LastFolder;    else      return s;    if (!q)      return s;    snprintf (p, sizeof (p), "%s%s", q, s + 1);  }  if (*p)    strfcpy (s, p, slen); /* replace the string with the expanded version. */  return (s);}