// we first write the file to a new name, then move it to its
// proper location once that has been done successfully. that
// way we preserve the original file if something goes wrong.
- TempFile tempfile(fileName().onlyPath(), "tmpXXXXXX.lyx");
+ string const justname = fileName().onlyFileNameWithoutExt();
+ boost::scoped_ptr<TempFile>
+ tempfile(new TempFile(fileName().onlyPath(),
+ justname + "-XXXXXX.lyx"));
bool const symlink = fileName().isSymLink();
if (!symlink)
- tempfile.setAutoRemove(false);
+ tempfile->setAutoRemove(false);
- FileName savefile(tempfile.name());
+ FileName savefile(tempfile->name());
LYXERR(Debug::FILES, "Saving to " << savefile.absFileName());
if (!writeFile(savefile))
return false;
}
}
+ // Destroy tempfile since it keeps the file locked on windows (bug 9234)
+ // Only do this if tempfile is not in autoremove mode
+ if (!symlink)
+ tempfile.reset();
// If we have no symlink, we can simply rename the temp file.
// Otherwise, we need to copy it so the symlink stays intact.
if (made_backup && symlink ? savefile.copyTo(fileName(), true) :
writeLaTeXSource(os, original_path, runparams, output);
}
catch (EncodingException const & e) {
- odocstringstream ods;
- ods.put(e.failed_char);
+ docstring const failed(1, e.failed_char);
ostringstream oss;
oss << "0x" << hex << e.failed_char << dec;
docstring msg = bformat(_("Could not find LaTeX command for character '%1$s'"
" (code point %2$s)"),
- ods.str(), from_utf8(oss.str()));
+ failed, from_utf8(oss.str()));
errorList.push_back(ErrorItem(msg, _("Some characters of your document are probably not "
"representable in the chosen encoding.\n"
"Changing the document encoding to utf8 could help."),
Graph::EdgePath::const_iterator it = path.begin();
Graph::EdgePath::const_iterator en = path.end();
for (; it != en; ++it)
- if (theConverters().get(*it).nice) {
+ if (theConverters().get(*it).nice()) {
need_nice_file = true;
break;
}
return preview(format, update_unincluded);
}
+
Buffer::ExportStatus Buffer::preview(string const & format, bool includeall) const
{
MarkAsExporting exporting(this);