classpath-native: Clean up
authorRobert Schuster <thebohemian@gmx.net>
Thu, 19 Mar 2009 18:16:05 +0000 (19:16 +0100)
committerRobert Schuster <thebohemian@gmx.net>
Thu, 19 Mar 2009 23:55:20 +0000 (00:55 +0100)
 - removed 0.96.1, 0.97.2: Unable to guarantee that these work with current VMs
 - added 0.98
 - removed superfluous patches

recipes/classpath/classpath-0.98/sun-security-getproperty.patch [moved from recipes/classpath/files/sun-security-getproperty_0.96.1.patch with 85% similarity]
recipes/classpath/classpath-native.inc
recipes/classpath/classpath-native_0.96.1.bb [deleted file]
recipes/classpath/classpath-native_0.98.bb [moved from recipes/classpath/classpath-native_0.97.2.bb with 76% similarity]
recipes/classpath/files/getopt-filelist.patch [deleted file]

@@ -1,7 +1,7 @@
 Index: gnu/classpath/debug/Simple1LineFormatter.java
 ===================================================================
 --- gnu/classpath/debug/Simple1LineFormatter.java.orig 2006-07-11 18:03:59.000000000 +0200
-+++ gnu/classpath/debug/Simple1LineFormatter.java      2008-06-04 11:14:14.000000000 +0200
++++ gnu/classpath/debug/Simple1LineFormatter.java      2009-03-19 19:00:47.000000000 +0100
 @@ -38,8 +38,6 @@
  
  package gnu.classpath.debug;
@@ -23,7 +23,7 @@ Index: gnu/classpath/debug/Simple1LineFormatter.java
 Index: gnu/classpath/debug/SystemLogger.java
 ===================================================================
 --- gnu/classpath/debug/SystemLogger.java.orig 2006-12-10 21:25:41.000000000 +0100
-+++ gnu/classpath/debug/SystemLogger.java      2008-06-04 11:14:14.000000000 +0200
++++ gnu/classpath/debug/SystemLogger.java      2009-03-19 19:00:47.000000000 +0100
 @@ -38,13 +38,13 @@
  
  package gnu.classpath.debug;
@@ -42,17 +42,17 @@ Index: gnu/classpath/debug/SystemLogger.java
    public static final SystemLogger SYSTEM = new SystemLogger();
 Index: gnu/java/security/PolicyFile.java
 ===================================================================
---- gnu/java/security/PolicyFile.java.orig     2006-07-11 18:03:59.000000000 +0200
-+++ gnu/java/security/PolicyFile.java  2008-06-04 11:14:50.000000000 +0200
-@@ -39,7 +39,6 @@
- import gnu.classpath.debug.Component;
+--- gnu/java/security/PolicyFile.java.orig     2008-06-16 00:07:30.000000000 +0200
++++ gnu/java/security/PolicyFile.java  2009-03-19 19:01:31.000000000 +0100
+@@ -41,7 +41,6 @@
  import gnu.classpath.debug.SystemLogger;
+ import gnu.java.lang.CPStringBuilder;
 -import gnu.java.security.action.GetPropertyAction;
  
  import java.io.File;
  import java.io.IOException;
-@@ -72,6 +71,8 @@
+@@ -74,6 +73,8 @@
  import java.util.StringTokenizer;
  import java.util.logging.Logger;
  
@@ -157,17 +157,17 @@ Index: gnu/java/security/action/GetPropertyAction.java
 -}
 Index: gnu/java/security/key/dss/DSSKey.java
 ===================================================================
---- gnu/java/security/key/dss/DSSKey.java.orig 2006-08-05 05:23:27.000000000 +0200
-+++ gnu/java/security/key/dss/DSSKey.java      2008-06-04 11:14:14.000000000 +0200
-@@ -39,7 +39,6 @@
package gnu.java.security.key.dss;
+--- gnu/java/security/key/dss/DSSKey.java.orig 2008-03-16 23:04:49.000000000 +0100
++++ gnu/java/security/key/dss/DSSKey.java      2009-03-19 19:00:47.000000000 +0100
+@@ -41,7 +41,6 @@
import gnu.java.lang.CPStringBuilder;
  
  import gnu.java.security.Registry;
 -import gnu.java.security.action.GetPropertyAction;
  import gnu.java.security.util.FormatUtil;
  
  import java.math.BigInteger;
