]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.cpp
typo
[lyx.git] / src / Buffer.cpp
index 0882c3d3c31402b5a0a552ea2c394890322c01f2..0c0c9dfac72a9939bc8955df357de802148603b8 100644 (file)
@@ -83,6 +83,7 @@
 #include "graphics/GraphicsCache.h"
 #include "graphics/PreviewLoader.h"
 
+#include "frontends/Application.h"
 #include "frontends/alert.h"
 #include "frontends/Delegates.h"
 #include "frontends/WorkAreaManager.h"
@@ -465,6 +466,11 @@ Buffer::Impl::Impl(Buffer * owner, FileName const & file, bool readonly_,
        if (!cloned_buffer_) {
                temppath = createBufferTmpDir();
                lyxvc.setBuffer(owner_);
+               Language const * inplang = theApp() ?
+                                       languages.getFromCode(theApp()->inputLanguageCode())
+                                     : nullptr;
+               if (inplang)
+                       params.language = inplang;
                if (use_gui)
                        wa_ = new frontend::WorkAreaManager;
                return;
@@ -1934,9 +1940,15 @@ Buffer::ExportStatus Buffer::writeLaTeXSource(otexstream & os,
                                        os << "\\catcode`\\%=11"
                                              "\\def\\%{%}\\catcode`\\%=14\n";
                                }
-                               bool const detokenize = !isAscii(from_utf8(docdir))
-                                               || contains(docdir, '~');
+                               if (contains(docdir, '~'))
+                                       docdir = subst(docdir, "~", "\\string~");
+                               bool const nonascii = !isAscii(from_utf8(docdir));
+                               // LaTeX 2019/10/01 handles non-ascii path without detokenize
+                               bool const utfpathlatex = features.isAvailable("LaTeX-2019/10/01");
+                               bool const detokenize = !utfpathlatex && nonascii;
                                bool const quote = contains(docdir, ' ');
+                               if (utfpathlatex && nonascii)
+                                       os << "\\UseRawInputEncoding\n";
                                os << "\\makeatletter\n"
                                   << "\\def\\input@path{{";
                                if (detokenize)
@@ -1962,6 +1974,9 @@ Buffer::ExportStatus Buffer::writeLaTeXSource(otexstream & os,
                runparams.use_babel = params().writeLaTeX(os, features,
                                                          d->filename.onlyPath());
 
+               // Active characters
+               runparams.active_chars = features.getActiveChars();
+
                // Biblatex bibliographies are loaded here
                if (params().useBiblatex()) {
                        vector<pair<docstring, string>> const bibfiles =
@@ -3574,7 +3589,7 @@ typename M::const_iterator greatest_below(M & m, typename M::key_type const & x)
        if (it == m.begin())
                return m.end();
 
-       it--;
+       --it;
        return it;
 }
 
@@ -4482,9 +4497,7 @@ Buffer::ExportStatus Buffer::doExport(string const & target, bool put_in_tempdir
                                if (format == "pdf4")
                                        s += "\n"
                                          + bformat(_("Hint: use non-TeX fonts or set input encoding "
-                                                     " to '%1$s' or '%2$s'"),
-                                                   from_utf8(encodings.fromLyXName("utf8")->guiName()),
-                                                   from_utf8(encodings.fromLyXName("ascii")->guiName()));
+                                                 " to '%1$s'"), from_utf8(encodings.fromLyXName("ascii")->guiName()));
                                Alert::error(_("Couldn't export file"), s);
                        }
                        return ExportNoPathToFormat;
@@ -4631,7 +4644,7 @@ Buffer::ExportStatus Buffer::doExport(string const & target, bool put_in_tempdir
                result_file = dest_filename;
        // We need to copy referenced files (e. g. included graphics
        // if format == "dvi") to the result dir.
-       vector<ExportedFile> const files =
+       vector<ExportedFile> const extfiles =
                runparams.exportdata->externalFiles(format);
        string const dest = runparams.export_folder.empty() ?
                onlyPath(result_file) : runparams.export_folder;
@@ -4639,7 +4652,7 @@ Buffer::ExportStatus Buffer::doExport(string const & target, bool put_in_tempdir
                                 : force_overwrite == ALL_FILES;
        CopyStatus status = use_force ? FORCE : SUCCESS;
 
-       for (ExportedFile const & exp : files) {
+       for (ExportedFile const & exp : extfiles) {
                if (status == CANCEL) {
                        message(_("Document export cancelled."));
                        return ExportCancel;