Commit Graph

167 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
706c9f2aa5 Fixup 27eb415d: do not define mymkdir() when it is not used.
Pleases coverity.
2018-01-12 12:24:58 +01:00
Richard Heck
27eb415d25 Probably fix #10850 compiler warnings. 2017-12-15 23:25:51 -05:00
Richard Heck
75bfed5507 Fix trailing whitespace in cpp files. 2017-07-03 13:53:14 -04:00
Guillaume MM
752a0a1e48 Correct debug message 2017-05-15 02:28:48 +02:00
Stephan Witt
28fd15307b Care for a tilde in front of a path name. A path name with tilde sign at start is interpreted as relative to the current users home directory. 2017-04-15 13:30:35 +02:00
Jean-Marc Lasgouttes
d0a318c742 We do not use <boost/scoped_array.hpp> anymore
The code using it  was removed at 81959251.
2016-05-29 17:55:45 -04:00
Pavel Sanda
555b08c325 Comment only. 2016-01-18 14:29:37 -08:00
Stephan Witt
bfc7c4d379 #7896 add support for symlink creation by the LyX binary itself 2015-06-23 08:41:43 +02:00
Georg Baum
aafb5138ab remove duplicated include 2015-01-08 19:55:40 +01:00
Richard Heck
07079e7da3 Improve debugging output. 2014-10-27 18:28:33 -04:00
Georg Baum
0de4bc224a Make DocFileName::mangledFileName() threadsafe 2014-07-05 12:22:08 +02:00
Georg Baum
f76d6997b7 Fix thinko in loop detection 2014-06-09 22:06:58 +02:00
Georg Baum
f09a9fe2e6 Remove unsafe method FileName::tempName()
FileName::tempName() created a new temp file name by using qt to create a
temporary file with a unique name, and then deleting that file and returning
the name. This was unsafe, since other processes or even other threads of the
running LyX could create files with the same name between deletion and then
using the temp name.
This is fixed by using the TempFile class instead. As a side effect, a few
cases where the temp files were not deleted after usage were fixed as well.
The only place that is still unsafe is createTmpDir().
2014-06-09 13:05:50 +02:00
Georg Baum
bf782ee02a Improve file saving strategy
- The TempFile class guarantees to generate a file name, we are not limited to
  100 tries of a predictable scheme anymore, which could break if LyX
  frequently crashes.
- The temp file name generation has no race condition against another LyX
  instance in the same directory anymore.
- Symlinks survive saving again (regression of 10364082c8).
2014-06-09 11:08:24 +02:00
Richard Heck
fdbe775b9f This is the result of an audit of all static variables, looking
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.
2014-04-21 11:51:57 -04:00
Vincent van Ravesteijn
762c4eca57 Increase the uniqueness of the temp directories
Now, the temporary directories are composed of the PID + 8 random
characters. This used to be the PID + 2 random characters.

See also 327f7ed90d.
2013-05-19 14:09:06 +02:00
Richard Heck
1b1f8dd235 Audit all the LASSERT calls, and try to do something sensible at
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?
2013-04-25 17:27:10 -04:00
Georg Baum
db0ba3a3c6 Add class for threadsafe temp file handling
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.
2013-04-14 18:22:42 +02:00
Georg Baum
0d7702e5e6 Delete temp file after usage 2013-04-01 12:24:24 +02:00
Stephan Witt
141fbb6f8c Prepare LyX code to compile and link with Qt5:
* 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
2013-02-03 19:26:21 +01:00
Pavel Sanda
0a9735c5f7 LyX 2.1 will support only Qt>=4.5.
(http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg175737.html)

