diff options
Diffstat (limited to 'Examples/test-suite/java_lib_various.i')
| -rw-r--r-- | Examples/test-suite/java_lib_various.i | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/Examples/test-suite/java_lib_various.i b/Examples/test-suite/java_lib_various.i new file mode 100644 index 0000000..716ae91 --- /dev/null +++ b/Examples/test-suite/java_lib_various.i @@ -0,0 +1,51 @@ +/* Java various.i library tests */ +%module java_lib_various + +%include "various.i" + +%apply char **STRING_ARRAY { char **received }; +%apply char **STRING_ARRAY { char **get_names }; +%apply char **STRING_ARRAY { char **languages }; +%apply char *BYTE { char *chars }; +%apply char **STRING_OUT { char **string_ptr }; +%typemap(freearg) char **languages "" // don't delete memory when setting global variable + +%{ +char *langs[] = { (char *)"Hungarian", (char *)"Afrikaans", (char *)"Norwegian", NULL }; +%} + +%inline %{ +char **languages = &langs[0]; +%} + +%inline %{ + +int check_animals(char **received) { + const char *expected[] = {"Cat","Dog","Cow","Goat", 0}; + int strings_match = 1; + int i=0; + while (expected[i]) { + if (strcmp(received[i], expected[i]) != 0) + strings_match = 0; + i++; + } + return strings_match; +} + +char **get_names() { + static char *values[] = { (char *)"Dave", (char *)"Mike", (char *)"Susan", (char *)"John", (char *)"Michelle", NULL}; + return &values[0]; +} + +void charout(char *chars) { + if(chars != NULL) + sprintf(chars, "by jove"); +} + +void char_ptr_ptr_out(char **string_ptr) { + static char ret[] = "returned string"; + *string_ptr = ret; +} + +%} + |