-@@ -49,6 +48,8 @@
+@@ -51,6 +50,8 @@
  import java.security.interfaces.DSAParams;
  import java.security.spec.DSAParameterSpec;
  
@@ -178,9 +178,9 @@ Index: gnu/java/security/key/dss/DSSKey.java
   * Standard) keys. It encapsulates the three DSS numbers: <code>p</code>,
 Index: gnu/java/security/key/dss/DSSPrivateKey.java
 ===================================================================
---- gnu/java/security/key/dss/DSSPrivateKey.java.orig  2006-07-11 18:04:00.000000000 +0200
-+++ gnu/java/security/key/dss/DSSPrivateKey.java       2008-06-04 11:14:14.000000000 +0200
-@@ -40,7 +40,6 @@
+--- gnu/java/security/key/dss/DSSPrivateKey.java.orig  2008-03-16 23:04:49.000000000 +0100
++++ gnu/java/security/key/dss/DSSPrivateKey.java       2009-03-19 19:00:47.000000000 +0100
+@@ -42,7 +42,6 @@
  
  import gnu.java.security.Configuration;
  import gnu.java.security.Registry;
@@ -188,7 +188,7 @@ Index: gnu/java/security/key/dss/DSSPrivateKey.java
  import gnu.java.security.key.IKeyPairCodec;
  
  import java.math.BigInteger;
-@@ -48,6 +47,8 @@
+@@ -50,6 +49,8 @@
  import java.security.PrivateKey;
  import java.security.interfaces.DSAPrivateKey;
  
@@ -199,17 +199,17 @@ Index: gnu/java/security/key/dss/DSSPrivateKey.java
   * 
 Index: gnu/java/security/key/dss/DSSPublicKey.java
 ===================================================================
---- gnu/java/security/key/dss/DSSPublicKey.java.orig   2006-07-11 18:04:00.000000000 +0200
-+++ gnu/java/security/key/dss/DSSPublicKey.java        2008-06-04 11:14:14.000000000 +0200
-@@ -39,7 +39,6 @@
package gnu.java.security.key.dss;
+--- gnu/java/security/key/dss/DSSPublicKey.java.orig   2008-03-16 23:04:49.000000000 +0100
++++ gnu/java/security/key/dss/DSSPublicKey.java        2009-03-19 19:00:47.000000000 +0100
+@@ -41,7 +41,6 @@
import gnu.java.lang.CPStringBuilder;
  
  import gnu.java.security.Registry;
 -import gnu.java.security.action.GetPropertyAction;
  import gnu.java.security.key.IKeyPairCodec;
  
  import java.math.BigInteger;
-@@ -47,6 +46,8 @@
+@@ -49,6 +48,8 @@
  import java.security.PublicKey;
  import java.security.interfaces.DSAPublicKey;
  
@@ -220,17 +220,17 @@ Index: gnu/java/security/key/dss/DSSPublicKey.java
   * 
 Index: gnu/java/security/key/rsa/GnuRSAKey.java
 ===================================================================
---- gnu/java/security/key/rsa/GnuRSAKey.java.orig      2006-07-11 18:04:00.000000000 +0200
-+++ gnu/java/security/key/rsa/GnuRSAKey.java   2008-06-04 11:14:14.000000000 +0200
-@@ -39,7 +39,6 @@
package gnu.java.security.key.rsa;
+--- gnu/java/security/key/rsa/GnuRSAKey.java.orig      2008-03-16 23:04:49.000000000 +0100
++++ gnu/java/security/key/rsa/GnuRSAKey.java   2009-03-19 19:00:47.000000000 +0100
+@@ -41,7 +41,6 @@
import gnu.java.lang.CPStringBuilder;
  
  import gnu.java.security.Registry;
 -import gnu.java.security.action.GetPropertyAction;
  import gnu.java.security.util.FormatUtil;
  
  import java.math.BigInteger;
