From: "Kurt Miller" <[EMAIL PROTECTED]>
> can kaffeh be used on inner classes? 
> 
> It seems like it doesn't deal with the $ character correctly
> and interprets it as a path separator.

Here's a patch that deals with the $ for inner classes.
The "class name too long" check looks arbitrary to me.
Not really sure where 100 comes from.

--- kaffe/kaffeh/main.c.orig    Mon May  3 01:53:27 2004
+++ kaffe/kaffeh/main.c Fri Jul 15 17:40:44 2005
@@ -60,7 +60,7 @@
 main(int argc, char* argv[])
 {
        char* nm;
-       int i, first = 1;
+       int i, j, first = 1;
        int farg;
 
        /* Process arguments */
@@ -88,28 +88,37 @@
        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;
 

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

Reply via email to