This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
Patch: FYI: fix PR libgcj/35950
- From: Tom Tromey <tromey at redhat dot com>
- To: GCJ-patches <java-patches at gcc dot gnu dot org>
- Date: Thu, 17 Apr 2008 11:13:46 -0600
- Subject: Patch: FYI: fix PR libgcj/35950
- Reply-to: Tom Tromey <tromey at redhat dot com>
I'm checking this in on the trunk and the 4.3 branch.
This fixes PR 35950, aka PR 32516. This makes gjar strip leading "./"
components from the path of files it puts into the jar. This is a
regression from fastjar and is also an incompatibility with jar.
Tom
classpath/ChangeLog.gcj:
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.
Index: classpath/tools/gnu/classpath/tools/jar/Entry.java
===================================================================
--- classpath/tools/gnu/classpath/tools/jar/Entry.java (revision 134368)
+++ classpath/tools/gnu/classpath/tools/jar/Entry.java (working copy)
@@ -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 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());
}
+
}