for possible thread conflicts, of the sort Georg resolved at
6a30211f. I have made static variables const where possible,
and marked cases that looked potentially problematic with the
comment:
// FIXME THREAD
Many of these definitely are vulnerable to concurrent access, such
as the static variables declared at the start of output_latex.cpp.
Suppose, e.g., we were outputting latex and also displaying the
source of a different document.
I'd appreciate it if others could grep for "FIXME THREAD" and see
if some of these are harmless, or what.
each failure.
There are several places I was not sure what to do. These are marked
by comments beginning "LASSERT:" so they can be found easily. At the
moment, they are at:
Author.cpp:105: // LASSERT: What should we do here?
Author.cpp:121: // LASSERT: What should we do here?
Buffer.cpp:4525: // LASSERT: Is it safe to continue here, or should we just return?
Cursor.cpp:345: // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:403: // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:1143: // LASSERT: There have been several bugs around this code, that seem
CursorSlice.cpp:83: // LASSERT: This should only ever be called from an InsetMath.
CursorSlice.cpp:92: // LASSERT: This should only ever be called from an InsetMath.
LayoutFile.cpp:303: // LASSERT: Why would this fail?
Text.cpp:995: // LASSERT: Is it safe to continue here?
FileName::tempName() is not thread safe, since the QTemporaryFile object is
immediately deleted after creating it. Therefore, another thread could create
the same temporary file in the time span before the user of FileName::tempName()
recreates it. This is not as theoretical as it may look: I observed that
repeated creation and deletion of QTemporaryFile objects always use the same
name.
This problem is solved by the new class TempFile which should be used like
QTemporaryFile itself.
* some functionality is in new modules now
new header locations and library names: QtConcurrent and QtWidgets
* method setResizeMode is renamed to setSectionResizeMode
* deprecated QAbstractItemModel::reset() is dropped now
* platform specific code like QApplication::syncX() is not common anymore
* QString::fromAscii() is dropped now
* some QDesktopServices methods has been moved to QStandardPaths
A real fix would be to ditch the home made file format detection and use libmagic.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40587 a592a061-630c-0410-9148-cb99ea01b6c8
(e.g., compressed dia, odg, sxd, ...). These need to be marked via the "zipped=native" flag in the RC file.
The old 'dia' configuration is automatically updated (it used to be hardcoded in the code, now it is handled
via the flag).
See also http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg170974.html
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39705 a592a061-630c-0410-9148-cb99ea01b6c8
like:
0_tmp_the,_test_tst.bib
and then code like:
\bibliography{0_tmp_the,_test_tst}
which confuses LaTeX. Easy solution: Mangle the comma.
Jurgen, this is in branch, too.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35493 a592a061-630c-0410-9148-cb99ea01b6c8
Do not check for headers strings.h, io.h, process.h
Do not check for functions mkstemp, mktemp
Do not check for declarations of istreambug_iterator, iterator, mktemp
NOTE to cmake/scons maintainers: you should also get rid of the handling of those symbols.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31646 a592a061-630c-0410-9148-cb99ea01b6c8
otherwise the same file could be opened in different buffers by simply
changing the case of a character in the name.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29538 a592a061-630c-0410-9148-cb99ea01b6c8
DVI viewer passes back the resolved path, such that the search fails,
as internally LyX uses the unresolved path.
This patch fixes this bug by using the new method FileName::realPath
which resolves a path by getting rid of any '.', '..', or symlink
path components.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29476 a592a061-630c-0410-9148-cb99ea01b6c8
In Qt4.5, QFileInfo::operator==() compares the file locations instead of the files themselves. Therefore, an extra check is needed.
see Qt4.5 documentation:
http://doc.trolltech.com/4.5/qfileinfo.html
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28748 a592a061-630c-0410-9148-cb99ea01b6c8