From 6a5f94be4e3d6f6763e137c4872bf9c96e183120 Mon Sep 17 00:00:00 2001 From: jfrijters Date: Fri, 15 Jun 2007 13:53:42 +0000 Subject: [PATCH] Integerated OpenJDK's java.io.Console class. --- openjdk/allsources.lst | 55 +++++++++++++++++++++++++++++++++++- openjdk/java/io/Console.java | 27 ------------------ runtime/openjdk.cs | 54 +++++++++++++++++------------------ 3 files changed, 80 insertions(+), 56 deletions(-) delete mode 100644 openjdk/java/io/Console.java diff --git a/openjdk/allsources.lst b/openjdk/allsources.lst index 9026da52..cf1e1b34 100644 --- a/openjdk/allsources.lst +++ b/openjdk/allsources.lst @@ -4845,7 +4845,6 @@ AssemblyInfo.java ikvm/internal/AnnotationAttributeBase.java ikvm/internal/LibraryVMInterface.java -java/io/Console.java java/lang/LangHelper.java java/lang/LibraryVMInterfaceImpl.java java/lang/ProcessImpl.java @@ -4862,7 +4861,9 @@ sun/net/www/protocol/jar/JarFileFactory.java sun/reflect/Reflection.java sun/reflect/ReflectionFactory.java ../../openjdk/j2se/src/share/classes/java/io/BufferedInputStream.java +../../openjdk/j2se/src/share/classes/java/io/Console.java ../../openjdk/j2se/src/share/classes/java/io/DataInputStream.java +../../openjdk/j2se/src/share/classes/java/io/IOError.java ../../openjdk/j2se/src/share/classes/java/io/IOException.java ../../openjdk/j2se/src/share/classes/java/lang/AbstractMethodError.java ../../openjdk/j2se/src/share/classes/java/lang/AbstractStringBuilder.java @@ -5022,6 +5023,7 @@ sun/reflect/ReflectionFactory.java ../../openjdk/j2se/src/share/classes/java/util/regex/MatchResult.java ../../openjdk/j2se/src/share/classes/java/util/regex/Pattern.java ../../openjdk/j2se/src/share/classes/java/util/regex/PatternSyntaxException.java +../../openjdk/j2se/src/share/classes/sun/misc/ASCIICaseInsensitiveComparator.java ../../openjdk/j2se/src/share/classes/sun/misc/ClassFileTransformer.java ../../openjdk/j2se/src/share/classes/sun/misc/Cleaner.java ../../openjdk/j2se/src/share/classes/sun/misc/CompoundEnumeration.java @@ -5072,8 +5074,58 @@ sun/reflect/ReflectionFactory.java ../../openjdk/j2se/src/share/classes/sun/net/www/protocol/jar/URLJarFileCallBack.java ../../openjdk/j2se/src/share/classes/sun/nio/ByteBuffered.java ../../openjdk/j2se/src/share/classes/sun/nio/ch/Interruptible.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/FastCharsetProvider.java ../../openjdk/j2se/src/share/classes/sun/nio/cs/HistoricallyNamedCharset.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/IBM437.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/IBM737.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/IBM775.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/IBM850.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/IBM852.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/IBM855.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/IBM857.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/IBM858.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/IBM862.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/IBM866.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/IBM874.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/ISO_8859_1.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/ISO_8859_13.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/ISO_8859_15.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/ISO_8859_2.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/ISO_8859_4.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/ISO_8859_5.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/ISO_8859_7.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/ISO_8859_9.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/KOI8_R.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/KOI8_U.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/MS1250.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/MS1251.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/MS1252.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/MS1253.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/MS1254.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/MS1257.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/SingleByteDecoder.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/SingleByteEncoder.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/StandardCharsets.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/StreamDecoder.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/StreamEncoder.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/Surrogate.java ../../openjdk/j2se/src/share/classes/sun/nio/cs/ThreadLocalCoders.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/Unicode.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/UnicodeDecoder.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/UnicodeEncoder.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/US_ASCII.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/UTF_16.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/UTF_16BE.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/UTF_16LE.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/UTF_16LE_BOM.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/UTF_32.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/UTF_32BE.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/UTF_32BE_BOM.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/UTF_32Coder.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/UTF_32LE.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/UTF_32LE_BOM.java +../../openjdk/j2se/src/share/classes/sun/nio/cs/UTF_8.java ../../openjdk/j2se/src/share/classes/sun/reflect/ConstantPool.java ../../openjdk/j2se/src/share/classes/sun/reflect/ConstructorAccessor.java ../../openjdk/j2se/src/share/classes/sun/reflect/ConstructorAccessorImpl.java @@ -5173,5 +5225,6 @@ sun/reflect/ReflectionFactory.java ../../openjdk/j2se/src/share/classes/sun/text/normalizer/UTF16.java ../../openjdk/j2se/src/share/classes/sun/text/normalizer/Utility.java ../../openjdk/j2se/src/share/classes/sun/text/normalizer/VersionInfo.java +../../openjdk/j2se/src/share/classes/sun/util/PreHashedMap.java ../../openjdk/j2se/src/windows/classes/java/lang/ProcessEnvironment.java ../../openjdk/j2se/src/windows/classes/java/lang/Terminator.java diff --git a/openjdk/java/io/Console.java b/openjdk/java/io/Console.java deleted file mode 100644 index e8a31cdb..00000000 --- a/openjdk/java/io/Console.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - Copyright (C) 2007 Jeroen Frijters - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jeroen Frijters - jeroen@frijters.net - -*/ - -package java.io; - -public class Console {} diff --git a/runtime/openjdk.cs b/runtime/openjdk.cs index 700300ff..43ead025 100644 --- a/runtime/openjdk.cs +++ b/runtime/openjdk.cs @@ -93,6 +93,32 @@ using irUtil = ikvm.runtime.Util; namespace IKVM.NativeCode.java { + namespace io + { + public sealed class Console + { + public static string encoding() + { + // TODO + return "IBM437"; + } + + public static bool echo(bool on) + { + // TODO + return false; + } + + public static bool istty() + { + // the JDK returns false here if stdin or stdout is redirected (not stderr) + // or if there is no console associated with the current process + // TODO figure out if there is a managed way to detect redirection or console presence + return true; + } + } + } + namespace lang { namespace reflect @@ -1871,37 +1897,9 @@ namespace IKVM.NativeCode.java #endif } -#if !FIRST_PASS - sealed class JavaIOAccess : smJavaIOAccess - { - public jiConsole console() - { - return null; - } - - class ConsoleRestoreHook : jlRunnable - { - public void run() - { - } - } - - public jlRunnable consoleRestoreHook() - { - return new ConsoleRestoreHook(); - } - - public jnCharset charset() - { - return null; - } - } -#endif - public static void registerNatives() { #if !FIRST_PASS - smSharedSecrets.setJavaIOAccess(new JavaIOAccess()); Thread.currentThread(); #endif }