diff options
author | Stefan Zager <szager@gmail.com> | 2011-03-28 22:16:44 +0000 |
---|---|---|
committer | Stefan Zager <szager@gmail.com> | 2011-03-28 22:16:44 +0000 |
commit | 5f935225ec4689316faa7082d5a7553d63a6eb4c (patch) | |
tree | 6e54bdef61fece740d08bd9274fca06511261f46 | |
parent | 93499e12aff7e252c838a6079103ff48970ed488 (diff) | |
download | swig-5f935225ec4689316faa7082d5a7553d63a6eb4c.tar.gz |
Merged from trunk.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/szager-python-builtin@12560 626c5289-ae23-0410-ae9c-e8d60b6d4f22
-rw-r--r-- | Examples/test-suite/varargs_overload.i | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Examples/test-suite/varargs_overload.i b/Examples/test-suite/varargs_overload.i new file mode 100644 index 000000000..1ba00ba65 --- /dev/null +++ b/Examples/test-suite/varargs_overload.i @@ -0,0 +1,44 @@ +// Tests SWIG's *default* handling of overloading varargs (function varargs, not preprocessor varargs). +// The default behavior is to simply ignore the varargs. +%module varargs_overload + +%inline %{ +const char *vararg_over1(const char *fmt, ...) { + return fmt; +} +const char *vararg_over1(int i) { + static char buffer[256]; + sprintf(buffer, "%d", i); + return buffer; +} + +const char *vararg_over2(const char *fmt, ...) { + return fmt; +} +const char *vararg_over2(int i, double j) { + static char buffer[256]; + sprintf(buffer, "%d %g", i, j); + return buffer; +} + +const char *vararg_over3(const char *fmt, ...) { + return fmt; +} +const char *vararg_over3(int i, double j, const char *s) { + static char buffer[256]; + sprintf(buffer, "%d %g %s", i, j, s); + return buffer; +} +%} + +%varargs(int mode = 0) vararg_over4; +%inline %{ +const char *vararg_over4(const char *fmt, ...) { + return fmt; +} +const char *vararg_over4(int i) { + static char buffer[256]; + sprintf(buffer, "%d", i); + return buffer; +} +%} |