This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Patch: FYI: fix PR libgcj/35950


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());
   }
+
 }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]