summaryrefslogtreecommitdiffstats
path: root/osdep/vsscanf.c
diff options
context:
space:
mode:
Diffstat (limited to 'osdep/vsscanf.c')
-rw-r--r--osdep/vsscanf.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/osdep/vsscanf.c b/osdep/vsscanf.c
new file mode 100644
index 0000000000..49bfebe56c
--- /dev/null
+++ b/osdep/vsscanf.c
@@ -0,0 +1,20 @@
+#include "../config.h"
+
+#ifndef HAVE_VSSCANF
+/* system has no vsscanf. try to provide one */
+
+#include <stdio.h>
+#include <stdarg.h>
+
+int
+vsscanf(const char *str, const char *format, va_list ap)
+{
+ /* XXX: can this be implemented in a more portable way? */
+ long p1 = va_arg(ap, long);
+ long p2 = va_arg(ap, long);
+ long p3 = va_arg(ap, long);
+ long p4 = va_arg(ap, long);
+ long p5 = va_arg(ap, long);
+ return sscanf(str, format, p1, p2, p3, p4, p5);
+}
+#endif