// mime.cpp - MIME subroutines.
//
// (c) 2012-2015 Xestia Software Development.
//
// This file is part of Xestia Address Book.
//
// Xestia Address Book is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by the
// Free Software Foundation, version 3 of the license.
//
// Xestia Address Book is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with Xestia Address Book. If not, see
#include
wxString GetMIME(wxString FilenameInc){
wxString MIMEResult;
// Check if file exists first before doing anything with it.
if (!wxFileExists(FilenameInc)){
// File doesn't exist so return.
wxMessageBox(_("The file with the filename given doesn't exist."), _("Error opening picture/audio file"), wxICON_ERROR);
return wxEmptyString;
}
#if defined(__WIN32__)
// TODO: Sort out Win32.
#else
#include
FILE *MIMEIn;
char MIMEData[512];
// Build Command Line.
wxString FilenameIncEscaped = FilenameInc;
FilenameIncEscaped.Replace(wxT(" "), wxT("\\ "));
wxString FileCommandLine;
FileCommandLine.Append("file -b --mime-type ");
FileCommandLine.Append(FilenameIncEscaped);
if (!(MIMEIn = popen(FileCommandLine.mb_str(), "r"))){
wxMessageBox(_("The file with the filename given doesn't exist."), _("Error opening picture/audio file"), wxICON_ERROR);
return wxEmptyString;
}
while(fgets(MIMEData, sizeof(MIMEData), MIMEIn) != NULL){
MIMEResult.Append(wxString::FromUTF8(MIMEData));
}
pclose(MIMEIn);
MIMEResult.Trim();
#endif
return MIMEResult;
}