]> git.lyx.org Git - lyx.git/blobdiff - src/Converter.cpp
The logic of the endParagraph() routine is wrong. We should first
[lyx.git] / src / Converter.cpp
index a421c5317041930837fdacbcb9ca2cb1b59331a8..5d4a1326f9cbab4d2f34fd27c04861d7e57dad92 100644 (file)
@@ -50,6 +50,7 @@ string const token_base("$$b");
 string const token_to("$$o");
 string const token_path("$$p");
 string const token_orig_path("$$r");
+string const token_orig_from("$$f");
 string const token_encoding("$$e");
 string const token_latex_encoding("$$E");
 
@@ -333,6 +334,8 @@ bool Converters::convert(Buffer const * buffer,
        // This has the added benefit that all other files that may be
        // generated by the converter are deleted when LyX closes and do not
        // clutter the real working directory.
+       // FIXME: This does not work if path is an UNC path on windows
+       //        (bug 6127).
        string const path(onlyPath(from_file.absFileName()));
        // Prevent the compiler from optimizing away p
        FileName pp(path);
@@ -355,7 +358,7 @@ bool Converters::convert(Buffer const * buffer,
                               << conv.from << " to " << conv.to);
                }
                infile = outfile;
-               outfile = FileName(conv.result_dir.empty()
+               outfile = FileName(conv.result_file.empty()
                        ? changeExtension(from_file.absFileName(), conv.To->extension())
                        : addName(subst(conv.result_dir,
                                        token_base, from_base),
@@ -365,6 +368,9 @@ bool Converters::convert(Buffer const * buffer,
                // if input and output files are equal, we use a
                // temporary file as intermediary (JMarc)
                FileName real_outfile;
+               if (!conv.result_file.empty())
+                       real_outfile = FileName(changeExtension(from_file.absFileName(),
+                               conv.To->extension()));
                if (outfile == infile) {
                        real_outfile = infile;
                        // when importing, a buffer does not necessarily exist
@@ -407,6 +413,7 @@ bool Converters::convert(Buffer const * buffer,
                        command = subst(command, token_to, quoteName(outfile2));
                        command = subst(command, token_path, quoteName(onlyPath(infile.absFileName())));
                        command = subst(command, token_orig_path, quoteName(onlyPath(orig_from.absFileName())));
+                       command = subst(command, token_orig_from, quoteName(onlyFileName(orig_from.absFileName())));
                        command = subst(command, token_encoding, buffer ? buffer->params().encoding().iconvName() : string());
                        command = libScriptSearch(command);