From: "Guilhem Lavaux" <[EMAIL PROTECTED]>
> Thank you very much for your patch ! We are sometimes a bit low to
> answer and sorry for that. I will try it and if it looks ok it will go
> into CVS.

No worries. :-)

Here's a new version that also adds -bootclasspath for better
compatiblity with Suns javah.

I've got some other patches I'm working on for kaffeh/support.c
that fixes some issues there. I'll send that in a few days when
I've verified some more things.

--- kaffe/kaffeh/main.c.orig    Mon May  3 01:53:27 2004
+++ kaffe/kaffeh/main.c Sat Jul 16 09:20:23 2005
@@ -60,7 +60,7 @@ int
 main(int argc, char* argv[])
 {
        char* nm;
-       int i, first = 1;
+       int i, j, first = 1;
        int farg;
 
        /* Process arguments */
@@ -88,28 +88,37 @@ main(int argc, char* argv[])
        for (nm = argv[farg]; nm != 0; nm = argv[++farg]) {
 
                /* Derive various names from class name */
-               for (i = 0; nm[i] != 0; i++) {
-                       if (i >= BUFSZ - 100) {
+               for (i = j = 0; nm[i] != 0; i++, j++) {
+                       if (i >= BUFSZ - 100 || j >= BUFSZ - 105) {
                                dprintf(
                                    "kaffeh: class name too long\n");
                                exit(1);
                        }
                        switch (nm[i]) {
                        case '/':
-                       case '$':
                        case '.':
-                               className[i] = '_';
+                               className[j] = '_';
                                pathName[i] = '/';
                                includeName[i] = '_';
                                break;
+                       case '$':
+                               className[j++] = '_';
+                               className[j++] = '0';
+                               className[j++] = '0';
+                               className[j++] = '0';
+                               className[j++] = '2';
+                               className[j] = '4';
+                               pathName[i] = nm[i];
+                               includeName[i] = '_';
+                               break;
                        default:
-                               className[i] = nm[i];
+                               className[j] = nm[i];
                                pathName[i] = nm[i];
                                includeName[i] = nm[i];
                                break;
                        }
                }
-               className[i] = 0;
+               className[j] = 0;
                pathName[i] = 0;
                includeName[i] = 0;
 
@@ -234,6 +243,10 @@ options(int argc, char** argv)
                        i++;
                        strcpy(realClassPath, argv[i]);
                }
+               else if (strcmp(argv[i], "-bootclasspath") == 0) {
+                       i++;
+                       strcpy(realClassPath, argv[i]);
+               }
                else if (strcmp(argv[i], "-o") == 0) {
                        i++;
                        outputName = argv[i];
@@ -263,6 +276,7 @@ usage(void)
        dprintf("       -help                   Print this message\n");
        dprintf("       -version                Print version number\n");
        dprintf("       -classpath <path>       Set classpath\n");
+       dprintf("       -bootclasspath <path>   Set classpath\n");
        dprintf("       -jni                    Generate JNI interface\n");
 #ifdef KAFFE_VMDEBUG
        dprintf("       -Xdebug <opts>          Kaffe debug options.\n");

_______________________________________________
kaffe mailing list
[email protected]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to