<< ' ' << quoteName(lyx2lyx.toFilesystemEncoding())
<< " -t " << convert<string>(LYX_FORMAT)
<< " -o " << quoteName(tmpfile.toFilesystemEncoding())
- << ' ' << quoteName(filename.toFilesystemEncoding());
+ << ' ' << quoteName(filename.toSafeFilesystemEncoding());
string const command_str = command.str();
LYXERR(Debug::INFO, "Running '" << command_str << '\'');
// We don't need autosaves in the immediate future. (Asger)
resetAutosaveTimers();
- string const encodedFilename = d->filename.toFilesystemEncoding();
-
FileName backupName;
bool madeBackup = false;
makeDisplayPath(fname.absFilename()));
message(str);
+ string const encoded_fname = fname.toSafeFilesystemEncoding(os::CREATE);
+
if (params().compressed) {
- gz::ogzstream ofs(fname.toFilesystemEncoding().c_str(), ios::out|ios::trunc);
+ gz::ogzstream ofs(encoded_fname.c_str(), ios::out|ios::trunc);
retval = ofs && write(ofs);
} else {
- ofstream ofs(fname.toFilesystemEncoding().c_str(), ios::out|ios::trunc);
+ ofstream ofs(encoded_fname.c_str(), ios::out|ios::trunc);
retval = ofs && write(ofs);
}
// We don't know the encoding of inputpath
docstring const inputpath = from_utf8(latex_path(original_path));
docstring uncodable_glyphs;
- for (size_t n = 0; n < inputpath.size(); ++n) {
- docstring const glyph = docstring(1, inputpath[n]);
- try {
- if (runparams.encoding
- && runparams.encoding->latexChar(inputpath[n]) != glyph) {
+ Encoding const * const enc = runparams.encoding;
+ if (enc) {
+ for (size_t n = 0; n < inputpath.size(); ++n) {
+ docstring const glyph =
+ docstring(1, inputpath[n]);
+ if (enc->latexChar(inputpath[n], true) != glyph) {
LYXERR0("Uncodable character '"
<< glyph
<< "' in input path!");
uncodable_glyphs += glyph;
}
- } catch (EncodingException & /* e */) {
- LYXERR0("Uncodable character '"
- << glyph
- << "' in input path!");
- uncodable_glyphs += glyph;
}
}
// warn user if we found uncodable glyphs.
if (!uncodable_glyphs.empty()) {
- frontend::Alert::warning(_("Uncodable character in path"),
+ frontend::Alert::warning(_("Uncodable character in file path"),
support::bformat(_("The path of your document\n"
"(%1$s)\n"
"contains glyphs that are unknown in the\n"
"current document encoding (namely %2$s).\n"
"This will likely result in incomplete output.\n\n"
"Chose an appropriate document encoding (such as utf8)\n"
- "or change the path name."), inputpath, uncodable_glyphs));
+ "or change the file path name."), inputpath, uncodable_glyphs));
} else {
os << "\\makeatletter\n"
- << "\\def\\input@path{{"
- << inputpath << "/}}\n"
- << "\\makeatother\n";
+ << "\\def\\input@path{{"
+ << inputpath << "/}}\n"
+ << "\\makeatother\n";
d->texrow.newline();
d->texrow.newline();
d->texrow.newline();
{
LaTeXFeatures features(*this, params(), runparams);
validate(features);
- updateLabels(UpdateMaster, OutputUpdate);
+ updateBuffer(UpdateMaster, OutputUpdate);
checkBibInfoCache();
d->bibinfo_.makeCitationLabels(*this);
updateMacros();
OutputParams runparams(¶ms().encoding());
runparams.flavor = OutputParams::LATEX;
runparams.nice = false;
+ runparams.linelen = lyxrc.plaintext_linelen;
makeLaTeXFile(FileName(name), org_path, runparams);
TeXErrors terr;
case LFUN_BUFFER_EXPORT: {
bool success = doExport(argument, false, false);
- dr.setError(success);
+ dr.setError(!success);
if (!success)
dr.setMessage(bformat(_("Error exporting to format: %1$s."),
func.argument()));
void Buffer::getLanguages(std::set<Language const *> & languages) const
{
ParConstIterator end = par_iterator_end();
+ // add the buffer language, even if it's not actively used
+ languages.insert(language());
+ // iterate over the paragraphs
for (ParConstIterator it = par_iterator_begin(); it != end; ++it)
it->getLanguages(languages);
// also children
}
-void Buffer::updateLabels(UpdateScope scope, UpdateType utype) const
+void Buffer::updateBuffer(UpdateScope scope, UpdateType utype) const
{
// Use the master text class also for child documents
Buffer const * const master = masterBuffer();
// If this is a child document start with the master
if (master != this) {
bufToUpdate.insert(this);
- master->updateLabels(UpdateMaster, utype);
+ master->updateBuffer(UpdateMaster, utype);
// Do this here in case the master has no gui associated with it. Then,
// the TocModel is not updated and TocModel::toc_ is invalid (bug 5699).
if (!master->d->gui_)
// do the real work
ParIterator parit = cbuf.par_iterator_begin();
- updateLabels(parit, utype);
+ updateBuffer(parit, utype);
if (master != this)
// TocBackend update will be done later.
}
-void Buffer::updateLabels(ParIterator & parit, UpdateType utype) const
+void Buffer::updateBuffer(ParIterator & parit, UpdateType utype) const
{
LASSERT(parit.pit() == 0, /**/);
InsetList::const_iterator end = parit->insetList().end();
for (; iit != end; ++iit) {
parit.pos() = iit->pos;
- iit->inset->updateLabels(parit, utype);
+ iit->inset->updateBuffer(parit, utype);
}
}
}
bool const success = loadLyXFile(d->filename);
if (success) {
- updateLabels();
+ updateBuffer();
changed(true);
markClean();
message(bformat(_("Document %1$s reloaded."), disp_fn));