From 5f935225ec4689316faa7082d5a7553d63a6eb4c Mon Sep 17 00:00:00 2001 From: Stefan Zager Date: Mon, 28 Mar 2011 22:16:44 +0000 Subject: [PATCH] Merged from trunk. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/szager-python-builtin@12560 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Examples/test-suite/varargs_overload.i | 44 ++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Examples/test-suite/varargs_overload.i 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; +} +%}