From: Tom Tromey Date: Wed, 16 Jan 2002 00:27:05 +0000 (+0000) Subject: re PR java/5365 (gcjh -stubs does not include correct files) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9c874875a167bb023af5dd5b0f018757a65afb11;p=gcc.git re PR java/5365 (gcjh -stubs does not include correct files) Fix for PR java/5365: * gjavah.c (process_file): Turn class name into a file name. From-SVN: r48891 --- diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 3e644ce6846..f0a4eee9b03 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,8 @@ +2002-01-15 Tom Tromey + + Fix for PR java/5365: + * gjavah.c (process_file): Turn class name into a file name. + 2002-01-14 Matthias Klose * gcj.texi: Fix whitespace and formatting errors in the diff --git a/gcc/java/gjavah.c b/gcc/java/gjavah.c index db3e16a9e34..d5de1ebd426 100644 --- a/gcc/java/gjavah.c +++ b/gcc/java/gjavah.c @@ -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); }