Now start with simple cases.
2012-11-04 01:22:32 +01:00
Juergen Spitzmueller
bfec6d2552 typo 2012-08-17 17:24:09 +02:00
Stephan Witt
8be18455fd #7855 subversion 1.7.x support: use svn info to check if a file is under version control; this works for 1.6.x too; to avoid excessive forks of child processes check for the existence of a .svn directory in current dir and parent directories
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40911 a592a061-630c-0410-9148-cb99ea01b6c8
2012-03-11 11:12:12 +00:00
Georg Baum
de6e4a2937 Make guessFormatFromContents() a bit more private, since it is not supposed
to be used in new code.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40790 a592a061-630c-0410-9148-cb99ea01b6c8
2012-02-21 20:46:37 +00:00
Georg Baum
26e5f1a8ec Use libmagic for file format detection if available.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40789 a592a061-630c-0410-9148-cb99ea01b6c8
2012-02-21 20:29:44 +00:00
Georg Baum
a6f843aacb get rid of dead code and silly function
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40605 a592a061-630c-0410-9148-cb99ea01b6c8
2012-01-12 19:48:08 +00:00
Georg Baum
3dba00246c Quick fix bug #4267.
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
2012-01-07 19:18:38 +00:00
Tommaso Cucinotta
b4f97b61cf Added support for natively zipped file formats that do not need decompression for being handled by converters
(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
2011-09-19 00:12:09 +00:00
Pavel Sanda
c664b63949 Better handling checksum on samba - allow fallback to ifstream.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38022 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-24 10:12:55 +00:00
Pavel Sanda
40ad67e5f1 comment
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38006 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-23 14:52:18 +00:00
Pavel Sanda
44c0b9d7da Fix samba related crashes
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg166543.html


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38003 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-23 14:28:23 +00:00
Richard Heck
4244a15ca3 Keeping the comma leads to bug #6914, since we end up with mangled names
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
2010-09-24 16:12:02 +00:00
Peter Kümmel
c09d33120d UNDO: enc
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34943 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-17 16:09:26 +00:00
Peter Kümmel
56a7a67783 add first version of .lyx file encryption. It's disabled by default and could out-of-the-box only by compiled on Linux with cmake and with openssl-devel packeges.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34931 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-17 12:26:11 +00:00
Pavel Sanda
266ad9501d DocFileName::unzippedFilename -> DocFileName::unzippedFileName
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34239 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-21 01:19:26 +00:00
Pavel Sanda
9d43d32240 DocFileName.outputFilename -> DocFileName.outputFileName
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34238 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-21 01:19:25 +00:00
Pavel Sanda
b6a764eef3 FileName.mangledFilename -> FileName.mangledFileName
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34236 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-21 01:19:22 +00:00
Pavel Sanda
e5fc2cbdc6 Filename.relFilename -> Filename.relFileName
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34235 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-21 01:19:20 +00:00
Pavel Sanda
62ca7f3ae5 Proper camel case for FileName.absFilename
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34234 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-21 01:19:09 +00:00
Enrico Forestieri
10f1370464 On windows, allow saving a document whose pathname contains unicode chars.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33539 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-22 19:34:25 +00:00
Enrico Forestieri
220f0f9f5b This should have gone in r33524.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33526 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-21 13:51:06 +00:00
Enrico Forestieri
37974532f6 Fix bug #5238: LyX 1.6 fails with non-ascii chars in path (on Windows)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33524 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-21 04:51:27 +00:00
Uwe Stöhr
83b1c48846 replace links to bugzilla with links to trac
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32469 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-11 00:59:10 +00:00
Vincent van Ravesteijn
0acff0aa75 Add a FileName::refresh function and replace one call to lastModified which was just meant to refresh the file info.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32354 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-05 02:50:34 +00:00
Jean-Marc Lasgouttes
d23a75a3dc Remove dead includes in FileName, since we do not use mkstemp anymore
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
2009-10-16 09:32:50 +00:00
Enrico Forestieri
170d7a2ab1 The QFileInfo::refresh() bug is fixed in Qt 4.5.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30036 a592a061-630c-0410-9148-cb99ea01b6c8
2009-06-09 20:39:41 +00:00
Uwe Stöhr
8f3acbb484 remove unused includes of convert.h
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29772 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-21 21:02:14 +00:00
Vincent van Ravesteijn
501349b4ae Compile fix for r29647.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29648 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-12 20:16:43 +00:00
Vincent van Ravesteijn
44afac0e4a Do the same as r29646, now for FileName::set.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29647 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-12 20:15:20 +00:00
Vincent van Ravesteijn
2f8a71056b Fix the assert on Windows when starting LyX by double-clicking on a file.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29646 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-12 20:12:04 +00:00