Commit Graph

22 Commits

Author SHA1 Message Date
Bryan Petty
ed173ed91e Use HTTPS with Trac links. 2017-07-04 13:15:14 -06:00
Vadim Zeitlin
c2e18d75e5 Fix wxCALL_FOR_EACH() to work with more than 2 arguments with MSVC.
Due to a bug in MSVC handling of __VA_ARGS__ (see
https://connect.microsoft.com/VisualStudio/feedback/details/380090/variadic-macro-replacement)
wxCALL_FOR_EACH() didn't work correctly as long as more than two arguments
were used with it.

Work around the bug by protecting __VA_ARGS__ from being incorrectly passed as
a single token to the macro being called on every step: this was already done
for wxCALL_FOR_EACH itself with wxCALL_FOR_EACH_, but we need to do it for all
the helper macros too.

Also add a test checking that this does, actually, work.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77689 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-14 00:59:53 +00:00
Vadim Zeitlin
91b7aab4c2 Fix build with g++ 3.4 with -pedantic[-errors] option.
The use of variadic macros results in a warning/error if -pedantic[-errors]
is used when compiling C++98 code as they are only formally part of C99 (or
C++11). With g++ 4 and later, this can be avoided by using -Wno-variadic-macros
option, but it doesn't exist in g++ 3, so a nasty workaround in the header
itself is required: mark it as system header in order to fix compilation.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-10 16:52:08 +00:00
Vadim Zeitlin
e9f4d80887 Remove checks for ancient gcc/MinGW versions.
Don't test for wxUSE_NORLANDER_HEADERS, this is always true since many, many
years.

Remove tests for gcc version < 3.3, notably 2.95: the minimal supported gcc
version is 3.4.

Closes #15727.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76549 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-16 13:01:35 +00:00
Vadim Zeitlin
15f255cebb Remove support for Digital Mars compiler.
This compilers is not being developed any longer since many years, drop
support for it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76547 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-16 13:01:23 +00:00
Vadim Zeitlin
49b8d79c87 Remove (Open)Watcom support.
This compiler is not being developed since several years and almost certainly
can't be used to build the current wxWidgets sources anyhow, so remove all
support for it, including a lot of extremely ugly workarounds for its bugs
with template functions.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-16 13:01:06 +00:00
Vadim Zeitlin
f4b80e5337 Remove MSVC6 support.
Don't support this compiler any more, this allows to get rid of tons of
MSVC6-specific workarounds, in particular we can now use Bind() and natural
template functions calls in the library code.

Also remove MSVC6 project and solution files and don't generate them when
bakefile_gen is ran any more (removing the remaining occurrences of msvc6prj
from the bakefiles results in weird bake-time errors, so it's simpler to just
leave them there).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-15 22:32:17 +00:00
Vadim Zeitlin
29483c2e15 Define HAVE_VARIADIC_MACROS as 1, not nothing, in wx/cpp.h.
This avoids g++ warning about HAVE_VARIADIC_MACROS redefinition in setup.h if
wx/cpp.h happens to be included before it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75519 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-01-03 01:12:58 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Vadim Zeitlin
20125017a4 Extract compiler-specific macro definitions in a new wx/compiler.h.
This solves the problem with wx/defs.h -> wx/platform.h -> wx/setup.h which
resolves to msvc/wx/setup.h -> wx/version.h -> wx/cpp.h include path which
resulted in __VISUALC__ not being defined in wx/cpp.h.

This problem was not new but went unnoticed for a long time and was only
discovered when wxCHECK_VISUALC_VERSION() started being used in wx/cpp.h too
as now the compiler started warning about wrong #if syntax due to it being
undefined.

Putting the compiler-specific definitions in a separate file allows this file
to be included from wx/cpp.h to ensure that these symbols are always defined
in it and also makes things a little better organized.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74496 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-13 02:30:21 +00:00
Vadim Zeitlin
168d1f65c1 Reconcile HAVE_VARIADIC_MACROS and wxHAS_VARIADIC_MACROS definitions.
The main user-visible effect of this change is that giving configure
--disable-vararg-macros argument now really disables the use of variadic
macros whereas it didn't disable them in wx/cpp.h before.

It is, of course, also less confusing to not have two very similar but
different symbols.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74489 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-11 22:40:47 +00:00
Vadim Zeitlin
4d3845c073 Avoid using "do { ... } while ( wxFalse )" pseudo-loop.
This loop can't be optimized away by the compiler because wxFalse is an extern
variable which can't be known to be always false. Additionally, this creates
many false positives from Coverity as it assumes that the loop can be executed
more than once.

Define wxSTATEMENT_MACRO_BEGIN/END macros abstracting the exact solution used
and replace wxFalse with "(void)0, 0" for now as this seems to placate MSVC
(which warns about using a bare "0" as a condition) while still allowing the
loop to be completely optimized away.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73101 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-02 23:48:36 +00:00
Václav Slavík
e08d449f2e wxCALL_FOR_EACH compilation fix for VC++.
VC++ has a bug where __VA_ARGS__ is incorrectly expanded as a single
token, contrary to C99. The solution is to pass the arguments to another
macro as a single token inside parenthesis.

See http://stackoverflow.com/questions/9183993/msvc-variadic-macro-expansion
for the gory details.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-01 18:25:07 +00:00
Václav Slavík
a4d982a7cf Add wxCALL_FOR_EACH() macro.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72836 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-01 16:45:01 +00:00
Vadim Zeitlin
47eab2f2e5 Define wxCONCATn() macro up to n=9 from n=5 previously.
We'll need it for n=6 for the next commit, so increase the max value of n a
bit more.

See #14272.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71357 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-04 20:35:37 +00:00
Vadim Zeitlin
258593354e Fix build with Borland C++ compiler.
Disable some parts of the code that this compiler had problems with. Add
parentheses to work around its bugs elsewhere.

Closes #12558.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 13:16:20 +00:00
Vadim Zeitlin
a6ebdba66c move __WXFUNCTION__ to wx/cpp.h from wx/debug.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59704 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-21 17:18:01 +00:00
Vadim Zeitlin
1894e49f51 add wxCONCAT[345]() helper macros
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-27 14:10:53 +00:00
Václav Slavík
28efe6544f don't use C++ comments in C files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-25 15:07:20 +00:00
Vadim Zeitlin
bde626ce30 don't define EMPTY_PARAMETER_VALUE macro without wx prefix, this is an invitation for name clash; instead define wxEMPTY_PARAMETER_VALUE and use it in both variant.h and event.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42993 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-11-03 21:06:57 +00:00
Vadim Zeitlin
84206bbb32 added Unicode-friendly wxSTRINGIZE_T()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41691 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-08 11:07:55 +00:00
Vadim Zeitlin
cdd8d745c4 move wxSTRINGIZE and other preprocessor helpers to wx/cpp.h to fix version.rc compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41531 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-30 14:55:06 +00:00