if ((info = mutt_get_content_info (path, att)) == NULL) return NULL;
BODY *mutt_make_file_attach (const char *path){  BODY *att;  CONTENT *info;  char buf[SHORT_STRING];  char chsbuf[SHORT_STRING];  int n;    if ((info = mutt_get_content_info (path, NULL)) == NULL)    return NULL;  att = mutt_new_body ();  att->filename = safe_strdup (path);  /* Attempt to determine the appropriate content-type based on the filename   * suffix.   */  if ((n = lookup_mime_type (buf, path)) != TYPEOTHER)  {    att->type = n;    att->subtype = safe_strdup (buf);  }  if (!att->subtype)  {    if (info->lobin == 0 || (info->lobin + info->hibin + info->ascii)/ info->lobin >= 10)    {      /*       * Statistically speaking, there should be more than 10% "lobin"        * chars if this is really a binary file...       */      att->type = TYPETEXT;      att->subtype = safe_strdup ("plain");    }    else    {      att->type = TYPEAPPLICATION;      att->subtype = safe_strdup ("octet-stream");    }  }   /* XXX - just call mutt_update_encoding? -tlr */  mutt_set_encoding (att, info);  mutt_stamp_attachment(att);  if (att->type == TYPETEXT)    mutt_set_body_charset(att, get_text_charset(chsbuf, sizeof (chsbuf), att, info));  att->content = info;  return (att);}