diff --git a/libc/Makefile b/libc/Makefile
index 72c32408..9e89d148 100644
--- a/libc/Makefile
+++ b/libc/Makefile
@@ -261,12 +261,13 @@ stdio/fdio.o \
stdio/fgetpos.o \
stdio/fileno.o \
stdio/fpipe.o \
+stdio/fprintf.o \
stdio/freopen.o \
stdio/fsetpos.o \
stdio/getc.o \
stdio/perror.o \
stdio/popen.o \
-stdio/print.o \
+stdio/printf.o \
stdio/putc.o \
stdio/removeat.o \
stdio/remove.o \
@@ -276,6 +277,8 @@ stdio/scanf.o \
stdio/stdio.o \
stdio/tmpfile.o \
stdio/tmpnam.o \
+stdio/vfprintf.o \
+stdio/vprintf.o \
stdio/vscanf.o \
stdlib/canonicalize_file_name_at.o \
stdlib/canonicalize_file_name.o \
diff --git a/libc/stdio/fprintf.cpp b/libc/stdio/fprintf.cpp
new file mode 100644
index 00000000..c56c1645
--- /dev/null
+++ b/libc/stdio/fprintf.cpp
@@ -0,0 +1,35 @@
+/*******************************************************************************
+
+ Copyright(C) Jonas 'Sortie' Termansen 2011, 2012, 2013.
+
+ This file is part of the Sortix C Library.
+
+ The Sortix C Library is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or (at your
+ option) any later version.
+
+ The Sortix C Library is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with the Sortix C Library. If not, see .
+
+ stdio/fprintf.cpp
+ Prints a string to a FILE.
+
+*******************************************************************************/
+
+#include
+#include
+
+extern "C" int fprintf(FILE* fp, const char* restrict format, ...)
+{
+ va_list list;
+ va_start(list, format);
+ int result = vfprintf(fp, format, list);
+ va_end(list);
+ return result;
+}
diff --git a/libc/stdio/printf.cpp b/libc/stdio/printf.cpp
new file mode 100644
index 00000000..1e2d3cad
--- /dev/null
+++ b/libc/stdio/printf.cpp
@@ -0,0 +1,35 @@
+/*******************************************************************************
+
+ Copyright(C) Jonas 'Sortie' Termansen 2011, 2012, 2013.
+
+ This file is part of the Sortix C Library.
+
+ The Sortix C Library is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or (at your
+ option) any later version.
+
+ The Sortix C Library is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with the Sortix C Library. If not, see .
+
+ stdio/printf.cpp
+ Prints a string to stdout.
+
+*******************************************************************************/
+
+#include
+#include
+
+extern "C" int printf(const char* restrict format, ...)
+{
+ va_list list;
+ va_start(list, format);
+ int result = vprintf(format, list);
+ va_end(list);
+ return result;
+}
diff --git a/libc/stdio/print.cpp b/libc/stdio/vfprintf.cpp
similarity index 59%
rename from libc/stdio/print.cpp
rename to libc/stdio/vfprintf.cpp
index 3fb32e97..de293332 100644
--- a/libc/stdio/print.cpp
+++ b/libc/stdio/vfprintf.cpp
@@ -1,6 +1,6 @@
/*******************************************************************************
- Copyright(C) Jonas 'Sortie' Termansen 2011, 2012.
+ Copyright(C) Jonas 'Sortie' Termansen 2011, 2012, 2013.
This file is part of the Sortix C Library.
@@ -17,50 +17,24 @@
You should have received a copy of the GNU Lesser General Public License
along with the Sortix C Library. If not, see .
- stdio/print.cpp
- Provides the stubs for the printf family of functions.
+ stdio/vfprintf.cpp
+ Prints a string to a FILE.
*******************************************************************************/
#include
-#include
#include
-#include
-#include
+#include
static size_t FileWriteCallback(void* user, const char* string, size_t stringlen)
{
- FILE* fp = (FILE*) user;
- return fwrite(string, 1, stringlen, fp);
+ return fwrite(string, sizeof(char), stringlen, (FILE*) user);
}
-extern "C" int vfprintf(FILE* fp, const char* /*restrict*/ format, va_list list)
+extern "C" int vfprintf(FILE* fp, const char* restrict format, va_list list)
{
size_t result = vprintf_callback(FileWriteCallback, fp, format, list);
if ( result == SIZE_MAX )
return -1;
return (int) result;
}
-
-extern "C" int fprintf(FILE* fp, const char* /*restrict*/ format, ...)
-{
- va_list list;
- va_start(list, format);
- int result = vfprintf(fp, format, list);
- va_end(list);
- return result;
-}
-
-extern "C" int vprintf(const char* /*restrict*/ format, va_list list)
-{
- return vfprintf(stdout, format, list);
-}
-
-extern "C" int printf(const char* /*restrict*/ format, ...)
-{
- va_list list;
- va_start(list, format);
- int result = vprintf(format, list);
- va_end(list);
- return result;
-}
diff --git a/libc/stdio/vprintf.cpp b/libc/stdio/vprintf.cpp
new file mode 100644
index 00000000..3841863e
--- /dev/null
+++ b/libc/stdio/vprintf.cpp
@@ -0,0 +1,31 @@
+/*******************************************************************************
+
+ Copyright(C) Jonas 'Sortie' Termansen 2011, 2012, 2013.
+
+ This file is part of the Sortix C Library.
+
+ The Sortix C Library is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or (at your
+ option) any later version.
+
+ The Sortix C Library is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with the Sortix C Library. If not, see .
+
+ stdio/vprintf.cpp
+ Prints a string to stdout.
+
+*******************************************************************************/
+
+#include
+#include
+
+extern "C" int vprintf(const char* restrict format, va_list list)
+{
+ return vfprintf(stdout, format, list);
+}