FREE(&fn);
int rfc1524_expand_command (BODY *a, char *filename, char *type,     char *command, int clen){  int x=0,y=0;  int needspipe = TRUE;  char buf[LONG_STRING];  while (command[x] && x<clen && y<sizeof(buf))   {    if (command[x] == '\\') {      x++;      buf[y++] = command[x++];    }    else if (command[x] == '%')     {      x++;      if (command[x] == '{')       {	char param[STRING];	int z = 0;	char *ret = NULL;	x++;	while (command[x] && command[x] != '}' && z<sizeof(param))	  param[z++] = command[x++];	param[z] = '\0';	dprint(2,(debugfile,"Parameter: %s  Returns: %s\n",param,ret));	ret = mutt_get_parameter(param,a->parameter);	dprint(2,(debugfile,"Parameter: %s  Returns: %s\n",param,ret));	z = 0;	while (ret && ret[z] && y<sizeof(buf))	  buf[y++] = ret[z++];      }      else if (command[x] == 's' && filename != NULL)      {	char *fn = filename;	while (*fn && y < sizeof (buf))	  buf[y++] = *fn++;	needspipe = FALSE;      }      else if (command[x] == 't')      {	while (*type && y < sizeof (buf))	  buf[y++] = *type++;      }      x++;    }    else      buf[y++] = command[x++];  }  buf[y] = '\0';  strfcpy (command, buf, clen);  return needspipe;}