diff --git a/linux/Makefile b/linux/Makefile index 342445004c..01b5a358e9 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -3,7 +3,7 @@ include ../config.mak LIBNAME = libosdep.a -SRCS=getch2.c timer-lx.c shmem.c strsep.c scandir.c # timer.c +SRCS=getch2.c timer-lx.c shmem.c strsep.c vsscanf.c scandir.c # timer.c OBJS=$(SRCS:.c=.o) ifeq ($(TARGET_ARCH_X86),yes) 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 +#include + +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