Commit graph

453 commits

Author SHA1 Message Date
Marcelo Matus
5ddf147312 fix vector<bool> problems
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5831 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-05 23:24:39 +00:00
Marcelo Matus
f3641c8520 suppress compiler warns and more cosmetics
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5830 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-05 20:20:36 +00:00
Marcelo Matus
c2e704374f add wstring/wchar_t support
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5829 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-05 20:12:02 +00:00
Marcelo Matus
6e14117b0b more fixes for pointer
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5824 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-03 08:36:08 +00:00
Marcelo Matus
377221f947 we better disable the comparison method generation by default.
reasons:

- before they were not generated, so, nobody will miss them,
  and still they can be activated back using SWIG_STD_EXTEND_COMPARISON,

- the performance penalty is quite visible, and the solution is not
  general, ie, for user types, still they need to be generated by hand.


Marcelo


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5822 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-02 02:34:19 +00:00
Marcelo Matus
7cbe501f13 fix pair for ptrs, and add SWIG_STD_NOEXTEND_COMPARISON to reduce swig times
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5820 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-01 18:51:30 +00:00
Marcelo Matus
e6d14ad72c added more especial methods for python
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5817 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-01 05:12:23 +00:00
Marcelo Matus
5822020fc7 added support for const, like std::pair<const int, int>
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5815 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-01 04:07:27 +00:00
Marcelo Matus
90c7eeb3ee more safer memcpy use
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5813 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-31 11:57:02 +00:00
Marcelo Matus
beb0eebd14 replace explicit static_cast<T>(v) with old style (T)v, just in case
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5812 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-31 11:45:45 +00:00
Marcelo Matus
705b2d863c - better support for classes with no default constructor, equal or
comparison methods.

  you will be able to do

    struct Foo {
     Foo(int) {}
    };

    %std_nodefconst_type(Foo); // Says Foo has no def. constructor

    %template(vector_Foo) std::vector<Foo>;

  and the conflicting vector/list/deque methods will not be generated.


more cosmetic, and a note about the relation between std::map and
std::pair.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5810 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-31 11:27:53 +00:00
Marcelo Matus
2ecbbbf107 moving the 'unnamed' macros outside swig.swg, for better mantainance
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5809 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-31 04:18:11 +00:00
Marcelo Matus
074a88fd37 added compiler case without unnamed template param. support
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5808 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-31 03:36:59 +00:00
Marcelo Matus
424c7a78e3 forgot inline
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5807 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-31 02:29:27 +00:00
Marcelo Matus
a941c34524 added support for unnamed C++ enum members
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5806 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-31 02:09:55 +00:00
Marcelo Matus
0a3d3c0d0d added support for unnamed C++ enum members
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5805 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-31 01:35:44 +00:00
Marcelo Matus
8f5e757867 fix for old python versions
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5803 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-30 08:05:29 +00:00
Marcelo Matus
4a92e27318 fix for old STL std::string
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5802 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-30 08:04:48 +00:00
Marcelo Matus
7cd6aef376 fix for old STL std::string
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5801 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-30 08:01:46 +00:00
Marcelo Matus
4449d0ba68 fix bad FLT_MIN use
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5800 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-30 01:53:52 +00:00
Marcelo Matus
1907bc9a96 fix range problem for complex<float>, found by szabi@mplayerhq.hu
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5798 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-29 21:37:09 +00:00
Marcelo Matus
fa853808a1 fixes for strings and cosmetics
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5792 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-28 13:34:16 +00:00
Marcelo Matus
557c66c367 more comments and cosmetic fixes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5789 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-23 01:07:45 +00:00
Marcelo Matus
7c4ccbedfd fix compiler warning
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5788 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-23 01:07:07 +00:00
Marcelo Matus
d633d9001c allowing template arguments
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5787 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-23 01:06:41 +00:00
Marcelo Matus
299d8fc456 added backward comp for old As/Check/From methods
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5785 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-22 00:17:54 +00:00
Marcelo Matus
1d99226334 normalizing the inout typemaps and other cosmetic fixes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5782 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-21 23:26:18 +00:00
Marcelo Matus
f3df9521a1 add argument protection for templates
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5778 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-20 00:23:40 +00:00
Marcelo Matus
e83c226741 add 'attribute' macros for python
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5777 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-20 00:08:36 +00:00
Henning Thielemann
483d8b4367 added basic Modula-3 support
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5776 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-19 11:45:29 +00:00
Marcelo Matus
ac0d3805f8 missing change from previous commit
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5773 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-19 00:50:12 +00:00
Marcelo Matus
a672ff61ef extending std_string and more fixes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5771 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-18 21:20:55 +00:00
Marcelo Matus
109f79377c fix inclusion of complex.h
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5770 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-18 21:18:16 +00:00
Marcelo Matus
0015c8417e another fix for long long
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5762 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-17 18:40:44 +00:00
Marcelo Matus
64973655da fix old std_pair version
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5760 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-17 10:45:19 +00:00
Marcelo Matus
328098bbb2 better STL support, see CHANGES.current
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5755 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-17 09:41:19 +00:00
Marcelo Matus
9d65aeb47d Added more STL containers typecheck code.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5754 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-17 08:47:18 +00:00
Matthias Köppe
4976eb0725 In -scm mode, don't forget to check the type of string arguments.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5742 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-02 12:58:00 +00:00
William S Fulton
9f9ba96e8e New commandline option -namespace for putting all generated classes into a C# namespace.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5739 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-02-24 21:05:48 +00:00
Matthias Köppe
64c48367b9 Use FUNC_NAME rather than a bogus typemap variable for signalling
errors.  Call scheme_wrong_type with a zero-based argument number.
Reported by Ondrej Pacovsky, SF #902621.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5734 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-02-23 12:56:58 +00:00
Matthias Köppe
18aec6bdc8 Don't try to invoke a null destructor function.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5732 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-02-22 15:28:03 +00:00
Marcelo Matus
c9d6e27b5c Reducing pyrun.swg and splitting python.swg into different files
for clarity and for easier maintainance.

