]> git.lyx.org Git - lyx.git/blobdiff - src/Converter.cpp
Make script inset much tighter in texted.
[lyx.git] / src / Converter.cpp
index 118d0b66ce3ba3da302be53b4693e125b7e83cc8..d5686f666da5a6a2152b7188333d0137ad2e97f8 100644 (file)
@@ -476,19 +476,22 @@ Converters::RetVal Converters::convert(Buffer const * buffer,
        runparams.flavor = getFlavor(edgepath, buffer);
 
        if (buffer) {
+               BufferParams const & bp = buffer->params();
                runparams.use_japanese =
-                       (buffer->params().bufferFormat() == "latex"
-                        || suffixIs(buffer->params().bufferFormat(), "-ja"))
-                       && buffer->params().encoding().package() == Encoding::japanese;
-               runparams.use_indices = buffer->params().use_indices;
-               runparams.bibtex_command = buffer->params().bibtexCommand();
-               runparams.index_command = (buffer->params().index_command == "default") ?
-                       string() : buffer->params().index_command;
-               runparams.document_language = buffer->params().language->babel();
-               runparams.main_fontenc = buffer->params().main_font_encoding();
-               runparams.only_childbibs = !buffer->params().useBiblatex()
-                               && !buffer->params().useBibtopic()
-                               && buffer->params().multibib == "child";
+                       (bp.bufferFormat() == "latex"
+                        || suffixIs(bp.bufferFormat(), "-ja"))
+                       && bp.encoding().package() == Encoding::japanese;
+               runparams.use_indices = bp.use_indices;
+               runparams.bibtex_command = bp.bibtexCommand();
+               runparams.index_command = (bp.index_command == "default") ?
+                       string() : bp.index_command;
+               runparams.document_language = bp.language->babel();
+               runparams.xindy_language = bp.language->xindy();
+               // Some macros rely on font encoding
+               runparams.main_fontenc = bp.main_font_encoding();
+               runparams.only_childbibs = !bp.useBiblatex()
+                               && !bp.useBibtopic()
+                               && bp.multibib == "child";
        }
 
        // Some converters (e.g. lilypond) can only output files to the
@@ -860,7 +863,7 @@ Converters::RetVal Converters::runLaTeX(Buffer const & buffer, string const & co
        string const name = buffer.latexName();
        LaTeX latex(command, runparams, FileName(makeAbsPath(name)),
                    buffer.filePath(), buffer.layoutPos(),
-                   buffer.isClone(), buffer.lastPreviewError());
+                   buffer.isClone(), buffer.freshStartRequired());
        TeXErrors terr;
        // The connection closes itself at the end of the scope when latex is
        // destroyed. One cannot close (and destroy) buffer while the converter is
@@ -879,6 +882,14 @@ Converters::RetVal Converters::runLaTeX(Buffer const & buffer, string const & co
        if (result & LaTeX::ERRORS)
                buffer.bufferErrors(terr, errorList);
 
+       if ((result & LaTeX::UNDEF_CIT) || (result & LaTeX::UNDEF_REF)) {
+               buffer.bufferRefs(terr, errorList);
+               if (errorList.empty())
+                       errorList.push_back(ErrorItem(_("Undefined reference"),
+                               _("Undefined reference or citation was found during the build, please check the Log."),
+                               &buffer));
+       }
+
        if (!errorList.empty()) {
          // We will show the LaTeX Errors GUI later which contains
          // specific error messages so it would be repetitive to give
@@ -907,6 +918,8 @@ Converters::RetVal Converters::runLaTeX(Buffer const & buffer, string const & co
        int const ERROR_MASK =
                        LaTeX::NO_LOGFILE |
                        LaTeX::ERRORS |
+                       LaTeX::UNDEF_CIT |
+                       LaTeX::UNDEF_REF |
                        LaTeX::NO_OUTPUT;
 
        return (result & ERROR_MASK) == 0 ? SUCCESS : FAILURE;