diff options
Diffstat (limited to 'packages/classpath/files/gjar-prefix-patch.diff')
-rw-r--r-- | packages/classpath/files/gjar-prefix-patch.diff | 40 |
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()); + } ++ + } |