re PR java/5365 (gcjh -stubs does not include correct files)
authorTom Tromey <tromey@redhat.com>
Wed, 16 Jan 2002 00:27:05 +0000 (00:27 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Wed, 16 Jan 2002 00:27:05 +0000 (00:27 +0000)
Fix for PR java/5365:
* gjavah.c (process_file): Turn class name into a file name.

From-SVN: r48891

gcc/java/ChangeLog
gcc/java/gjavah.c

index 3e644ce68466bf6c6a4690de5f2380b05caa6868..f0a4eee9b0340bc66d035700df79b6f61cdc80d7 100644 (file)
@@ -1,3 +1,8 @@
+2002-01-15  Tom Tromey  <tromey@redhat.com>
+
+       Fix for PR java/5365:
+       * gjavah.c (process_file): Turn class name into a file name.
+
 2002-01-14  Matthias Klose  <doko@debian.org>
 
        * gcj.texi: Fix whitespace and formatting errors in the
index db3e16a9e346f9f90c934d91089cca19a2b0923f..d5de1ebd426d933fb27dd5b5514c3cb854c6f0f8 100644 (file)
@@ -1,7 +1,7 @@
 /* Program to write C++-suitable header files from a Java(TM) .class
    file.  This is similar to SUN's javah.
 
-Copyright (C) 1996, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -1969,10 +1969,18 @@ DEFUN(process_file, (jcf, out),
        {
          /* Strip off the ".class" portion of the name when printing
             the include file name.  */
-         int len = strlen (jcf->classname);
+         char *name;
+         int i, len = strlen (jcf->classname);
          if (len > 6 && ! strcmp (&jcf->classname[len - 6], ".class"))
            len -= 6;
-         print_include (out, jcf->classname, len);
+         /* Turn the class name into a file name.  */
+         name = xmalloc (len + 1);
+         for (i = 0; i < len; ++i)
+           name[i] = jcf->classname[i] == '.' ? '/' : jcf->classname[i];
+         name[i] = '\0';
+         print_include (out, name, len);
+         free (name);
+
          if (! flag_jni)
            print_include (out, "gcj/cni", -1);
        }