#include "Format.h"
#include "support/debug.h"
+#include "support/docstream.h"
#include "support/filetools.h"
#include "support/FileName.h"
-#include "support/regex.h"
+
+#include <regex>
using namespace std;
using namespace lyx::support;
// end of the file. Than we have in the header:
// %%BoundingBox: (atend)
// In this case we must check the end.
- bool zipped = file.isZippedFile();
+ bool const zipped = theFormats().isZippedFile(file);
FileName const file_ = zipped ? unzipFile(file) : file;
- string const format = file_.guessFormatFromContents();
+ string const format = theFormats().getFormatFromFile(file_);
- if (format != "eps" && format != "ps") {
+ if (!Formats::isPostScriptFileFormat(format)) {
LYXERR(Debug::GRAPHICS, "[readBB_from_PSFile] no(e)ps-format");
if (zipped)
file_.removeFile();
return string();
}
- static lyx::regex bbox_re(
- "^%%BoundingBox:\\s*([[:digit:]]+)\\s+([[:digit:]]+)\\s+([[:digit:]]+)\\s+([[:digit:]]+)");
+ static regex bbox_re("^%%BoundingBox:\\s*([-]*[[:digit:]]+)"
+ "\\s+([-]*[[:digit:]]+)\\s+([-]*[[:digit:]]+)\\s+([-]*[[:digit:]]+)");
ifstream is(file_.toFilesystemEncoding().c_str());
while (is) {
string s;
getline(is,s);
- lyx::smatch what;
+ smatch what;
if (regex_match(s, what, bbox_re)) {
// Our callers expect the tokens in the string
// separated by single spaces.