Due to a bug in the way %rename() directives without a name currently work,
the second %rename in rename_pcre_encoder.i overrides the first one and the
function wxDoSomething() is not renamed to DoSomething() any more. Remove the
test for this renaming that doesn't work to at least let the rest of the test
to pass.
Also test that SetXXX() functions from the .i file really are renamed to
putXXX() as expected.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12217 626c5289-ae23-0410-ae9c-e8d60b6d4f22
We currently require autoconf 2.58 only but AC_PROG_SED used by
AX_PATH_GENERIC internally is only defined by autoconf 2.60. To avoid
requiring a newer autoconf version just for this macro, predefine it as just
"sed" for the old versions.
This fixes the build with autoconf 2.58.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12216 626c5289-ae23-0410-ae9c-e8d60b6d4f22
The line number of the macro argument has been corrected and the line number
of the start of the macro instead of one past the end is used. Some examples:
file.h:11: Error: Illegal macro argument name '..'
file.h:19: Error: Macro 'DUPLICATE' redefined,
file.h:15: Error: previous definition of 'DUPLICATE'.
file.h:25: Error: Variable-length macro argument must be last parameter
file.h:32: Error: Illegal character in macro argument name
file.i:37: Error: Macro 'SIT' expects 2 arguments
Code used for testing:
// file.h
%define SIT(ax,b)
abc(
%enddef
%define MISSING_DOT1(a,
b,
..)
xxx
%enddef
%define MISSING_DOT2(..)
xxx
%enddef
%define DUPLICATE(a,b)
abc
%enddef
%define DUPLICATE(b)
xxx
%enddef
%define VARARGS_WRONG(a,
x,
...,
b)
xxx
%enddef
%define BAD_ARGNAME(
a,
b{c
)
xxx
%enddef
SIT(1)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12195 626c5289-ae23-0410-ae9c-e8d60b6d4f22
We didn't handle pcre_exec() return code properly and so the replacement could
be still done even if there was no match if the replacement part contained
anything else than back-references (in this, the only tested so far, case the
replacement was still done but the result turned out to be empty and the
calling code assumed the regex didn't match).
Do check for PCRE_ERROR_NOMATCH now and also give an error message if another
error unexpectedly occurred.
Add a test case for the bug that was fixed.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12187 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Show the value of important compilation options in swig -version output.
Currently there is just one such option, for PCRE use, but more may be added
in the future.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12176 626c5289-ae23-0410-ae9c-e8d60b6d4f22
"regexmatch" and "notregexmatch" can be used with anonymous %renames in the
same way as "match" and "notmatch" while "regextarget" specifies that the
argument of a non-anonymous %rename should be interpreted as a regular
expression.
Document the new functions.
Also add a new unit test for %regex also testing regexmatch &c and provide
test code for C# and Java verifying that it works as intended.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12174 626c5289-ae23-0410-ae9c-e8d60b6d4f22
The ".." artificially appended to these variables was enough to make the build
work in the source directory but broke down when the build directory was
different from the source one. Remove this hack and use absolute path to the
build directory instead to ensure that it's still valid even when csharp/java
makefiles invoke swig_and_compile_{c,cpp} macros from a subdirectory.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12173 626c5289-ae23-0410-ae9c-e8d60b6d4f22
We use standard AX_PATH_GENERIC() macro from Autoconf archive to do the check
to keep our own code as simple as possible. Notice that this script must be
used, just adding the include and library directories to {C,LD}FLAGS is not
enough, notably -DPCRE_STATIC which is output by pcre-config for static builds
only is crucial. Also use LIBS instead of LDFLAGS to fix linking when using
static libraries.
Also note that this allows to pass PCRE_CONFIG variable value to configure to
force the use of the specified script (and not the one first found in PATH),
which is especially important when cross-compiling.
Finally, PCRE is required by default now, --without-pcre must be explicitly
used to build without it.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12169 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Document the possibility to apply %rename to all declarations or only those of
a particular type. Also document extended format strings used with it and the
functions which can be used in them.
Also clarify that %ignore is basically just a %rename alias.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12168 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Writing a buffer to a DOH object doesn't modify so it should be const.
This allows the code using const pointers to pass them to DohWrite() without
neither the casts nor gcc warnings.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12167 626c5289-ae23-0410-ae9c-e8d60b6d4f22
PYTHONPATH needs to include the current directory and not (just) the source
directory as the SWIG-generated files are produced here and not under the
source directory when the top build directory is different from it.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12166 626c5289-ae23-0410-ae9c-e8d60b6d4f22