| %module li_cstring |
| |
| %include "cstring.i" |
| |
| #ifndef SWIG_CSTRING_UNIMPL |
| |
| %cstring_input_binary(char *str_in, int n); |
| %cstring_bounded_output(char *out1, 512); |
| %cstring_chunk_output(char *out2, 64); |
| %cstring_bounded_mutable(char *out3, 512); |
| %cstring_mutable(char *out4, 32); |
| %cstring_output_maxsize(char *out5, int max); |
| %cstring_output_withsize(char *out6, int *size); |
| |
| #ifdef __cplusplus |
| %cstring_output_allocate(char **out7, delete [] *$1); |
| %cstring_output_allocate_size(char **out8, int *size, delete [] *$1); |
| #else |
| %cstring_output_allocate(char **out7, free(*$1)); |
| %cstring_output_allocate_size(char **out8, int *size, free(*$1)); |
| #endif |
| |
| %inline %{ |
| |
| int count(char *str_in, int n, char c) { |
| int r = 0; |
| while (n > 0) { |
| if (*str_in == c) { |
| r++; |
| } |
| str_in++; |
| --n; |
| } |
| return r; |
| } |
| |
| void test1(char *out1) { |
| strcpy(out1,"Hello World"); |
| } |
| |
| void test2(char *out2) { |
| int i; |
| for (i = 0; i < 64; i++) { |
| *out2 = (char) i + 32; |
| out2++; |
| } |
| } |
| |
| void test3(char *out3) { |
| strcat(out3,"-suffix"); |
| } |
| |
| void test4(char *out4) { |
| strcat(out4,"-suffix"); |
| } |
| |
| void test5(char *out5, int max) { |
| int i; |
| for (i = 0; i < max; i++) { |
| out5[i] = 'x'; |
| } |
| out5[max]='\0'; |
| } |
| |
| void test6(char *out6, int *size) { |
| int i; |
| for (i = 0; i < (*size/2); i++) { |
| out6[i] = 'x'; |
| } |
| *size = (*size/2); |
| } |
| |
| void test7(char **out7) { |
| #ifdef __cplusplus |
| *out7 = new char[64]; |
| #else |
| *out7 = malloc(64); |
| #endif |
| (*out7)[0] = 0; |
| strcat(*out7,"Hello world!"); |
| } |
| |
| void test8(char **out8, int *size) { |
| int i; |
| #ifdef __cplusplus |
| *out8 = new char[64]; |
| #else |
| *out8 = malloc(64); |
| #endif |
| for (i = 0; i < 64; i++) { |
| (*out8)[i] = (char) i+32; |
| } |
| *size = 64; |
| } |
| |
| %} |
| |
| #endif |