-@@ -47,6 +46,8 @@
+@@ -49,6 +48,8 @@
  import java.security.Key;
  import java.security.interfaces.RSAKey;
  
@@ -241,17 +241,17 @@ Index: gnu/java/security/key/rsa/GnuRSAKey.java
   */
 Index: gnu/java/security/key/rsa/GnuRSAPrivateKey.java
 ===================================================================
---- gnu/java/security/key/rsa/GnuRSAPrivateKey.java.orig       2006-07-11 18:04:00.000000000 +0200
-+++ gnu/java/security/key/rsa/GnuRSAPrivateKey.java    2008-06-04 11:14:14.000000000 +0200
-@@ -39,7 +39,6 @@
package gnu.java.security.key.rsa;
+--- gnu/java/security/key/rsa/GnuRSAPrivateKey.java.orig       2008-03-16 23:04:50.000000000 +0100
++++ gnu/java/security/key/rsa/GnuRSAPrivateKey.java    2009-03-19 19:00:47.000000000 +0100
+@@ -41,7 +41,6 @@
import gnu.java.lang.CPStringBuilder;
  
  import gnu.java.security.Configuration;
 -import gnu.java.security.action.GetPropertyAction;
  import gnu.java.security.Registry;
  import gnu.java.security.key.IKeyPairCodec;
  
-@@ -49,6 +48,8 @@
+@@ -51,6 +50,8 @@
  import java.security.interfaces.RSAPrivateCrtKey;
  import java.security.interfaces.RSAPrivateKey;
  
@@ -262,17 +262,17 @@ Index: gnu/java/security/key/rsa/GnuRSAPrivateKey.java
   * <p>
 Index: gnu/java/security/key/rsa/GnuRSAPublicKey.java
 ===================================================================
---- gnu/java/security/key/rsa/GnuRSAPublicKey.java.orig        2006-07-11 18:04:00.000000000 +0200
-+++ gnu/java/security/key/rsa/GnuRSAPublicKey.java     2008-06-04 11:14:14.000000000 +0200
-@@ -39,7 +39,6 @@
package gnu.java.security.key.rsa;
+--- gnu/java/security/key/rsa/GnuRSAPublicKey.java.orig        2008-03-16 23:04:50.000000000 +0100
++++ gnu/java/security/key/rsa/GnuRSAPublicKey.java     2009-03-19 19:00:47.000000000 +0100
+@@ -41,7 +41,6 @@
import gnu.java.lang.CPStringBuilder;
  
  import gnu.java.security.Registry;
 -import gnu.java.security.action.GetPropertyAction;
  import gnu.java.security.key.IKeyPairCodec;
  
  import java.math.BigInteger;
-@@ -47,6 +46,8 @@
+@@ -49,6 +48,8 @@
  import java.security.PublicKey;
  import java.security.interfaces.RSAPublicKey;
  
@@ -284,7 +284,7 @@ Index: gnu/java/security/key/rsa/GnuRSAPublicKey.java
 Index: gnu/javax/crypto/key/dh/GnuDHKey.java
 ===================================================================
 --- gnu/javax/crypto/key/dh/GnuDHKey.java.orig 2006-07-11 18:03:59.000000000 +0200
-+++ gnu/javax/crypto/key/dh/GnuDHKey.java      2008-06-04 11:14:14.000000000 +0200
++++ gnu/javax/crypto/key/dh/GnuDHKey.java      2009-03-19 19:00:47.000000000 +0100
 @@ -39,7 +39,6 @@
  package gnu.javax.crypto.key.dh;
  
@@ -305,7 +305,7 @@ Index: gnu/javax/crypto/key/dh/GnuDHKey.java
 Index: gnu/javax/crypto/key/dh/GnuDHPrivateKey.java
 ===================================================================
 --- gnu/javax/crypto/key/dh/GnuDHPrivateKey.java.orig  2006-07-11 18:03:59.000000000 +0200
-+++ gnu/javax/crypto/key/dh/GnuDHPrivateKey.java       2008-06-04 11:14:14.000000000 +0200
++++ gnu/javax/crypto/key/dh/GnuDHPrivateKey.java       2009-03-19 19:00:47.000000000 +0100
 @@ -40,7 +40,6 @@
  
  import gnu.java.security.Configuration;
