summaryrefslogtreecommitdiff
path: root/packages/classpath/files/gjar-prefix-patch.diff
diff options
context:
space:
mode:
Diffstat (limited to 'packages/classpath/files/gjar-prefix-patch.diff')
-rw-r--r--packages/classpath/files/gjar-prefix-patch.diff40
1 files changed, 40 insertions, 0 deletions
diff --git a/packages/classpath/files/gjar-prefix-patch.diff b/packages/classpath/files/gjar-prefix-patch.diff
new file mode 100644
index 0000000000..64b262cb41
--- /dev/null
+++ b/packages/classpath/files/gjar-prefix-patch.diff
@@ -0,0 +1,40 @@
+Index: tools/gnu/classpath/tools/jar/Entry.java
+===================================================================
+RCS file: /sources/classpath/classpath/tools/gnu/classpath/tools/jar/Entry.java,v
+retrieving revision 1.1
+diff -u -r1.1 Entry.java
+--- tools/gnu/classpath/tools/jar/Entry.java 8 May 2006 18:38:20 -0000 1.1
++++ tools/gnu/classpath/tools/jar/Entry.java 10 Dec 2007 22:20:05 -0000
+@@ -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());
+ }
++
+ }