Add sscan(); add sscanf() and vsscanf() to <stdio.h>

diff --git a/include/stdio.h b/include/stdio.h
index f8631e4..9ffda49 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -29,4 +29,7 @@
 __extern int snprintf(char *, size_t n, const char *, ...);
 __extern int vsnprintf(char *, size_t n, const char *, va_list);
 
+__extern int sscanf(const char *, const char *, ...);
+__extern int vsscanf(const char *, const char *, va_list);
+
 #endif /* _STDIO_H */
diff --git a/klibc/Makefile b/klibc/Makefile
index f05ef1a..ea68b31 100644
--- a/klibc/Makefile
+++ b/klibc/Makefile
@@ -12,7 +12,7 @@
 TESTS   = testvsnp hello minihello microhello getenvtest \
 	  getopttest malloctest
 LIBOBJS = vsnprintf.o snprintf.o vsprintf.o sprintf.o \
-	  vsscanf.o ctypes.o \
+	  vsscanf.o sscanf.o ctypes.o \
 	  strntoumax.o strntoimax.o \
 	  atoi.o atol.o atoll.o \
 	  strtol.o strtoll.o strtoul.o strtoull.o \
diff --git a/klibc/include/stdio.h b/klibc/include/stdio.h
index f8631e4..9ffda49 100644
--- a/klibc/include/stdio.h
+++ b/klibc/include/stdio.h
@@ -29,4 +29,7 @@
 __extern int snprintf(char *, size_t n, const char *, ...);
 __extern int vsnprintf(char *, size_t n, const char *, va_list);
 
+__extern int sscanf(const char *, const char *, ...);
+__extern int vsscanf(const char *, const char *, va_list);
+
 #endif /* _STDIO_H */
diff --git a/klibc/sscanf.c b/klibc/sscanf.c
new file mode 100644
index 0000000..81aab9e
--- /dev/null
+++ b/klibc/sscanf.c
@@ -0,0 +1,17 @@
+/*
+ * sscanf()
+ */
+
+#include <stdio.h>
+
+int sscanf(const char *str, const char *format, ...)
+{
+  va_list ap;
+  int rv;
+
+  va_start(ap, format);
+  rv = vsscanf(str, format, ap);
+  va_end(ap);
+
+  return rv;
+}
diff --git a/sscanf.c b/sscanf.c
new file mode 100644
index 0000000..81aab9e
--- /dev/null
+++ b/sscanf.c
@@ -0,0 +1,17 @@
+/*
+ * sscanf()
+ */
+
+#include <stdio.h>
+
+int sscanf(const char *str, const char *format, ...)
+{
+  va_list ap;
+  int rv;
+
+  va_start(ap, format);
+  rv = vsscanf(str, format, ap);
+  va_end(ap);
+
+  return rv;
+}