]> git.lyx.org Git - lyx.git/blobdiff - src/support/filetools.h
Compilation fix (with qt4 at least).
[lyx.git] / src / support / filetools.h
index 0146474d0715d903e69c00fbffac1eb09bf8cae1..05b3d705ec740f66b5de6150a3c51828f07e0138 100644 (file)
 
 #include <utility>
 #include <string>
+#include <set>
 
 namespace lyx {
 namespace support {
 
 class FileName;
 
+/// Record used temp file names
+static std::set<std::string> tmp_names_;
+
+/// Get a temporary file name.
+/**
+* The actual temp file (QTemporaryFile object) is immediately
+* destroyed after the name has been generated, so a new file
+* has to be created manually from the name.
+* This is needed if the temp file has to be manually removed
+* (e.g., when temp files are used as conversion target, and the initial
+* file only serves as a placeholder), since QTemporaryFile objects
+* cannot be manually removed at least on Windows (they are always
+* kept open internally even after close()).
+* In order to avoid race conditions due to duplicate names, we record
+* all used temp file names.
+* If you don't have to remove the temp file manually, use TempFile instead!
+*/
+FileName const tempFileName(std::string const &, bool const dir = false);
+
+/// Remove and unregister a temporary file.
+void removeTempFile(FileName const &);
+
 /** Creates the global LyX temp dir.
   \p deflt can be an existing directory name. In this case a new directory
   inside \p deflt is created. If \p deflt does not exist yet, \p deflt is
@@ -282,7 +305,8 @@ bool readLink(FileName const & file, FileName & link);
  * \param format The file format as used by kpsewhich, e.g. "bib", "bst" etc.
  */
 FileName const findtexfile(std::string const & fil,
-                             std::string const & format);
+                                                  std::string const & format,
+                                                  bool const onlykpse = false);
 
 /** \param file1, file2 the two files to be compared. Must have absolute paths.
  *  \returns 1 if \c file1 has a more recent timestamp than \c file2,