If no mask is supplied or the mask is attached to the end of the filename, we end up with unexpected names like
<system-temp-dir>\lyx_tmpdir.qHp780.vcr780_<mask>
instead of a temporary file in the lyx temporary directory like
<system-temp-dir>\lyx_tmpdir.qHp780\<mask>.vcr780.
(cherry picked from commit
5e4e4b674c00bc546213d42258f19e13a2b28bc3)
// some kind of garbage collection there, or a shared_ptr, then this
// would not be needed.
static Buffer * buffer = theBufferList().newBuffer(
- FileName::tempName().absFileName() + "_clipboard.internal");
+ FileName::tempName("clipboard.internal").absFileName());
buffer->setUnnamed(true);
buffer->paragraphs() = paragraphs;
buffer->inset().setBuffer(*buffer);
LayoutFileIndex LayoutFileList::addEmptyClass(string const & textclass)
{
- FileName const tempLayout = FileName::tempName();
+ FileName const tempLayout = FileName::tempName("basic_layout");
ofstream ofs(tempLayout.toFilesystemEncoding().c_str());
// This writes a very basic class, but it also attempts to include
// stdclass.inc. That would give us something moderately usable.
EmbeddedWorkArea::EmbeddedWorkArea(QWidget * w): GuiWorkArea(w)
{
buffer_ = theBufferList().newBuffer(
- support::FileName::tempName().absFileName() + "_embedded.internal");
+ support::FileName::tempName("embedded.internal").absFileName());
buffer_->setUnnamed(true);
buffer_->setFullyLoaded(true);
setBuffer(*buffer_);
/// \p mask must be in filesystem encoding, if it contains a
/// relative path, the template file will be created in the global
/// temporary directory as given by 'package().temp_dir()'.
- static FileName tempName(std::string const & mask = empty_string());
+ static FileName tempName(std::string const & mask);
static FileName tempName(FileName const & temp_dir,
std::string const & mask);
- When configuring LyX, check for all LaTeX-packages LyX uses to display
symbols (bug 8102).
+- Fix the naming of some temporary files such that they are created
+ in LyX's temporary directory.
+
* USER INTERFACE