X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fgraphics%2FGraphicsConverter.cpp;h=4930f0d7a0a98888726df8f706d7652ff751b036;hb=f887efedf11c198d9b6cc19911fa0a32a93496f3;hp=ccfb57ce4b4a02f9dfa3a1507713de677856987c;hpb=5e47fc73d5e6d1205b186a78da6261ad3c4bae4d;p=lyx.git diff --git a/src/graphics/GraphicsConverter.cpp b/src/graphics/GraphicsConverter.cpp index ccfb57ce4b..4930f0d7a0 100644 --- a/src/graphics/GraphicsConverter.cpp +++ b/src/graphics/GraphicsConverter.cpp @@ -142,6 +142,7 @@ Converter::Impl::Impl(FileName const & from_file, string const & to_file_base, << "\n--------------------------------------\n"); // Output the script to file. + // FIXME THREAD static int counter = 0; script_file_ = FileName(onlyPath(to_file_base) + "lyxconvert" + convert(counter++) + ".py"); @@ -255,13 +256,20 @@ static void build_conversion_command(string const & command, ostream & script) } +static string const strip_digit(string const & format) +{ + // Strip trailing digits from format names e.g. "pdf6" -> "pdf" + return format.substr(0, format.find_last_not_of("0123456789") + 1); +} + + static void build_script(string const & from_file, string const & to_file, string const & from_format, string const & to_format, ostream & script) { - LASSERT(from_format != to_format, /**/); + LASSERT(from_format != to_format, return); LYXERR(Debug::GRAPHICS, "build_script ... "); typedef Graph::EdgePath EdgePath; @@ -281,6 +289,7 @@ static void build_script(string const & from_file, // Create a temporary base file-name for all intermediate steps. // Remember to remove the temp file because we only want the name... + // FIXME THREAD static int counter = 0; string const tmp = "gconvert" + convert(counter++); string const to_base = FileName::tempName(tmp).toFilesystemEncoding(); @@ -318,12 +327,12 @@ static void build_script(string const & from_file, << libScriptSearch("$$s/scripts/convertDefault.py", quote_python) << ' '; if (!from_format.empty()) - os << from_format << ':'; + os << strip_digit(from_format) << ':'; // The extra " quotes around infile and outfile are needed // because the filename may contain spaces and it is used // as argument of os.system(). os << "' + '\"' + infile + '\"' + ' " - << to_format << ":' + '\"' + outfile + '\"' + '"; + << strip_digit(to_format) << ":' + '\"' + outfile + '\"' + '"; string const command = os.str(); LYXERR(Debug::GRAPHICS,