| // Tests SWIG's *default* handling of varargs (function varargs, not preprocessor varargs). |
| // The default behavior is to simply ignore the varargs. |
| %module varargs |
| |
| %varargs(int mode = 0) test_def; |
| %varargs(int mode = 0) Foo::Foo; |
| %varargs(int mode = 0) Foo::statictest(const char*fmt, ...); |
| %varargs(2, int mode = 0) test_plenty(const char*fmt, ...); |
| |
| %inline %{ |
| char *test(const char *fmt, ...) { |
| return (char *) fmt; |
| } |
| |
| const char *test_def(const char *fmt, ...) { |
| return fmt; |
| } |
| |
| class Foo { |
| public: |
| char *str; |
| Foo() { |
| str = NULL; |
| } |
| Foo(const char *fmt, ...) { |
| str = new char[strlen(fmt) + 1]; |
| strcpy(str, fmt); |
| } |
| ~Foo() { |
| delete [] str; |
| } |
| char *test(const char *fmt, ...) { |
| return (char *) fmt; |
| } |
| static char *statictest(const char *fmt, ...) { |
| return (char *) fmt; |
| } |
| }; |
| |
| const char *test_plenty(const char *fmt, ...) { |
| return fmt; |
| } |
| |
| %} |