PR libgcj/35950:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 17 Apr 2008 17:16:09 +0000 (17:16 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 17 Apr 2008 17:16:09 +0000 (17:16 +0000)
* tools/gnu/classpath/tools/jar/Entry.java: New version from
Classpath.
* tools/classes/gnu/classpath/tools/jar/Entry.class: Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134402 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/classpath/ChangeLog.gcj
libjava/classpath/tools/classes/gnu/classpath/tools/jar/Entry.class
libjava/classpath/tools/gnu/classpath/tools/jar/Entry.java

index ffc3571..093b2fb 100644 (file)
@@ -1,3 +1,10 @@
+2008-04-17  Tom Tromey  <tromey@redhat.com>
+
+       PR libgcj/35950:
+       * tools/gnu/classpath/tools/jar/Entry.java: New version from
+       Classpath.
+       * tools/classes/gnu/classpath/tools/jar/Entry.class: Update.
+
 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
 
        * gnu/java/rmi/registry/RegistryImpl.java (version): Update
index d030d92..b517df7 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Entry.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Entry.class differ
index aa8679a..b910879 100644 (file)
@@ -1,5 +1,5 @@
 /* Entry.java - represent a single file to write to a jar
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 
  This file is part of GNU Classpath.
 
@@ -49,12 +49,22 @@ public class Entry
   public Entry(File file, String name)
   {
     this.file = file;
-    this.name = name;
+
+    /* Removes any './' prefixes automatically. Those caused trouble
+     * in (boot) classpath use-cases. See #32516.
+     */
+    int start = 0;
+    while (name.length() > start + 2
+           && name.codePointAt(start) == '.'
+           && name.codePointAt(start + 1) == File.separatorChar)
+      start += 2;
+
+    this.name = name.substring(start);
   }
 
   public Entry(File file)
   {
-    this.file = file;
-    this.name = file.toString();
+    this(file, file.toString());
   }
+
 }