Always require a mask to get a temporary filename

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.
This commit is contained in:
Vincent van Ravesteijn 2012-05-03 11:55:54 +02:00
parent bc746efed8
commit 5e4e4b674c
4 changed files with 4 additions and 4 deletions

View File

@ -471,7 +471,7 @@ void putClipboard(ParagraphList const & paragraphs,
// 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);

View File

@ -212,7 +212,7 @@ string layoutpost =
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.

View File

@ -1415,7 +1415,7 @@ GuiView & GuiWorkArea::view()
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_);

View File

@ -174,7 +174,7 @@ public:
/// \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);