globalmaphack: be more general (fmap, factoring, ...)
[mate.git] / ffi / native.c
index 99d641c5934f55eea5202759df966ea736e01335..7374405b7fbe172c8384494d9f88615707e8dfab 100644 (file)
@@ -1,4 +1,6 @@
 #include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
 
 static char ascii(char s) {
        if(s < 0x20) return '.';
@@ -59,13 +61,13 @@ struct chararray {
        char str;
 };
 
-void java_io_PrintStream__printf_0___Ljava_lang_String__V
+void jmate_io_PrintStream__printf_0___Ljava_lang_String__V
        (struct string *fmt)
 {
        printf("%s", &fmt->value->str);
 }
 
-void java_io_PrintStream__printf_1___Ljava_lang_String_Ljava_lang_Object__V
+void jmate_io_PrintStream__printf_1___Ljava_lang_String_Ljava_lang_Object__V
        (struct integer *a1, struct string *fmt)
 {
 #if 0
@@ -78,26 +80,26 @@ void java_io_PrintStream__printf_1___Ljava_lang_String_Ljava_lang_Object__V
        printf(&fmt->value->str, a1->value);
 }
 
-void java_io_PrintStream__printf_2___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object__V
+void jmate_io_PrintStream__printf_2___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object__V
        (struct integer *a2, struct integer *a1, struct string *fmt)
 {
        printf(&fmt->value->str, a1->value, a2->value);
 }
 
 void
-java_io_PrintStream__printf_3___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V
+jmate_io_PrintStream__printf_3___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V
        (struct integer *a3, struct integer *a2, struct integer *a1, struct string *fmt)
 {
        printf(&fmt->value->str, a1->value, a2->value, a3->value);
 }
 
-void java_io_PrintStream__printf_4___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V
+void jmate_io_PrintStream__printf_4___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V
        (struct integer *a4, struct integer *a3, struct integer *a2, struct integer *a1, struct string *fmt)
 {
        printf(&fmt->value->str, a1->value, a2->value, a3->value, a4->value);
 }
 
-void java_io_PrintStream__printf_5___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V
+void jmate_io_PrintStream__printf_5___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V
        (struct integer *a5, struct integer *a4, struct integer *a3, struct integer *a2, struct integer *a1, struct string *fmt)
 {
        printf(&fmt->value->str, a1->value, a2->value, a3->value, a4->value, a5->value);
@@ -106,3 +108,20 @@ void java_io_PrintStream__printf_5___Ljava_lang_String_Ljava_lang_Object_Ljava_l
 void gnu_classpath_VMSystemProperties__preInit___Ljava_util_Properties__V() {
        return;
 }
+
+void java_lang_VMSystem__arraycopy___Ljava_lang_Object_ILjava_lang_Object_II_V(
+               int len, int dest_start, struct chararray *dest,
+               int src_start, struct chararray *src)
+#if 0
+               /* original */
+               struct chararray *src, int src_start,
+               struct chararray *dest, int dest_start, int len)
+#endif
+{
+       memcpy(&dest->str, &src->str + src_start, len);
+       dest->length = len;
+#if 0
+       hexdump(src, len + 4);
+       hexdump(dest, len + 4);
+#endif
+}