@@ -326,7 +326,7 @@ Index: gnu/javax/crypto/key/dh/GnuDHPrivateKey.java
 Index: gnu/javax/crypto/key/dh/GnuDHPublicKey.java
 ===================================================================
 --- gnu/javax/crypto/key/dh/GnuDHPublicKey.java.orig   2006-07-11 18:03:59.000000000 +0200
-+++ gnu/javax/crypto/key/dh/GnuDHPublicKey.java        2008-06-04 11:14:14.000000000 +0200
++++ gnu/javax/crypto/key/dh/GnuDHPublicKey.java        2009-03-19 19:00:47.000000000 +0100
 @@ -39,7 +39,6 @@
  package gnu.javax.crypto.key.dh;
  
@@ -346,17 +346,17 @@ Index: gnu/javax/crypto/key/dh/GnuDHPublicKey.java
   * <p>
 Index: gnu/javax/crypto/sasl/plain/PasswordFile.java
 ===================================================================
---- gnu/javax/crypto/sasl/plain/PasswordFile.java.orig 2006-07-11 18:03:59.000000000 +0200
-+++ gnu/javax/crypto/sasl/plain/PasswordFile.java      2008-06-04 11:14:14.000000000 +0200
-@@ -38,7 +38,6 @@
+--- gnu/javax/crypto/sasl/plain/PasswordFile.java.orig 2008-05-05 23:29:46.000000000 +0200
++++ gnu/javax/crypto/sasl/plain/PasswordFile.java      2009-03-19 19:00:47.000000000 +0100
+@@ -40,7 +40,6 @@
  
package gnu.javax.crypto.sasl.plain;
import gnu.java.lang.CPStringBuilder;
  
 -import gnu.java.security.action.GetPropertyAction;
  import gnu.javax.crypto.sasl.NoSuchUserException;
  import gnu.javax.crypto.sasl.UserAlreadyExistsException;
  
-@@ -56,6 +55,8 @@
+@@ -58,6 +57,8 @@
  import java.util.NoSuchElementException;
  import java.util.StringTokenizer;
  
@@ -368,7 +368,7 @@ Index: gnu/javax/crypto/sasl/plain/PasswordFile.java
 Index: gnu/javax/net/ssl/provider/X509TrustManagerFactory.java
 ===================================================================
 --- gnu/javax/net/ssl/provider/X509TrustManagerFactory.java.orig       2006-12-10 21:25:43.000000000 +0100
-+++ gnu/javax/net/ssl/provider/X509TrustManagerFactory.java    2008-06-04 11:14:14.000000000 +0200
++++ gnu/javax/net/ssl/provider/X509TrustManagerFactory.java    2009-03-19 19:00:47.000000000 +0100
 @@ -66,11 +66,12 @@
  import javax.net.ssl.TrustManagerFactorySpi;
  import javax.net.ssl.X509TrustManager;
@@ -385,8 +385,8 @@ Index: gnu/javax/net/ssl/provider/X509TrustManagerFactory.java
   * for the ``JessieX509'' algorithm.
 Index: gnu/xml/aelfred2/XmlParser.java
 ===================================================================
---- gnu/xml/aelfred2/XmlParser.java.orig       2007-09-21 20:05:21.000000000 +0200
-+++ gnu/xml/aelfred2/XmlParser.java    2008-06-04 11:14:14.000000000 +0200
+--- gnu/xml/aelfred2/XmlParser.java.orig       2008-01-11 22:22:59.000000000 +0100
++++ gnu/xml/aelfred2/XmlParser.java    2009-03-19 19:00:47.000000000 +0100
 @@ -53,8 +53,6 @@
  
  package gnu.xml.aelfred2;
