/hg/icedtea: Allow building on systems with a version of GNU Cla...
andrew at icedtea.classpath.org
andrew at icedtea.classpath.org
Mon May 17 14:32:25 PDT 2010
changeset 1a1a1952c309 in /hg/icedtea
details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=1a1a1952c309
author: Andrew John Hughes <ahughes at redhat.com>
date: Mon May 17 22:32:12 2010 +0100
Allow building on systems with a version of GNU Classpath without
java.util.Scanner.
2010-05-17 Andrew John Hughes <ahughes at redhat.com>
* patches/boot/icedtea-dbcs.patch,
* patches/boot/icedtea-sbcs.patch,
* patches/boot/icedtea-spp.patch: Renamed to relate to
java.util.Scanner.
* Makefile.am: Fix paths above and add new patch.
* patches/boot/scanner-charsets.patch: New patch to remove
Scanner usage in charsetmapping tool.
* patches/boot/scanner-dbcs.patch,
* patches/boot/scanner-sbcs.patch,
* patches/boot/scanner-spp.patch: Collect together all patches
to avoid use of java.util.Scanner.
diffstat:
9 files changed, 233 insertions(+), 146 deletions(-)
ChangeLog | 17 ++++++++
Makefile.am | 7 ++-
patches/boot/icedtea-dbcs.patch | 40 --------------------
patches/boot/icedtea-sbcs.patch | 38 -------------------
patches/boot/icedtea-spp.patch | 65 --------------------------------
patches/boot/scanner-charsets.patch | 69 +++++++++++++++++++++++++++++++++++
patches/boot/scanner-dbcs.patch | 40 ++++++++++++++++++++
patches/boot/scanner-sbcs.patch | 38 +++++++++++++++++++
patches/boot/scanner-spp.patch | 65 ++++++++++++++++++++++++++++++++
diffs (424 lines):
diff -r 8e94f2afbe5f -r 1a1a1952c309 ChangeLog
--- a/ChangeLog Mon May 17 19:28:25 2010 +0100
+++ b/ChangeLog Mon May 17 22:32:12 2010 +0100
@@ -1,3 +1,20 @@ 2010-05-17 Andrew John Hughes <ahughes@
+2010-05-17 Andrew John Hughes <ahughes at redhat.com>
+
+ * patches/boot/icedtea-dbcs.patch,
+ * patches/boot/icedtea-sbcs.patch,
+ * patches/boot/icedtea-spp.patch:
+ Renamed to relate to java.util.Scanner.
+ * Makefile.am: Fix paths above and add
+ new patch.
+ * patches/boot/scanner-charsets.patch:
+ New patch to remove Scanner usage in
+ charsetmapping tool.
+ * patches/boot/scanner-dbcs.patch,
+ * patches/boot/scanner-sbcs.patch,
+ * patches/boot/scanner-spp.patch:
+ Collect together all patches to avoid use
+ of java.util.Scanner.
+
2010-05-17 Andrew John Hughes <ahughes at redhat.com>
* Makefile.am:
diff -r 8e94f2afbe5f -r 1a1a1952c309 Makefile.am
--- a/Makefile.am Mon May 17 19:28:25 2010 +0100
+++ b/Makefile.am Mon May 17 22:32:12 2010 +0100
@@ -420,9 +420,10 @@ endif
# Patches for when java.util.Scanner is missing
# or has the bug #40630 (all these classes rely
# on Scanner#hasNextLine() looping behaviour)
-SCANNER_PATCHES = patches/boot/icedtea-spp.patch \
- patches/boot/icedtea-sbcs.patch \
- patches/boot/icedtea-dbcs.patch
+SCANNER_PATCHES = patches/boot/scanner-spp.patch \
+ patches/boot/scanner-sbcs.patch \
+ patches/boot/scanner-dbcs.patch \
+ patches/boot/scanner-charsets.patch
if LACKS_JAVA_UTIL_SCANNER
ICEDTEA_BOOT_PATCHES += $(SCANNER_PATCHES)
diff -r 8e94f2afbe5f -r 1a1a1952c309 patches/boot/icedtea-dbcs.patch
--- a/patches/boot/icedtea-dbcs.patch Mon May 17 19:28:25 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java
---- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java 2010-05-04 14:24:56.000000000 +0100
-+++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java 2010-05-04 14:34:01.000000000 +0100
-@@ -27,7 +27,6 @@
- import java.io.*;
- import java.util.Arrays;
- import java.util.ArrayList;
--import java.util.Scanner;
- import java.util.Formatter;
- import java.util.regex.*;
- import java.nio.charset.*;
-@@ -39,9 +38,8 @@
-
- public static void genClass(String args[]) throws Exception {
-
-- Scanner s = new Scanner(new File(args[0], args[2]));
-- while (s.hasNextLine()) {
-- String line = s.nextLine();
-+ BufferedReader s = new BufferedReader(new FileReader(new File(args[0], args[2])));
-+ for (String line = s.readLine(); line != null; line = s.readLine()) {
- if (line.startsWith("#") || line.length() == 0)
- continue;
- String[] fields = line.split("\\s+");
-@@ -188,14 +186,13 @@
- String b2cNR = b2cNRSB.toString();
- String c2bNR = c2bNRSB.toString();
-
-- Scanner s = new Scanner(new File(srcDir, template));
-+ BufferedReader s = new BufferedReader(new FileReader(new File(srcDir, template)));
- PrintStream ops = new PrintStream(new FileOutputStream(
- new File(dstDir, clzName + ".java")));
- if (hisName == null)
- hisName = "";
-
-- while (s.hasNextLine()) {
-- String line = s.nextLine();
-+ for (String line = s.readLine(); line != null; line = s.readLine()) {
- if (line.indexOf("$") == -1) {
- ops.println(line);
- continue;
diff -r 8e94f2afbe5f -r 1a1a1952c309 patches/boot/icedtea-sbcs.patch
--- a/patches/boot/icedtea-sbcs.patch Mon May 17 19:28:25 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java
---- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java 2010-05-04 14:09:01.000000000 +0100
-+++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java 2010-05-04 14:17:47.000000000 +0100
-@@ -28,7 +28,6 @@
- import java.io.*;
- import java.util.Arrays;
- import java.util.ArrayList;
--import java.util.Scanner;
- import java.util.Formatter;
- import java.util.regex.*;
- import java.nio.charset.*;
-@@ -38,9 +37,8 @@
-
- public static void genClass(String args[]) throws Exception {
-
-- Scanner s = new Scanner(new File(args[0], args[2]));
-- while (s.hasNextLine()) {
-- String line = s.nextLine();
-+ BufferedReader s = new BufferedReader(new FileReader(new File(args[0], args[2])));
-+ for (String line = s.readLine(); line != null; line = s.readLine()) {
- if (line.startsWith("#") || line.length() == 0)
- continue;
- String[] fields = line.split("\\s+");
-@@ -208,12 +206,11 @@
- String b2cNR = b2cNRSB.toString();
- String c2bNR = c2bNRSB.toString();
-
-- Scanner s = new Scanner(new File(srcDir, template));
-+ BufferedReader s = new BufferedReader(new FileReader(new File(srcDir, template)));
- PrintStream out = new PrintStream(new FileOutputStream(
- new File(dstDir, clzName + ".java")));
-
-- while (s.hasNextLine()) {
-- String line = s.nextLine();
-+ for (String line = s.readLine(); line != null; line = s.readLine()) {
- int i = line.indexOf("$");
- if (i == -1) {
- out.println(line);
diff -r 8e94f2afbe5f -r 1a1a1952c309 patches/boot/icedtea-spp.patch
--- a/patches/boot/icedtea-spp.patch Mon May 17 19:28:25 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/spp/Spp.java openjdk-boot/jdk/make/tools/src/build/tools/spp/Spp.java
---- openjdk-boot.orig/jdk/make/tools/src/build/tools/spp/Spp.java 2008-09-11 08:44:09.000000000 +0100
-+++ openjdk-boot/jdk/make/tools/src/build/tools/spp/Spp.java 2008-09-12 21:34:38.000000000 +0100
-@@ -25,6 +25,10 @@
-
- package build.tools.spp;
-
-+import java.io.BufferedReader;
-+import java.io.InputStreamReader;
-+import java.io.IOException;
-+
- import java.util.*;
- import java.util.regex.*;
-
-@@ -83,7 +87,7 @@
- }
-
- StringBuffer out = new StringBuffer();
-- new Spp().spp(new Scanner(System.in),
-+ new Spp().spp(new BufferedReader(new InputStreamReader(System.in)),
- out, "",
- keys, vars, be,
- false);
-@@ -104,12 +108,12 @@
- Matcher ifkey = Pattern.compile("^#if\\[(!)?" + KEY + "\\]").matcher("");
- Matcher elsekey = Pattern.compile("^#else\\[(!)?" + KEY + "\\]").matcher("");
- Matcher endkey = Pattern.compile("^#end\\[(!)?" + KEY + "\\]").matcher("");
-- Matcher vardef = Pattern.compile("\\{#if\\[(!)?" + KEY + "\\]\\?" + TEXT + "(:"+ TEXT + ")?\\}|\\$" + VAR + "\\$").matcher("");
-+ Pattern pvardef = Pattern.compile("\\{#if\\[(!)?" + KEY + "\\]\\?" + TEXT + "(:"+ TEXT + ")?\\}|\\$" + VAR + "\\$");
- Matcher vardef2 = Pattern.compile("\\$" + VAR + "\\$").matcher("");
-
- void append(StringBuffer buf, String ln,
- Set<String> keys, Map<String, String> vars) {
-- vardef.reset(ln);
-+ Matcher vardef = pvardef.matcher(ln);
- while (vardef.find()) {
- String repl = "";
- if (vardef.group(GN_VAR) != null)
-@@ -133,19 +137,20 @@
- }
-
- // return true if #end[key], #end or EOF reached
-- boolean spp(Scanner in, StringBuffer buf, String key,
-+ boolean spp(BufferedReader in, StringBuffer buf, String key,
- Set<String> keys, Map<String, String> vars,
-- boolean be, boolean skip) {
-- while (in.hasNextLine()) {
-- String ln = in.nextLine();
-+ boolean be, boolean skip) throws IOException {
-+ while (true) {
-+ String ln = in.readLine();
-+ if (ln == null)
-+ break;
- if (be) {
- if (ln.startsWith("#begin")) {
- buf.setLength(0); //clean up to this line
- continue;
- }
- if (ln.equals("#end")) {
-- while (in.hasNextLine())
-- in.nextLine();
-+ do { } while (in.readLine() != null);
- return true; //discard the rest to EOF
- }
- }
diff -r 8e94f2afbe5f -r 1a1a1952c309 patches/boot/scanner-charsets.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/boot/scanner-charsets.patch Mon May 17 22:32:12 2010 +0100
@@ -0,0 +1,69 @@
+diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/EUC_TW.java
+--- openjdk.orig/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java Fri May 14 14:06:33 2010 +0100
++++ openjdk/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java Mon May 17 20:40:10 2010 +0100
+@@ -27,7 +27,6 @@
+
+ import java.io.*;
+ import java.util.ArrayList;
+-import java.util.Scanner;
+ import java.util.Formatter;
+ import java.util.regex.*;
+ import java.nio.charset.*;
+diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/HKSCS.java
+--- openjdk.orig/jdk/make/tools/src/build/tools/charsetmapping/HKSCS.java Fri May 14 14:06:33 2010 +0100
++++ openjdk/jdk/make/tools/src/build/tools/charsetmapping/HKSCS.java Mon May 17 20:40:10 2010 +0100
+@@ -28,7 +28,6 @@
+ import java.io.*;
+ import java.util.Arrays;
+ import java.util.ArrayList;
+-import java.util.Scanner;
+ import java.util.Formatter;
+ import java.util.regex.*;
+ import java.nio.charset.*;
+diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/Main.java
+--- openjdk.orig/jdk/make/tools/src/build/tools/charsetmapping/Main.java Fri May 14 14:06:33 2010 +0100
++++ openjdk/jdk/make/tools/src/build/tools/charsetmapping/Main.java Mon May 17 20:40:10 2010 +0100
+@@ -25,9 +25,6 @@
+
+ package build.tools.charsetmapping;
+
+-import java.io.*;
+-import java.util.Scanner;
+-
+ public class Main {
+
+ public static void main(String args[]) throws Exception {
+diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/Utils.java
+--- openjdk.orig/jdk/make/tools/src/build/tools/charsetmapping/Utils.java Fri May 14 14:06:33 2010 +0100
++++ openjdk/jdk/make/tools/src/build/tools/charsetmapping/Utils.java Mon May 17 20:40:10 2010 +0100
+@@ -26,6 +26,7 @@
+ package build.tools.charsetmapping;
+
+ import java.io.File;
++import java.io.FileInputStream;
+ import java.io.InputStream;
+ import java.io.InputStreamReader;
+ import java.io.OutputStream;
+@@ -33,7 +34,6 @@
+ import java.io.IOException;
+ import java.util.regex.Matcher;
+ import java.util.regex.Pattern;
+-import java.util.Scanner;
+ import java.util.Formatter;
+
+ public class Utils {
+@@ -206,10 +206,11 @@
+ }
+
+ public static String getCopyright(File f) throws IOException {
+- Scanner s = new Scanner(f, "ISO-8859-1");
++ InputStreamReader r = new InputStreamReader(new FileInputStream(f),
++ "ISO-8859-1");
++ BufferedReader s = new BufferedReader(r);
+ StringBuilder sb = new StringBuilder();
+- while (s.hasNextLine()) {
+- String ln = s.nextLine();
++ for (String ln = s.readLine(); ln != null; ln = s.readLine()) {
+ sb.append(ln + "\n");
+ // assume we have the copyright as the first comment
+ if (ln.matches("^\\s\\*\\/$"))
diff -r 8e94f2afbe5f -r 1a1a1952c309 patches/boot/scanner-dbcs.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/boot/scanner-dbcs.patch Mon May 17 22:32:12 2010 +0100
@@ -0,0 +1,40 @@
+diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java
+--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java 2010-05-04 14:24:56.000000000 +0100
++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java 2010-05-04 14:34:01.000000000 +0100
+@@ -27,7 +27,6 @@
+ import java.io.*;
+ import java.util.Arrays;
+ import java.util.ArrayList;
+-import java.util.Scanner;
+ import java.util.Formatter;
+ import java.util.regex.*;
+ import java.nio.charset.*;
+@@ -39,9 +38,8 @@
+
+ public static void genClass(String args[]) throws Exception {
+
+- Scanner s = new Scanner(new File(args[0], args[2]));
+- while (s.hasNextLine()) {
+- String line = s.nextLine();
++ BufferedReader s = new BufferedReader(new FileReader(new File(args[0], args[2])));
++ for (String line = s.readLine(); line != null; line = s.readLine()) {
+ if (line.startsWith("#") || line.length() == 0)
+ continue;
+ String[] fields = line.split("\\s+");
+@@ -188,14 +186,13 @@
+ String b2cNR = b2cNRSB.toString();
+ String c2bNR = c2bNRSB.toString();
+
+- Scanner s = new Scanner(new File(srcDir, template));
++ BufferedReader s = new BufferedReader(new FileReader(new File(srcDir, template)));
+ PrintStream ops = new PrintStream(new FileOutputStream(
+ new File(dstDir, clzName + ".java")));
+ if (hisName == null)
+ hisName = "";
+
+- while (s.hasNextLine()) {
+- String line = s.nextLine();
++ for (String line = s.readLine(); line != null; line = s.readLine()) {
+ if (line.indexOf("$") == -1) {
+ ops.println(line);
+ continue;
diff -r 8e94f2afbe5f -r 1a1a1952c309 patches/boot/scanner-sbcs.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/boot/scanner-sbcs.patch Mon May 17 22:32:12 2010 +0100
@@ -0,0 +1,38 @@
+diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java
+--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java 2010-05-04 14:09:01.000000000 +0100
++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java 2010-05-04 14:17:47.000000000 +0100
+@@ -28,7 +28,6 @@
+ import java.io.*;
+ import java.util.Arrays;
+ import java.util.ArrayList;
+-import java.util.Scanner;
+ import java.util.Formatter;
+ import java.util.regex.*;
+ import java.nio.charset.*;
+@@ -38,9 +37,8 @@
+
+ public static void genClass(String args[]) throws Exception {
+
+- Scanner s = new Scanner(new File(args[0], args[2]));
+- while (s.hasNextLine()) {
+- String line = s.nextLine();
++ BufferedReader s = new BufferedReader(new FileReader(new File(args[0], args[2])));
++ for (String line = s.readLine(); line != null; line = s.readLine()) {
+ if (line.startsWith("#") || line.length() == 0)
+ continue;
+ String[] fields = line.split("\\s+");
+@@ -208,12 +206,11 @@
+ String b2cNR = b2cNRSB.toString();
+ String c2bNR = c2bNRSB.toString();
+
+- Scanner s = new Scanner(new File(srcDir, template));
++ BufferedReader s = new BufferedReader(new FileReader(new File(srcDir, template)));
+ PrintStream out = new PrintStream(new FileOutputStream(
+ new File(dstDir, clzName + ".java")));
+
+- while (s.hasNextLine()) {
+- String line = s.nextLine();
++ for (String line = s.readLine(); line != null; line = s.readLine()) {
+ int i = line.indexOf("$");
+ if (i == -1) {
+ out.println(line);
diff -r 8e94f2afbe5f -r 1a1a1952c309 patches/boot/scanner-spp.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/boot/scanner-spp.patch Mon May 17 22:32:12 2010 +0100
@@ -0,0 +1,65 @@
+diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/spp/Spp.java openjdk-boot/jdk/make/tools/src/build/tools/spp/Spp.java
+--- openjdk-boot.orig/jdk/make/tools/src/build/tools/spp/Spp.java 2008-09-11 08:44:09.000000000 +0100
++++ openjdk-boot/jdk/make/tools/src/build/tools/spp/Spp.java 2008-09-12 21:34:38.000000000 +0100
+@@ -25,6 +25,10 @@
+
+ package build.tools.spp;
+
++import java.io.BufferedReader;
++import java.io.InputStreamReader;
++import java.io.IOException;
++
+ import java.util.*;
+ import java.util.regex.*;
+
+@@ -83,7 +87,7 @@
+ }
+
+ StringBuffer out = new StringBuffer();
+- new Spp().spp(new Scanner(System.in),
++ new Spp().spp(new BufferedReader(new InputStreamReader(System.in)),
+ out, "",
+ keys, vars, be,
+ false);
+@@ -104,12 +108,12 @@
+ Matcher ifkey = Pattern.compile("^#if\\[(!)?" + KEY + "\\]").matcher("");
+ Matcher elsekey = Pattern.compile("^#else\\[(!)?" + KEY + "\\]").matcher("");
+ Matcher endkey = Pattern.compile("^#end\\[(!)?" + KEY + "\\]").matcher("");
+- Matcher vardef = Pattern.compile("\\{#if\\[(!)?" + KEY + "\\]\\?" + TEXT + "(:"+ TEXT + ")?\\}|\\$" + VAR + "\\$").matcher("");
++ Pattern pvardef = Pattern.compile("\\{#if\\[(!)?" + KEY + "\\]\\?" + TEXT + "(:"+ TEXT + ")?\\}|\\$" + VAR + "\\$");
+ Matcher vardef2 = Pattern.compile("\\$" + VAR + "\\$").matcher("");
+
+ void append(StringBuffer buf, String ln,
+ Set<String> keys, Map<String, String> vars) {
+- vardef.reset(ln);
++ Matcher vardef = pvardef.matcher(ln);
+ while (vardef.find()) {
+ String repl = "";
+ if (vardef.group(GN_VAR) != null)
+@@ -133,19 +137,20 @@
+ }
+
+ // return true if #end[key], #end or EOF reached
+- boolean spp(Scanner in, StringBuffer buf, String key,
++ boolean spp(BufferedReader in, StringBuffer buf, String key,
+ Set<String> keys, Map<String, String> vars,
+- boolean be, boolean skip) {
+- while (in.hasNextLine()) {
+- String ln = in.nextLine();
++ boolean be, boolean skip) throws IOException {
++ while (true) {
++ String ln = in.readLine();
++ if (ln == null)
++ break;
+ if (be) {
+ if (ln.startsWith("#begin")) {
+ buf.setLength(0); //clean up to this line
+ continue;
+ }
+ if (ln.equals("#end")) {
+- while (in.hasNextLine())
+- in.nextLine();
++ do { } while (in.readLine() != null);
+ return true; //discard the rest to EOF
+ }
+ }
More information about the distro-pkg-dev
mailing list