diff options
author | Simon Marchetto <simon.marchetto@scilab-enterprises.com> | 2016-07-29 11:52:26 +0200 |
---|---|---|
committer | Simon Marchetto <simon.marchetto@scilab-enterprises.com> | 2016-07-29 11:52:26 +0200 |
commit | 95a5def3282b59cf26f1a20d4073cbae98cd5fea (patch) | |
tree | 799895e5d14cb48af6e59eeaad8abb9390b2ac3c | |
parent | 8c8937dbdbc4040bf38552d14f5ad549bef8fe65 (diff) | |
download | swig-95a5def3282b59cf26f1a20d4073cbae98cd5fea.tar.gz |
scilab: fix issue #755
-rw-r--r-- | Examples/test-suite/scilab/Makefile.in | 2 | ||||
-rw-r--r-- | Examples/test-suite/scilab/scilab_enums_runme.sci | 9 | ||||
-rw-r--r-- | Examples/test-suite/scilab_enums.i | 17 | ||||
-rw-r--r-- | Source/Modules/scilab.cxx | 2 |
4 files changed, 28 insertions, 2 deletions
diff --git a/Examples/test-suite/scilab/Makefile.in b/Examples/test-suite/scilab/Makefile.in index 9ddd8f1aa..483ed2439 100644 --- a/Examples/test-suite/scilab/Makefile.in +++ b/Examples/test-suite/scilab/Makefile.in @@ -13,7 +13,6 @@ top_builddir = ../@top_builddir@ C_TEST_CASES += \ scilab_consts \ - scilab_enums \ scilab_identifier_name \ CPP_TEST_CASES += \ @@ -21,6 +20,7 @@ CPP_TEST_CASES += \ primitive_types \ scilab_li_matrix \ scilab_multivalue \ + scilab_enums \ scilab_pointer_conversion_functions \ CPP_STD_TEST_CASES += \ diff --git a/Examples/test-suite/scilab/scilab_enums_runme.sci b/Examples/test-suite/scilab/scilab_enums_runme.sci index 3e9fb7ae0..2776bee1e 100644 --- a/Examples/test-suite/scilab/scilab_enums_runme.sci +++ b/Examples/test-suite/scilab/scilab_enums_runme.sci @@ -24,4 +24,13 @@ checkEnum(TYPEDEF_ENUM_1_2, 22); checkEnum(TYPEDEF_ENUM_2_1, 31); checkEnum(TYPEDEF_ENUM_2_2, 32); +checkEnum(ENUM_REF_1, 1); +checkEnum(ENUM_REF_2, 10); + +checkEnum(clsEnum_CLS_ENUM_1, 100); +checkEnum(clsEnum_CLS_ENUM_2, 101); + +checkEnum(clsEnum_CLS_ENUM_REF_1, 101); +checkEnum(clsEnum_CLS_ENUM_REF_2, 110); + exec("swigtest.quit", -1); diff --git a/Examples/test-suite/scilab_enums.i b/Examples/test-suite/scilab_enums.i index 32d5a34de..9c2e393e0 100644 --- a/Examples/test-suite/scilab_enums.i +++ b/Examples/test-suite/scilab_enums.i @@ -35,4 +35,21 @@ typedef enum TYPEDEF_ENUM_2 { TYPEDEF_ENUM_2_2 = 32 } TYPEDEF_ENUM_2; +enum ENUM_REF { + ENUM_REF_1 = 1, + ENUM_REF_2 = ENUM_REF_1 + 9 +}; + +class clsEnum { +public: + enum CLS_ENUM { + CLS_ENUM_1 = 100, + CLS_ENUM_2 = 101 + }; + enum CLS_ENUM_REF { + CLS_ENUM_REF_1 = 101, + CLS_ENUM_REF_2 = CLS_ENUM_REF_1 + 9 + }; +}; + %} diff --git a/Source/Modules/scilab.cxx b/Source/Modules/scilab.cxx index 137adc234..e6c279e56 100644 --- a/Source/Modules/scilab.cxx +++ b/Source/Modules/scilab.cxx @@ -664,7 +664,7 @@ public: if (isConstant || isEnum) { if (isEnum) { Setattr(node, "type", "double"); - constantValue = Getattr(node, "enumvalue"); + constantValue = Getattr(node, "value"); } constantTypemap = Swig_typemap_lookup("scilabconstcode", node, nodeName, 0); |