pyrun.swg almost the same than 1.3.20, therefore there will be
compatible again.

code generated is reduced by the use and reuse of %fragments.

as usual, all the test-suite is compiling and a much bigger
"test project" too.

with the new typemaps definition should be much eaiser and
uniform add stl/std and user types.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5706 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-02-10 09:50:24 +00:00
Marcelo Matus
d29dbe752d Keep the old non-resolved type str and add the fully
resolved one if is needed.

Add examples showing the problem with SWIG_TypeQuery
and template+typedef and the old type str, and how
it works now.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5704 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-02-10 08:37:30 +00:00
Marcelo Matus
9f9e05ad30 Fixes for SWIG_TypeQuery and templates/typedefs,
before the swig_type_info fields 'str' and 'name'
where not consistent, one was fully resolved (name),
the other not, therefore

  typedef int Int;
  template <class C> struct Class {};

  SWIG_TypeQuery($descriptor(Class<int>*))

wasn't necessary the same that

  typedef int Int;
  template <class C> struct Class {};

  SWIG_TypeQuery("Class<int> *")

the problem was visible only when the latter form was used,
like in a static auxiliar function outside a typemap.

also, relax type name comparison with blanks, ie

  SWIG_TypeQuery("Class<int> *") := SWIG_TypeQuery("Class<int > *")


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5703 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-02-10 03:42:38 +00:00
Logan Johnson
5c2a00ba85 Be sure to initialize all of the fields of the PyTypeObject struct to
something, to avoid numerous compiler warnings.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5700 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-02-06 17:45:49 +00:00
Marcelo Matus
ee9e4bce5e add the CPLXFLT and CPLDBL checking codes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5692 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-28 01:34:32 +00:00
Marcelo Matus
b85c9ace6b Fix long long and other warnings.
Add the macros

%typemap_asfromcheck()
%typemap_asfrom()

that can be used to defined all the different typemaps
for types where the As/From/Check methods are provided.

All the basic type (int, char,...) typemaps are implemented
using them.

The std::string and std::complex<T> are reimplemented using
the new %typemap_asfrom/check macros too. This helps to complete
all the previously missing typemaps (consttab, varin, varout,..)
and also ilustrates how to define the As/From/Check methods
to use with the %typemap_asfrom/check macros.

As a byproduct, the C complex typemap was added, and the file

complex.i

can be used to load the complex support for either C or C++. The
original C++ std_complex.i is still there, and the corresponding C
ccomplex.i too, if they need to be included explicitly.

Also, the As/From methods are declared via %fragment, so, they
can be reused as needed, and only appear in the wrapped code if
they corresponding typemap is invoked, making the typemaps
and the entire code shorter and simpler.


Marcelo.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5691 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-28 01:30:13 +00:00
Marcelo Matus
aabed0eedf add support for char* to accepts char* :), before
they only accept PyStrings.

now the raw pointer from calloc.i, for example, works
fine.

some of the SWIG_PyObj_(As|From)XXX routines are getting
too large, so, they also will go into the runtime library.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5689 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-26 11:55:22 +00:00
Marcelo Matus
dc061e30f1 Better mapping of char[ANY] in python, including embedded
null chars, which are allowed in C++ and python, and proper
sizes:

  you can use a shorter string to assign a char[6]:

     x = "he\0l"  -> x := {'h','e',0,'l',0, 0}

  but you always get back in python the original size:

   x := {'h','i','0','0',0, 0} -> "hi\0\0\0\0"

Better mapping of (char*)0, now you get a None in the python
side, and using None, you get a (char*)0, just like
all the other C++ pointers. Before (char*)0 was mapped
into python as "", or as seg. faults.

Better mapping of "", which is not None nor (char*)0.

Added more tests using primitive types with simple templates.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5687 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-25 09:45:18 +00:00
Marcelo Matus
b3896b1919 properly manage the strange but valid case:
typedef char namet[5];
  const namet def_namet = {'h','o', 0, 'l','a'};

ie, char arrays with null embedded characters, and other odd
char[ANY] situations.

add the corresponding test to the primitive_types.i and runme files.

Marcelo

 ----------------------------------------------------------------------


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5685 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-24 07:20:59 +00:00