summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Zager <szager@gmail.com>2011-03-28 22:16:44 +0000
committerStefan Zager <szager@gmail.com>2011-03-28 22:16:44 +0000
commit5f935225ec4689316faa7082d5a7553d63a6eb4c (patch)
tree6e54bdef61fece740d08bd9274fca06511261f46
parent93499e12aff7e252c838a6079103ff48970ed488 (diff)
downloadswig-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.i44
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;
+}
+%}