]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.cpp
Add support for todonotes package
[lyx.git] / src / Buffer.cpp
index 4331309857d5420088394f9c0c9389fac1549c9e..cde0419b34746224b416a9c20b8f48061fd6b873 100644 (file)
@@ -97,6 +97,7 @@
 #include "support/gzstream.h"
 #include "support/lstrings.h"
 #include "support/lyxalgo.h"
+#include "support/mutex.h"
 #include "support/os.h"
 #include "support/Package.h"
 #include "support/PathChanger.h"
@@ -353,13 +354,20 @@ private:
 /// Creates the per buffer temporary directory
 static FileName createBufferTmpDir()
 {
-       // FIXME THREAD
-       static int count;
+       // FIXME This would be the ideal application for a TempDir class (like
+       //       TempFile but for directories) 
+       string counter;
+       {
+               static int count;
+               static Mutex mutex;
+               Mutex::Locker locker(&mutex);
+               counter = convert<string>(count++);
+       }
        // We are in our own directory.  Why bother to mangle name?
        // In fact I wrote this code to circumvent a problematic behaviour
        // (bug?) of EMX mkstemp().
        FileName tmpfl(package().temp_dir().absFileName() + "/lyx_tmpbuf" +
-               convert<string>(count++));
+               counter);
 
        if (!tmpfl.createDirectory(0777)) {
                throw ExceptionMessage(WarningException, _("Disk Error: "), bformat(
@@ -645,7 +653,7 @@ BufferParams const & Buffer::masterParams() const
        // Copy child authors to the params. We need those pointers.
        AuthorList const & child_authors = params().authors();
        AuthorList::Authors::const_iterator it = child_authors.begin();
-       for (; it != child_authors.end(); it++)
+       for (; it != child_authors.end(); ++it)
                mparams.authors().record(*it);
        return mparams;
 }
@@ -1304,6 +1312,8 @@ bool Buffer::save() const
                                                      mangledName));
                }
 
+               LYXERR(Debug::FILES, "Backing up original file to " <<
+                               backupName.absFileName());
                // Except file is symlink do not copy because of #6587.
                // Hard links have bad luck.
                made_backup = symlink ?
@@ -3499,7 +3509,7 @@ void Buffer::changeRefsIfUnique(docstring const & from, docstring const & to)
 }
 
 
-void Buffer::getSourceCode(odocstream & os, string const format,
+void Buffer::getSourceCode(odocstream & os, string const format,
                           pit_type par_begin, pit_type par_end,
                           OutputWhat output, bool master) const
 {