]> git.lyx.org Git - lyx.git/blobdiff - src/LaTeX.cpp
Rename BufferView::updateScrollbar to show what does
[lyx.git] / src / LaTeX.cpp
index 81f8a39b3af9a60ac0b9697284fcdfae836a5a88..ce3d73eef2171ade4a6208e7ec64f3f7c2d00526 100644 (file)
 
 #include <config.h>
 
+#include "LaTeX.h"
+
 #include "Buffer.h"
 #include "BufferList.h"
 #include "BufferParams.h"
-#include "LaTeX.h"
 #include "LyXRC.h"
 #include "LyX.h"
 #include "DepTable.h"
 #include "Encoding.h"
+#include "Language.h"
 
 #include "support/debug.h"
+#include "support/docstring.h"
 #include "support/convert.h"
 #include "support/FileName.h"
 #include "support/filetools.h"
@@ -33,9 +36,8 @@
 #include "support/Systemcall.h"
 #include "support/os.h"
 
-#include "support/regex.h"
-
 #include <fstream>
+#include <regex>
 #include <stack>
 
 
@@ -133,6 +135,7 @@ LaTeX::LaTeX(string const & latex, OutputParams const & rp,
 
 void LaTeX::removeAuxiliaryFiles() const
 {
+       LYXERR(Debug::LATEX, "Removing auxiliary files");
        // Note that we do not always call this function when there is an error.
        // For example, if there is an error but an output file is produced we
        // still would like to output (export/view) the file.
@@ -541,13 +544,15 @@ int LaTeX::runMakeIndex(string const & f, OutputParams const & rp,
 
        if (!rp.index_command.empty())
                tmp = rp.index_command;
+
+       Language const * doc_lang = languages.getLanguage(rp.document_language);
        
        if (contains(tmp, "$$x")) {
                // This adds appropriate [te]xindy options
                // such as language and codepage (for the
                // main document language/encoding) as well
                // as input markup (latex or xelatex)
-               string xdyopts = rp.xindy_language;
+               string xdyopts = doc_lang ? doc_lang->xindy() : string();
                if (!xdyopts.empty())
                        xdyopts = "-L " + xdyopts;
                if (rp.isFullUnicode() && rp.encoding->package() == Encoding::none) {
@@ -580,7 +585,10 @@ int LaTeX::runMakeIndex(string const & f, OutputParams const & rp,
                "idx file has been made, running index processor ("
                << tmp << ") on file " << f);
 
-       tmp = subst(tmp, "$$lang", rp.document_language);
+       if (doc_lang) {
+               tmp = subst(tmp, "$$lang", doc_lang->babel());
+               tmp = subst(tmp, "$$lcode", doc_lang->code());
+       }
        if (rp.use_indices) {
                tmp = lyxrc.splitindex_command + " -m " + quoteName(tmp);
                LYXERR(Debug::LATEX,
@@ -760,7 +768,7 @@ bool LaTeX::runBibTeX(vector<AuxInfo> const & bibtex_info,
                                it->aux_file.absFileName())));
                Systemcall one;
                Systemcall::Starttype const starttype = 
-               allow_cancel ? Systemcall::WaitLoop : Systemcall::Wait;
+                       allow_cancel ? Systemcall::WaitLoop : Systemcall::Wait;
                exit_code = one.startscript(starttype, tmp, path, lpath, true);
                if (exit_code) {
                        return result;
@@ -787,7 +795,7 @@ int LaTeX::scanLogFile(TeXErrors & terr)
        string tmp =
                onlyFileName(changeExtension(file.absFileName(), ".log"));
        LYXERR(Debug::LATEX, "Log file: " << tmp);
-       FileName const fn = FileName(makeAbsPath(tmp));
+       FileName const fn = makeAbsPath(tmp);
        // FIXME we should use an ifdocstream here and a docstring for token
        // below. The encoding of the log file depends on the _output_ (font)
        // encoding of the TeX file (T1, TU etc.). See #10728.
@@ -1619,10 +1627,9 @@ int LaTeX::scanBlgFile(DepTable & dep, TeXErrors & terr)
                } else if (regex_match(token, sub, biberError)) {
                        retval |= BIBTEX_ERROR;
                        string errstr = N_("Biber error: ") + sub.str(2);
-                       string msg = token;
                        terr.insertError(0,
                                         from_local8bit(errstr),
-                                        from_local8bit(msg));
+                                        from_local8bit(token));
                }
                prevtoken = token;
        }
@@ -1642,7 +1649,6 @@ int LaTeX::scanIlgFile(TeXErrors & terr)
        string prevtoken;
        while (getline(ifs, token)) {
                token = rtrim(token, "\r");
-               smatch sub;
                if (prefixIs(token, "!! "))
                        prevtoken = token;
                else if (!prevtoken.empty()) {
@@ -1657,10 +1663,9 @@ int LaTeX::scanIlgFile(TeXErrors & terr)
                } else if (prefixIs(token, "ERROR: ")) {
                        retval |= BIBTEX_ERROR;
                        string errstr = N_("Xindy error: ") + token.substr(6);
-                       string msg = token;
                        terr.insertError(0,
                                         from_local8bit(errstr),
-                                        from_local8bit(msg));
+                                        from_local8bit(token));
                }
        }
        return retval;