aboutsummaryrefslogtreecommitdiffhomepage
path: root/linux/vsscanf.c
diff options
context:
space:
mode:
authorGravatar jkeil <jkeil@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-11-26 18:53:00 +0000
committerGravatar jkeil <jkeil@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-11-26 18:53:00 +0000
commit68b4d93587306bb2a9e6e0ad5d6cfcf260103901 (patch)
treeba165bae79e5cdab55b6c32a2b0c100cf5868b74 /linux/vsscanf.c
parent3a072d1e6ec62ec1c3d0de32291833dd98c87b99 (diff)
Add our own vsscanf implementation, in case the system's libc does not have
one. (required for solaris, when the Ogg/Vorbis audio decoder is used) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8291 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'linux/vsscanf.c')
-rw-r--r--linux/vsscanf.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/linux/vsscanf.c b/linux/vsscanf.c
new file mode 100644
index 0000000000..49bfebe56c
--- /dev/null
+++ b/linux/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