X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FFormat.cpp;h=f031b6806d42562838a242e422e0fecb905ba1e8;hb=11adfbf64ddd815d2dd8a16e03a528aee837866e;hp=c20ac9ed43fbb7896aae91156cc7e9dbee3ac7ee;hpb=de6e4a2937859d1a8375dbf24e8096c615a1a317;p=lyx.git diff --git a/src/Format.cpp b/src/Format.cpp index c20ac9ed43..f031b6806d 100644 --- a/src/Format.cpp +++ b/src/Format.cpp @@ -375,32 +375,34 @@ string Formats::getFormatFromFile(FileName const & filename) const return string(); #ifdef HAVE_MAGIC_H - magic_t magic_cookie = magic_open(MAGIC_MIME); - if (magic_cookie) { - string format; - if (magic_load(magic_cookie, NULL) != 0) { - LYXERR(Debug::GRAPHICS, "Formats::getFormatFromFile\n" - << "\tCouldn't load magic database - " - << magic_error(magic_cookie)); - } else { - string mime = magic_file(magic_cookie, - filename.toFilesystemEncoding().c_str()); - mime = token(mime, ';', 0); - // we need our own ps/eps detection - if (mime != "application/postscript") { - Formats::const_iterator cit = - find_if(formatlist.begin(), formatlist.end(), - FormatMimeEqual(mime)); - if (cit != formats.end()) { - LYXERR(Debug::GRAPHICS, "\tgot format from MIME type: " - << mime << " -> " << cit->name()); - format = cit->name(); + if (filename.exists()) { + magic_t magic_cookie = magic_open(MAGIC_MIME); + if (magic_cookie) { + string format; + if (magic_load(magic_cookie, NULL) != 0) { + LYXERR(Debug::GRAPHICS, "Formats::getFormatFromFile\n" + << "\tCouldn't load magic database - " + << magic_error(magic_cookie)); + } else { + string mime = magic_file(magic_cookie, + filename.toFilesystemEncoding().c_str()); + mime = token(mime, ';', 0); + // we need our own ps/eps detection + if ((mime != "application/postscript") && (mime != "text/plain")) { + Formats::const_iterator cit = + find_if(formatlist.begin(), formatlist.end(), + FormatMimeEqual(mime)); + if (cit != formats.end()) { + LYXERR(Debug::GRAPHICS, "\tgot format from MIME type: " + << mime << " -> " << cit->name()); + format = cit->name(); + } } } + magic_close(magic_cookie); + if (!format.empty()) + return format; } - magic_close(magic_cookie); - if (!format.empty()) - return format; } #endif