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.

(cherry picked from commit 5e4e4b674c)
This commit is contained in:
Vincent van Ravesteijn 2012-05-03 11:55:54 +02:00
parent 53cea14986
commit 58946a2996
5 changed files with 7 additions and 4 deletions

View File

@ -470,7 +470,7 @@ void putClipboard(ParagraphList const & paragraphs,
// some kind of garbage collection there, or a shared_ptr, then this // some kind of garbage collection there, or a shared_ptr, then this
// would not be needed. // would not be needed.
static Buffer * buffer = theBufferList().newBuffer( static Buffer * buffer = theBufferList().newBuffer(
FileName::tempName().absFileName() + "_clipboard.internal"); FileName::tempName("clipboard.internal").absFileName());
buffer->setUnnamed(true); buffer->setUnnamed(true);
buffer->paragraphs() = paragraphs; buffer->paragraphs() = paragraphs;
buffer->inset().setBuffer(*buffer); buffer->inset().setBuffer(*buffer);

View File

@ -212,7 +212,7 @@ string layoutpost =
LayoutFileIndex LayoutFileList::addEmptyClass(string const & textclass) LayoutFileIndex LayoutFileList::addEmptyClass(string const & textclass)
{ {
FileName const tempLayout = FileName::tempName(); FileName const tempLayout = FileName::tempName("basic_layout");
ofstream ofs(tempLayout.toFilesystemEncoding().c_str()); ofstream ofs(tempLayout.toFilesystemEncoding().c_str());
// This writes a very basic class, but it also attempts to include // This writes a very basic class, but it also attempts to include
// stdclass.inc. That would give us something moderately usable. // stdclass.inc. That would give us something moderately usable.

View File

@ -1370,7 +1370,7 @@ bool GuiWorkArea::isFullScreen()
EmbeddedWorkArea::EmbeddedWorkArea(QWidget * w): GuiWorkArea(w) EmbeddedWorkArea::EmbeddedWorkArea(QWidget * w): GuiWorkArea(w)
{ {
buffer_ = theBufferList().newBuffer( buffer_ = theBufferList().newBuffer(
support::FileName::tempName().absFileName() + "_embedded.internal"); support::FileName::tempName("embedded.internal").absFileName());
buffer_->setUnnamed(true); buffer_->setUnnamed(true);
buffer_->setFullyLoaded(true); buffer_->setFullyLoaded(true);
setBuffer(*buffer_); setBuffer(*buffer_);

View File

@ -183,7 +183,7 @@ public:
/// \p mask must be in filesystem encoding, if it contains a /// \p mask must be in filesystem encoding, if it contains a
/// relative path, the template file will be created in the global /// relative path, the template file will be created in the global
/// temporary directory as given by 'package().temp_dir()'. /// 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, static FileName tempName(FileName const & temp_dir,
std::string const & mask); std::string const & mask);

View File

@ -91,6 +91,9 @@ What's new
- When configuring LyX, check for all LaTeX-packages LyX uses to display - When configuring LyX, check for all LaTeX-packages LyX uses to display
symbols (bug 8102). symbols (bug 8102).
- Fix the naming of some temporary files such that they are created
in LyX's temporary directory.
* USER INTERFACE * USER INTERFACE