summaryrefslogtreecommitdiff
path: root/libjava/classpath/tools
diff options
context:
space:
mode:
authorgandalf <gandalf@138bc75d-0d04-0410-961f-82ee72b054a4>2012-03-23 15:19:26 +0000
committergandalf <gandalf@138bc75d-0d04-0410-961f-82ee72b054a4>2012-03-23 15:19:26 +0000
commit5c7411981584e487ac41794feb98a66df9fd6fcb (patch)
treefebe3d4d4c0c994db223fee8e819bde6582494c9 /libjava/classpath/tools
parent112dfe9f689af01c2dd00e0f153fc25d69095b6c (diff)
downloadgcc-5c7411981584e487ac41794feb98a66df9fd6fcb.tar.gz
Merge GNU Classpath 0.99 into libjava.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185741 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/classpath/tools')
-rwxr-xr-xlibjava/classpath/tools/Makefile.am10
-rw-r--r--libjava/classpath/tools/Makefile.in10
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.classbin4028 -> 4028 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/common/Messages.classbin1151 -> 1151 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.classbin79930 -> 79930 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Messages.classbin1151 -> 1151 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.classbin29338 -> 29338 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.classbin2909 -> 2933 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.classbin4600 -> 4632 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$1.classbin1002 -> 1002 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.classbin941 -> 941 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.classbin1119 -> 1119 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.classbin1124 -> 1124 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.classbin1007 -> 1007 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.classbin1069 -> 1069 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.classbin939 -> 939 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.classbin1064 -> 1064 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.classbin1064 -> 1064 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.classbin973 -> 973 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.classbin11933 -> 12769 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.classbin1106 -> 1106 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.classbin1052 -> 1052 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.classbin1048 -> 1048 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.classbin969 -> 969 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.classbin721 -> 721 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.classbin5476 -> 5476 bytes
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/common/Messages.java4
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java4
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java2
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java5
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/javah/Main.java87
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/common/messages.properties (renamed from libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties)4
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/getopt/messages.properties (renamed from libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties)4
33 files changed, 80 insertions, 50 deletions
diff --git a/libjava/classpath/tools/Makefile.am b/libjava/classpath/tools/Makefile.am
index f7ad91c9069..a4d48aafebc 100755
--- a/libjava/classpath/tools/Makefile.am
+++ b/libjava/classpath/tools/Makefile.am
@@ -141,7 +141,7 @@ EXTRA_DIST = toolwrapper.c gappletviewer.in gjarsigner.in gkeytool.in \
gtnameserv.in gorbd.in grmid.in grmic.in gjdoc.in
# All our example java source files
-TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \
+TOOLS_JAVA_FILES = \
$(srcdir)/gnu/classpath/tools/*.java \
$(srcdir)/gnu/classpath/tools/*/*.java \
$(srcdir)/gnu/classpath/tools/*/*/*.java \
@@ -174,8 +174,8 @@ PROPERTY_FILES = $(srcdir)/external/asm/org/objectweb/asm/optimizer/shrink.prope
$(srcdir)/resource/gnu/classpath/tools/keytool/messages.properties \
$(srcdir)/resource/gnu/classpath/tools/native2ascii/messages.properties \
$(srcdir)/resource/gnu/classpath/tools/appletviewer/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/common/Messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/getopt/Messages.properties \
+ $(srcdir)/resource/gnu/classpath/tools/common/messages.properties \
+ $(srcdir)/resource/gnu/classpath/tools/getopt/messages.properties \
$(srcdir)/resource/gnu/classpath/tools/tnameserv/messages.properties \
$(srcdir)/resource/gnu/classpath/tools/jarsigner/messages.properties \
$(srcdir)/resource/gnu/classpath/tools/rmiregistry/messages.properties \
@@ -312,7 +312,9 @@ dist-hook:
$(mkinstalldirs) $(distdir)/$$fdir; \
fi; \
echo "cp -p $$file $(distdir)/$$f"; \
- cp -p $$file $(distdir)/$$f; \
+ if ! cp -p $$file $(distdir)/$$f; then \
+ exit -1 ; \
+ fi ; \
done
# To generate the example zip just depend on the sources and ignore
diff --git a/libjava/classpath/tools/Makefile.in b/libjava/classpath/tools/Makefile.in
index d82fac6d9ae..2cf1a008500 100644
--- a/libjava/classpath/tools/Makefile.in
+++ b/libjava/classpath/tools/Makefile.in
@@ -551,7 +551,7 @@ EXTRA_DIST = toolwrapper.c gappletviewer.in gjarsigner.in gkeytool.in \
# All our example java source files
-TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \
+TOOLS_JAVA_FILES = \
$(srcdir)/gnu/classpath/tools/*.java \
$(srcdir)/gnu/classpath/tools/*/*.java \
$(srcdir)/gnu/classpath/tools/*/*/*.java \
@@ -585,8 +585,8 @@ PROPERTY_FILES = $(srcdir)/external/asm/org/objectweb/asm/optimizer/shrink.prope
$(srcdir)/resource/gnu/classpath/tools/keytool/messages.properties \
$(srcdir)/resource/gnu/classpath/tools/native2ascii/messages.properties \
$(srcdir)/resource/gnu/classpath/tools/appletviewer/messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/common/Messages.properties \
- $(srcdir)/resource/gnu/classpath/tools/getopt/Messages.properties \
+ $(srcdir)/resource/gnu/classpath/tools/common/messages.properties \
+ $(srcdir)/resource/gnu/classpath/tools/getopt/messages.properties \
$(srcdir)/resource/gnu/classpath/tools/tnameserv/messages.properties \
$(srcdir)/resource/gnu/classpath/tools/jarsigner/messages.properties \
$(srcdir)/resource/gnu/classpath/tools/rmiregistry/messages.properties \
@@ -1382,7 +1382,9 @@ dist-hook:
$(mkinstalldirs) $(distdir)/$$fdir; \
fi; \
echo "cp -p $$file $(distdir)/$$f"; \
- cp -p $$file $(distdir)/$$f; \
+ if ! cp -p $$file $(distdir)/$$f; then \
+ exit -1 ; \
+ fi ; \
done
# To generate the example zip just depend on the sources and ignore
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class
index 67c15788fc2..472e1386225 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/Messages.class
index 9b3d765a117..39697a899c8 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/common/Messages.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/common/Messages.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class
index 1e86b0b069b..c7429e294aa 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Messages.class
index f86b8f70c3b..ce6cc5c67d8 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Messages.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Messages.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class
index 2f46dd2828c..97bda5f9b93 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class
index 8f09f16e2fa..cf4b5cf24be 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class
index c31f88ae6b7..30d1674c646 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$1.class
index ca86d040462..05958fdaee7 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$1.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$1.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class
index ea003e4f0ff..3e1615abdfa 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class
index 560a505a0a9..c0998c8745a 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class
index cd7143a5c50..62bf927c584 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class
index 88ea4ee1a10..0305abe9e83 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class
index fee2bd107ba..c8ed40054c3 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class
index bb6d72a3e33..d5be6d22668 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class
index 44390e12701..b2e37e11242 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class
index 28bf6e998c9..9900e53b932 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class
index 013a6553e09..bc9fb98c86a 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class
index 57adaabe3ec..709b6d01262 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class
index 81975151a3c..a93676b308f 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class
index f87a12e80d1..2e73084c919 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class
index f5a91597b31..c785c7a3e43 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class
index df3cba93009..31d7a46c00b 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class
index 0c082d0d0de..04b7561333f 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class
index 53468e34872..ee1af075f39 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class
Binary files differ
diff --git a/libjava/classpath/tools/gnu/classpath/tools/common/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/common/Messages.java
index 1c92d348d2b..4f6d687fd4b 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/common/Messages.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/common/Messages.java
@@ -1,5 +1,5 @@
/* Messages.java -- i18n support for tools common code
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2010 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.ResourceBundle;
class Messages
{
private static final String BUNDLE_NAME
- = "gnu.classpath.tools.common.Messages"; //$NON-NLS-1$
+ = "gnu.classpath.tools.common.messages"; //$NON-NLS-1$
private static final ResourceBundle RESOURCE_BUNDLE
= ResourceBundle.getBundle(BUNDLE_NAME);
diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java
index 19f10174332..9a9c4ec8aa2 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java
@@ -1,5 +1,5 @@
/* Messages.java -- i18n support for getopt
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2010 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.ResourceBundle;
class Messages
{
private static final String BUNDLE_NAME
- = "gnu.classpath.tools.getopt.Messages"; //$NON-NLS-1$
+ = "gnu.classpath.tools.getopt.messages"; //$NON-NLS-1$
private static final ResourceBundle RESOURCE_BUNDLE
= ResourceBundle.getBundle(BUNDLE_NAME);
diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java b/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java
index 9225444be27..9a723cadf1c 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java
@@ -104,6 +104,8 @@ public class JniHelper
result.append("_3");
else if (c == '/')
result.append("_");
+ else if (c == '$')
+ result.append("_");
else if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z')
|| (c >= 'A' && c <= 'Z'))
result.append(c);
diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java b/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java
index cb8bcd8d9c2..cf5fed39f13 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java
@@ -1,5 +1,5 @@
/* JniIncludePrinter.java - Generate a JNI header file
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007, 2011 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -63,6 +63,7 @@ public class JniIncludePrinter
{
klass.linkSupers();
boolean wroteAny = false;
+ ClassWrapper headerClass = klass;
for (; klass != null; klass = klass.superClass)
{
Iterator<?> i = klass.fields.iterator();
@@ -77,7 +78,7 @@ public class JniIncludePrinter
continue;
// Note that we don't want to mangle the field name.
- String name = (JniHelper.mangle(klass.name) + "_" + field.name);
+ String name = (JniHelper.mangle(headerClass.name) + "_" + field.name);
out.print("#undef ");
out.println(name);
out.print("#define ");
diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java b/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java
index bec04f00dab..894a5c4d2c0 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java
@@ -58,9 +58,11 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.Set;
import java.util.Map;
import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.tree.InnerClassNode;
public class Main
{
@@ -101,6 +103,9 @@ public class Main
// Map class names to lists of Text objects.
HashMap<String,ArrayList<Text>> textMap = new HashMap<String,ArrayList<Text>>();
+ // Set of classes which have been parsed
+ Set<String> parsed = new HashSet<String>();
+
void readCommandFile(String textFileName) throws OptionException
{
FileInputStream fis;
@@ -317,7 +322,7 @@ public class Main
return result;
}
- private void writeHeaders(HashMap<File,ClassWrapper> klasses, Printer printer)
+ private void writeHeaders(Map<File,ClassWrapper> klasses, Printer printer)
throws IOException
{
Iterator<Map.Entry<File,ClassWrapper>> i = klasses.entrySet().iterator();
@@ -332,6 +337,53 @@ public class Main
}
}
+ private Map<File,ClassWrapper> parseClasses(Iterator<Object> inputs)
+ throws IOException
+ {
+ Map<File,ClassWrapper> results = new HashMap<File,ClassWrapper>();
+ while (inputs.hasNext())
+ {
+ // Let user specify either kind of class name or a
+ // file name.
+ Object item = inputs.next();
+ ClassWrapper klass;
+ File filename;
+ if (item instanceof File)
+ {
+ // Load class from file.
+ if (verbose)
+ System.err.println("[reading file " + item + "]");
+ klass = getClass((File) item);
+ filename = new File(klass.name);
+ }
+ else
+ {
+ // Load class given the class name.
+ String className = ((String) item).replace('.', '/');
+ if (verbose)
+ System.err.println("[reading class " + className + "]");
+ // Use the name the user specified, even if it is
+ // different from the ultimate class name.
+ filename = new File(className);
+ klass = getClass(className);
+ }
+ results.put(filename, klass);
+ parsed.add(item.toString());
+
+ // Check to see if there are inner classes to also parse
+ Iterator<?> innerClasses = klass.innerClasses.iterator();
+ HashSet<Object> innerNames = new HashSet<Object>();
+ while (innerClasses.hasNext())
+ {
+ String innerName = ((InnerClassNode) innerClasses.next()).name;
+ if (!parsed.contains(innerName))
+ innerNames.add(innerName);
+ }
+ results.putAll(parseClasses(innerNames.iterator()));
+ }
+ return results;
+ }
+
protected void postParse(String[] names)
{
// Nothing here.
@@ -385,36 +437,7 @@ public class Main
}
}
- Iterator<Object> i = klasses.iterator();
- HashMap<File,ClassWrapper> results = new HashMap<File,ClassWrapper>();
- while (i.hasNext())
- {
- // Let user specify either kind of class name or a
- // file name.
- Object item = i.next();
- ClassWrapper klass;
- File filename;
- if (item instanceof File)
- {
- // Load class from file.
- if (verbose)
- System.err.println("[reading file " + item + "]");
- klass = getClass((File) item);
- filename = new File(klass.name);
- }
- else
- {
- // Load class given the class name.
- String className = ((String) item).replace('.', '/');
- if (verbose)
- System.err.println("[reading class " + className + "]");
- // Use the name the user specified, even if it is
- // different from the ultimate class name.
- filename = new File(className);
- klass = getClass(className);
- }
- results.put(filename, klass);
- }
+ Map<File, ClassWrapper> results = parseClasses(klasses.iterator());
writeHeaders(results, printer);
}
@@ -457,7 +480,7 @@ public class Main
ClassWrapper result = readClass(is);
classMap.put(name, result);
}
- return (ClassWrapper) classMap.get(name);
+ return classMap.get(name);
}
public static void main(String[] args) throws IOException
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/common/messages.properties
index 17e79c453ac..afd751e6447 100644
--- a/libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/common/messages.properties
@@ -1,5 +1,5 @@
-# MessagesBundle.properties -- English language messages
-# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+# messages.properties -- English language messages
+# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
#
# This file is part of GNU Classpath.
#
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/getopt/messages.properties
index a747ab4b473..61bfd0e8fdc 100644
--- a/libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/getopt/messages.properties
@@ -1,5 +1,5 @@
-# MessagesBundle.properties -- English language messages
-# Copyright (C) 2006 Free Software Foundation, Inc.
+# messages.properties -- English language messages
+# Copyright (C) 2006, 2010 Free Software Foundation, Inc.
#
# This file is part of GNU Classpath.
#