Add strchr() and putchar() to local C library

Change-Id: I3659e119a242f8ef828e32bfdf5d0b4b7ac4f716
diff --git a/lib/stdlib/printf.c b/lib/stdlib/printf.c
index 3d62497..61361b9 100644
--- a/lib/stdlib/printf.c
+++ b/lib/stdlib/printf.c
@@ -31,14 +31,30 @@
 #include <stdio.h>
 #include <stdarg.h>
 
- // Choose max of 128 chars for now.
+/* Choose max of 128 chars for now. */
 #define PRINT_BUFFER_SIZE 128
 int printf(const char *fmt, ...)
 {
 	va_list args;
-	va_start(args, fmt);
 	char buf[PRINT_BUFFER_SIZE];
+	int count;
+
+	va_start(args, fmt);
 	vsnprintf(buf, sizeof(buf) - 1, fmt, args);
+	va_end(args);
+
+	/* Use putchar directly as 'puts()' adds a newline. */
 	buf[PRINT_BUFFER_SIZE - 1] = '\0';
-	return puts(buf);
+	count = 0;
+	while (buf[count])
+	{
+		if (putchar(buf[count]) != EOF) {
+			count++;
+		} else {
+			count = EOF;
+			break;
+		}
+	}
+
+	return count;
 }