PrintStream: reorganize `printf' and `println'
authorBernhard Urban <lewurm@gmail.com>
Mon, 30 Apr 2012 12:12:44 +0000 (14:12 +0200)
committerBernhard Urban <lewurm@gmail.com>
Mon, 30 Apr 2012 12:20:07 +0000 (14:20 +0200)
ffi/native.c
java/io/PrintStream.java

index 2972a18a34e70aa1037ca4804a910896df8f27c4..25e0d1ccc9c7e0542f06ba47e85b61c1e770d7a1 100644 (file)
@@ -44,16 +44,17 @@ void java_io_PrintStream__printf___I_V(int a)
        printf("printstream: 0x%08x\n", a);
 }
 
-void java_io_PrintStream__println___Ljava_lang_String__V(const char *a)
-{
-       printf("%s\n", a);
-}
-
 struct integer {
        unsigned int method_table_ptr;
        int value;
 };
 
+void java_io_PrintStream__printf_0___Ljava_lang_String__V
+       (const char *fmt)
+{
+       printf("%s", fmt);
+}
+
 void java_io_PrintStream__printf_1___Ljava_lang_String_Ljava_lang_Object__V
        (struct integer *a1, const char *fmt)
 {
index 0e7dafdfdb61ed6e0a7417dd546615144bfbf925..ff3608974bba48763202364656d4883f5786db4c 100644 (file)
@@ -1,11 +1,17 @@
 package java.io;
 
 public class PrintStream {
+       public void println(String a) {
+               // TODO: `a + "\n"' when StringBuilder is available
+               printf(a);
+               printf("\n");
+       }
+
        public PrintStream printf(String format, Object... args) {
                /* temporary workaround ;-) */
                int len = args.length;
                if (len == 0) {
-                       this.println(format);
+                       this.printf_0(format);
                } else if (len == 1) {
                        this.printf_1(format, args[0]);
                } else if (len == 2) {
@@ -20,10 +26,10 @@ public class PrintStream {
                return this;
        }
 
+       public native void printf_0(String a);
        public native void printf_1(String a, Object b);
        public native void printf_2(String a, Object b, Object c);
        public native void printf_3(String a, Object b, Object c, Object d);
        public native void printf_4(String a, Object b, Object c, Object d, Object e);
        public native void printf_5(String a, Object b, Object c, Object d, Object e, Object f);
-       public native void println(String a);
 }