@@ -407,7 +407,7 @@ Index: gnu/xml/aelfred2/XmlParser.java
 Index: sun/security/action/GetPropertyAction.java
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ sun/security/action/GetPropertyAction.java 2008-06-04 11:14:14.000000000 +0200
++++ sun/security/action/GetPropertyAction.java 2009-03-19 19:00:47.000000000 +0100
 @@ -0,0 +1,92 @@
 +/* GetPropertyAction.java
 +   Copyright (C) 2004, 2008 Free Software Foundation, Inc.
index bee62fa..dba9776 100644 (file)
@@ -13,6 +13,7 @@ do_configure_prepend () {
        cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${S}
 }
 
+export JAVA="${STAGING_BINDIR_NATIVE}/java-initial"
 export JAVAC="${STAGING_BINDIR_NATIVE}/ecj-initial"
 export JAVACFLAGS="-nowarn"
 
diff --git a/recipes/classpath/classpath-native_0.96.1.bb b/recipes/classpath/classpath-native_0.96.1.bb
deleted file mode 100644 (file)
index 2d7ebad..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-require classpath-native.inc
-
-PR = "r4"
-
-SRC_URI += "\
-  file://gjar-prefix-patch.diff;patch=1;pnum=0 \
-  file://xmlstream-fix.patch;patch=1;pnum=0 \
-  file://getopt-filelist.patch;patch=1;pnum=0 \
-  file://sun-security-getproperty_0.96.1.patch;patch=1;pnum=0 \
-  "
-
similarity index 76%
rename from recipes/classpath/classpath-native_0.97.2.bb
rename to recipes/classpath/classpath-native_0.98.bb
index 0024136..dfbaad8 100644 (file)
@@ -1,19 +1,15 @@
 require classpath-native.inc
 
-PR = "r4"
+PR = "r0"
 
 # The code affected by the javanet-local patch
 # is usually not compiled. However if someone changes
 # to --enable-local-sockets it will.
 SRC_URI += "\
-  file://netif_16.patch;patch=1;pnum=0 \
   file://SimpleName.diff;patch=1;pnum=0 \
-  file://javanet-local.patch;patch=1;pnum=0 \
-  file://sun-security-getproperty_0.96.1.patch;patch=1;pnum=0 \
+  file://sun-security-getproperty.patch;patch=1;pnum=0 \
   file://ecj_java_dir.patch;patch=1 \
   file://autotools.patch;patch=1 \
-  file://decimalformat.patch;patch=1 \
-  file://cp-byte-loophelper.patch;patch=1;pnum=0 \
   file://miscompilation.patch;patch=1 \
   "
 
diff --git a/recipes/classpath/files/getopt-filelist.patch b/recipes/classpath/files/getopt-filelist.patch
deleted file mode 100644 (file)
index 7b5e274..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-? tools/generated
-Index: tools/gnu/classpath/tools/common/ClasspathToolParser.java
-===================================================================
-RCS file: /sources/classpath/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java,v
-retrieving revision 1.1
-diff -u -r1.1 ClasspathToolParser.java
---- tools/gnu/classpath/tools/common/ClasspathToolParser.java  22 Sep 2006 01:01:26 -0000      1.1
-+++ tools/gnu/classpath/tools/common/ClasspathToolParser.java  3 Jun 2008 16:34:45 -0000
-@@ -38,9 +38,16 @@
- package gnu.classpath.tools.common;
-+import java.io.BufferedReader;
-+import java.io.IOException;
-+import java.io.FileNotFoundException;
-+import java.io.FileReader;
-+import java.io.Reader;
- import java.text.MessageFormat;
-+import java.util.ArrayList;
- import gnu.classpath.Configuration;
-+import gnu.classpath.tools.getopt.FileArgumentCallback;
- import gnu.classpath.tools.getopt.Option;
- import gnu.classpath.tools.getopt.OptionException;
- import gnu.classpath.tools.getopt.Parser;
-@@ -84,4 +91,137 @@
-                }
-              });
-   }
-+
-+      public void parse(String[] inArgs, FileArgumentCallback files,
-+                                                                        boolean handleFileLists)
-+      {
-+              FileArgumentCallback cb;
-+
-+              if (handleFileLists)
-+                      cb = new AtFileArgumentCallback(files);
-+              else
-+                      cb = files;
-+
-+              parse(inArgs, cb);
-+      }
-+
-+  public String[] parse(String[] inArgs, boolean handleFileLists)
-+  {
-+    final ArrayList fileResult = new ArrayList();
-+
-+              final FileArgumentCallback cb = new FileArgumentCallback()
-+      {
-+      public void notifyFile(String fileArgument)
-+      {
-+        fileResult.add(fileArgument);
-+      }
-+    };
-+
-+              if (handleFileLists)
-+                      parse(inArgs, new AtFileArgumentCallback(cb));
-+              else
-+                      parse(inArgs, cb);
-+
-+    return (String[]) fileResult.toArray(new String[0]);
-+  }
-+
-+
-+  /** Simple function that takes the given {@link Reader}, treats it like
-+   * a textfile and reads all the whitespace separated entries from it
-+   * and adds them to the @{link FileArgumentCallback} instance.
-+   */
-+  public void parseFileList(Reader reader, FileArgumentCallback cb)
-+      throws OptionException
-+  {
-+    BufferedReader breader = new BufferedReader(reader);
-+    String line = null;
-+
-+    try
-+      {
-+        while ((line = breader.readLine()) != null)
-+          parseLine(line, cb);
-+          
-+        reader.close();
-+      }
-+    catch (IOException ioe)
-+      {
-+        System.err.println(programName + ": IO error while reading from inputstream");
-+        System.exit(1);
-+      }
-+      
-+  }
-+  
-+  /** Parses whitespace separated file entries.
-+   *
-+   * Note: This is not coping with whitespace in files or quoting.
-+   */
-+  private void parseLine(String line, FileArgumentCallback cb)
-+    throws IOException, OptionException
-+  {
-+    final int length = line.length();
-+    int start = 0;
-+    int end = 0;
-+
-+              // While not reached end of line ...
-+    while (start < length)
-+      {
-+                              // Search for first non-whitespace character for the start of a word.
-+        while (Character.isWhitespace(line.codePointAt(start)))
-+          {
-+            start++;
-+        
-+            if (start == length)
-+              return;
-+          }
-+    
-+        end = start + 1;
-+      
-+                              // Search for first whitespace character for the end of a word.
-+        while (end < length && !Character.isWhitespace(line.codePointAt(end)))
-+          end++;
-+      
-+        cb.notifyFile(line.substring(start, end));
-+    
-+        start = end + 1;
-+      }
-+  }
-+
-+      /** Implementation of {@link FileArgumentCallback} that handles
-+              * file arguments in {@link #notifyFile} starting with a <code>@</code>
-+              * through {@link ClasspathToolParser#parseFileList}.
-+              */
-+      class AtFileArgumentCallback extends FileArgumentCallback
-+      {
-+              FileArgumentCallback cb;
-+      
-+              AtFileArgumentCallback(FileArgumentCallback cb)
-+              {
-+                      this.cb = cb;
-+              }
-+
-+      public void notifyFile(String fileArgument)
-+              throws OptionException
-+      {
-+                      if (fileArgument.codePointAt(0) == '@')
-+                      {
-+                              FileReader fr = null;
-+
-+                              try
-+                                      {
-+                                              fr = new FileReader(fileArgument.substring(1));
-+                                      }
-+                              catch (FileNotFoundException fnfe)
-+                                      {
-+                                              System.err.println(programName + ": file not found " + fileArgument.substring(1));
-+                                              System.exit(1);
-+                                      }
-+
-+                              ClasspathToolParser.this.parseFileList(fr, cb);
-+                      }
-+                      else
-+              cb.notifyFile(fileArgument);
-+      }
-+
-+  }
-+
- }
-Index: tools/gnu/classpath/tools/getopt/Parser.java
-===================================================================
-RCS file: /sources/classpath/classpath/tools/gnu/classpath/tools/getopt/Parser.java,v
-retrieving revision 1.10
-diff -u -r1.10 Parser.java
---- tools/gnu/classpath/tools/getopt/Parser.java       20 Mar 2008 18:04:44 -0000      1.10
-+++ tools/gnu/classpath/tools/getopt/Parser.java       3 Jun 2008 16:34:45 -0000
-@@ -58,7 +58,7 @@
-   /** The maximum right column position. */
-   public static final int MAX_LINE_LENGTH = 80;
--  private String programName;
-+  protected String programName;
-   private String headerText;
-Index: tools/gnu/classpath/tools/jar/Main.java
-===================================================================
-RCS file: /sources/classpath/classpath/tools/gnu/classpath/tools/jar/Main.java,v
-retrieving revision 1.11
-diff -u -r1.11 Main.java
---- tools/gnu/classpath/tools/jar/Main.java    3 Jun 2008 14:02:13 -0000       1.11
-+++ tools/gnu/classpath/tools/jar/Main.java    3 Jun 2008 16:34:45 -0000
-@@ -172,9 +172,9 @@
-     }
-   }
--  private Parser initializeParser()
-+  private ClasspathToolParser initializeParser()
-   {
--    Parser p = new JarParser("jar"); //$NON-NLS-1$
-+    ClasspathToolParser p = new JarParser("jar"); //$NON-NLS-1$
-     p.setHeader(Messages.getString("Main.Usage")); //$NON-NLS-1$
-     OptionGroup grp = new OptionGroup(Messages.getString("Main.OpMode")); //$NON-NLS-1$
-@@ -265,11 +265,11 @@
-   private void run(String[] args)
-       throws InstantiationException, IllegalAccessException, IOException
-   {
--    Parser p = initializeParser();
-+    ClasspathToolParser p = initializeParser();
-     // Special hack to emulate old tar-style commands.
-     if (args.length > 0 && args[0].charAt(0) != '-')
-       args[0] = '-' + args[0];
--    p.parse(args, new HandleFile());
-+    p.parse(args, new HandleFile(), true);
-     if (readNamesFromStdin)
-       readNames();
-     Action t = (Action) operationMode.newInstance();
-Index: tools/gnu/classpath/tools/javah/GcjhMain.java
-===================================================================
-RCS file: /sources/classpath/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java,v
-retrieving revision 1.1
-diff -u -r1.1 GcjhMain.java
---- tools/gnu/classpath/tools/javah/GcjhMain.java      6 Mar 2007 18:52:34 -0000       1.1
-+++ tools/gnu/classpath/tools/javah/GcjhMain.java      3 Jun 2008 16:34:46 -0000
-@@ -38,10 +38,11 @@
- package gnu.classpath.tools.javah;
-+import gnu.classpath.tools.common.ClasspathToolParser;
-+
- import gnu.classpath.tools.getopt.Option;
- import gnu.classpath.tools.getopt.OptionException;
- import gnu.classpath.tools.getopt.OptionGroup;
--import gnu.classpath.tools.getopt.Parser;
- import java.io.IOException;
- import java.util.ArrayList;
-@@ -60,9 +61,9 @@
-     return "gcjh";
-   }
--  protected Parser getParser()
-+  protected ClasspathToolParser getParser()
-   {
--    Parser result = super.getParser();
-+    ClasspathToolParser result = super.getParser();
-     result.setHeader("usage: gcjh [OPTION]... CLASS...");
-Index: tools/gnu/classpath/tools/javah/Main.java
-===================================================================
-RCS file: /sources/classpath/classpath/tools/gnu/classpath/tools/javah/Main.java,v
-retrieving revision 1.10
-diff -u -r1.10 Main.java
---- tools/gnu/classpath/tools/javah/Main.java  31 Jul 2007 16:15:53 -0000      1.10
-+++ tools/gnu/classpath/tools/javah/Main.java  3 Jun 2008 16:34:46 -0000
-@@ -188,7 +188,7 @@
-     return "javah";
-   }
--  protected Parser getParser()
-+  protected ClasspathToolParser getParser()
-   {
-     ClasspathToolParser result = new ClasspathToolParser(getName(), true);
-     result.setHeader("usage: javah [OPTIONS] CLASS...");
-@@ -339,8 +339,8 @@
-   protected void run(String[] args) throws IOException
-   {
--    Parser p = getParser();
--    String[] classNames = p.parse(args);
-+    ClasspathToolParser p = getParser();
-+    String[] classNames = p.parse(args, true);
-     postParse(classNames);
-     loader = classpath.getLoader();