summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marchetto <simon.marchetto@scilab-enterprises.com>2016-07-29 11:52:26 +0200
committerSimon Marchetto <simon.marchetto@scilab-enterprises.com>2016-07-29 11:52:26 +0200
commit95a5def3282b59cf26f1a20d4073cbae98cd5fea (patch)
tree799895e5d14cb48af6e59eeaad8abb9390b2ac3c
parent8c8937dbdbc4040bf38552d14f5ad549bef8fe65 (diff)
downloadswig-95a5def3282b59cf26f1a20d4073cbae98cd5fea.tar.gz
scilab: fix issue #755
-rw-r--r--Examples/test-suite/scilab/Makefile.in2
-rw-r--r--Examples/test-suite/scilab/scilab_enums_runme.sci9
-rw-r--r--Examples/test-suite/scilab_enums.i17
-rw-r--r--Source/Modules/scilab.cxx2
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);