From: Juergen Spitzmueller Date: Sat, 30 Mar 2019 08:50:55 +0000 (+0100) Subject: Consider individual bib file encoding when parsing X-Git-Tag: lyx-2.4.0dev-acb2ca7b~2292 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=aa5add6b96326cbe5b3609cd0a795f80303a70f2;p=lyx.git Consider individual bib file encoding when parsing --- diff --git a/src/insets/InsetBibtex.cpp b/src/insets/InsetBibtex.cpp index c4bf8721c1..0b879e1c50 100644 --- a/src/insets/InsetBibtex.cpp +++ b/src/insets/InsetBibtex.cpp @@ -139,7 +139,7 @@ void InsetBibtex::editDatabases() const if (bibfilelist.empty()) return; - int nr_databases = bibfilelist.size(); + size_t nr_databases = bibfilelist.size(); if (nr_databases > 1) { docstring const engine = usingBiblatex() ? _("Biblatex") : _("BibTeX"); docstring message = bformat(_("The %1$s[[BibTeX/Biblatex]] inset includes %2$s databases.\n" @@ -676,8 +676,11 @@ void InsetBibtex::parseBibTeXFiles(FileNameList & checkedFiles) const // record that we check this. checkedFiles.push_back(bibfile); string encoding = buffer().masterParams().encoding().iconvName(); - string const ienc = to_ascii(params()["encoding"]); - if (!ienc.empty() && ienc != "default" && encodings.fromLyXName(ienc)) + string ienc = buffer().masterParams().bibFileEncoding(to_utf8(bf)); + if (ienc.empty() || ienc == "general") + ienc = to_ascii(params()["encoding"]); + + if (!ienc.empty() && ienc != "default" && ienc != "auto" && encodings.fromLyXName(ienc)) encoding = encodings.fromLyXName(ienc)->iconvName(); ifdocstream ifs(bibfile.toFilesystemEncoding().c_str(), ios_base::in, encoding); @@ -994,7 +997,7 @@ int InsetBibtex::plaintext(odocstringstream & os, refoutput += bibinfo.getInfo(entry.key(), buffer(), ci) + "\n\n"; } os << refoutput; - return refoutput.size(); + return int(refoutput.size()); }