Commit Graph

21 Commits

Author SHA1 Message Date
Peter Kümmel
a0a472c16e msvc2015: always incude strfwd.h first, to prevent crashes of our
typedefed streams.
2016-04-02 11:03:17 +02:00
Guillaume Munch
7a60c96dfa msvc: Proper fix for compilation of TexRow
This bug in MSVC 10 was fixed at e948caf6, but the workaround belongs to
strfwd.h.

Thanks Vincent and Georg.
2015-10-20 21:29:19 +02:00
Georg Baum
51cc8aa9f6 Fix build with GNU libstdc++ C++11 ABI
The GNU libstdc++ that ships witch gcc 5 can be used with the same ABI as
older versions, or with a new ABI which is conformant to the C++11 standard.
LyX did not build if the latter was used:
https://kojipkgs.fedoraproject.org//work/tasks/1267/9651267/build.log

This is now fixed by detecting the ABI version and disabling the wrong forward
declarations. At the same time, STD_STRING_USES_COW is switched off for the
C++11 ABI version, because the std::basic_string implementation is now C++11
conformant. Since the GNU libstdc++ can also used by other compilers such as
clang, we must not test for the compiler version.
2015-05-08 21:12:42 +02:00
Georg Baum
7796ad3a36 Improve llvm libc++ detection
The old detection did only work if CFLAGS contained -std=c++11, since ciso646
was only included for __cplusplus > 199711.
Thanks to Koernel for the cmake part.
2014-12-21 17:26:21 +01:00
Georg Baum
83bee109db Make trivstring class ready for use
The interface is now 100% unit tested, and the typedefs depend on the new
STD_STRING_USES_COW configuration variable. The only missing bit is to detect
clang and disable STD_STRING_USES_COW for clang.
2014-12-07 13:14:17 +01:00
Georg Baum
49af9db623 Remove unneeded typedef
docstring is already defined in strfwd.h (which is included from docstring.h).
There are only two possible cases:
Either the typedef in docstring.h defines an identical type (then it is not
needed), or it defines a different type (then it generates a compilation error)
=> it is not needed.
2014-12-03 21:08:13 +01:00
Georg Baum
351363c599 Fix C++11 test
Thanks Vincent for noticing. The old test was slightly off, the C++98 standard
guarantees that __cplusplus is defined as 199711L, not 19971L.
2014-04-29 21:00:02 +02:00
Georg Baum
07afd76b7c Fix compilation with libc++
libc++ (http://libcxx.llvm.org/) is used on OS X with newer XCode.
The patch is from Benjamin Piwowarski <benjamin.piwowarski@lip6.fr>, I only
added more comments.
The changes regarding implicit conversion to bool of std::iostream work
because both the C++98 and C++11 standards guarantee that boolean evaluation
of streams returns !fail(). See e.g.
http://stackoverflow.com/questions/1334858/why-dont-iostream-objects-overload-operator-bool
for details.
2014-03-04 23:27:57 +01:00
Richard Heck
ecef54500d Introduce max_length parameter for plaintext() output routines,
so we can write a limited amount when using this for TOC and
tooltip output.

This should solve the problem with slowness that Kornel noticed,
which was caused by our trying to write an entire plaintext
bibliography every time we updated the TOC. We did that because
he had a bibliography inside a branch, and we use plaintext for
creating the tooltip that goes with the branch list.

Other related bugs were fixed along the way. E.g., it turns out
that, if someone had an InsetInclude inside a branch, then we would
have been writing a *plaintext file* for that inset every time we
updated the TOC. I wonder if some of the other reports of slowness
we have received might be due to this kind of issue?
2013-03-08 15:12:58 -05:00
Richard Heck
d764a97cf4 Hadn't see this empty_docstring() thing before. Very useful.
Add a comment to strfwd.h.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36355 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-17 22:11:33 +00:00
Peter Kümmel
3f379915a6 CMake: fix merged build, seems GCC could not handle the namespaces correctly
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33272 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-30 11:34:28 +00:00
André Pönitz
5c4a20fe04 I'll find a solution for the 'dirList problem', Abdel.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21884 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-30 20:57:53 +00:00
Enrico Forestieri
2a03009a75 Much ado about nothing
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21530 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-09 10:54:45 +00:00
Enrico Forestieri
edb6c9ede4 Always forward declare string as it is not guaranteed that the
iosfwd header already does it.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21518 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-08 13:32:56 +00:00
Abdelrazak Younes
3a1290815e Fix compilation for MSVC.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21514 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-08 07:47:31 +00:00
Enrico Forestieri
4a35906da7 Fix problems with odocstream on "exotic" systems caused by the strfwd gimmick.
* src/support/docstream.{cpp,h}:
	Move insertion operator for char types from docstream.h to
	docstream.cpp and compile it only when USE_WCHAR_T is not defined.

	* src/support/strfwd.h:
	Implement forward declarations in standard C++ way.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21513 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-08 06:05:19 +00:00
Abdelrazak Younes
dec166d5e3 compil fix. No guaranty that it works but at least it compiles with MSVC
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21501 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-07 22:20:13 +00:00
André Pönitz
a15472ecfe compile fix?
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21494 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-07 20:22:46 +00:00
André Pönitz
a8cd9a4b8f cosmetics. mainly replace #include "dostring.h" by #include "strfwd.h"
in header files when possible. Adjust .cpp files.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21358 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-01 22:17:22 +00:00
Stefan Schimanski
ffa57bea4d * gcc does not like missing characters in keywords
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21313 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-31 23:41:22 +00:00
André Pönitz
a5263e0f92 introduce a header to forward declare std::string.
hope there are only conforming implementaions out there ;-}


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21312 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-31 22:40:34 +00:00