From: Per Bothner Date: Sat, 20 Mar 2004 00:24:49 +0000 (-0800) Subject: Input_UnicodeBig.java: New class.. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0fca95f56f5e884f028446f1f931f83f1f00012f;p=platform%2Fupstream%2Fgcc.git Input_UnicodeBig.java: New class.. * gnu/gcj/convert/Input_UnicodeBig.java: New class.. * gnu/gcj/convert/Input_UnicodeLittle.java: New class. * Makefile.am: Update accordingly. * gnu/gcj/convert/IOConverter.java: Define "utf-16le" and "utf16be" as aliases for UnicodeLittle and UnicodeBig. From-SVN: r79723 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 27fbd60..1b96246 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,11 @@ +2004-03-19 Per Bothner + + * gnu/gcj/convert/Input_UnicodeBig.java: New class.. + * gnu/gcj/convert/Input_UnicodeLittle.java: New class. + * Makefile.am: Update accordingly. + * gnu/gcj/convert/IOConverter.java: Define "utf-16le" and "utf16be" + as aliases for UnicodeLittle and UnicodeBig. + 2004-03-20 Mark Wielaard * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c diff --git a/libjava/Makefile.am b/libjava/Makefile.am index a5bef0a..254c9ca 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -882,6 +882,8 @@ gnu/gcj/convert/Input_ASCII.java \ gnu/gcj/convert/Input_EUCJIS.java \ gnu/gcj/convert/Input_JavaSrc.java \ gnu/gcj/convert/Input_SJIS.java \ +gnu/gcj/convert/Input_UnicodeBig.java \ +gnu/gcj/convert/Input_UnicodeLittle.java \ gnu/gcj/convert/Input_UTF8.java \ gnu/gcj/convert/Input_iconv.java \ gnu/gcj/convert/IOConverter.java \ diff --git a/libjava/Makefile.in b/libjava/Makefile.in index cf0fc0f..e664a10 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -1,6 +1,6 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am +# Makefile.in generated automatically by automake 1.4 from Makefile.am -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -565,6 +565,8 @@ gnu/gcj/convert/Input_ASCII.java \ gnu/gcj/convert/Input_EUCJIS.java \ gnu/gcj/convert/Input_JavaSrc.java \ gnu/gcj/convert/Input_SJIS.java \ +gnu/gcj/convert/Input_UnicodeBig.java \ +gnu/gcj/convert/Input_UnicodeLittle.java \ gnu/gcj/convert/Input_UTF8.java \ gnu/gcj/convert/Input_iconv.java \ gnu/gcj/convert/IOConverter.java \ @@ -3007,6 +3009,8 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ .deps/gnu/gcj/convert/Input_EUCJIS.P \ .deps/gnu/gcj/convert/Input_JavaSrc.P \ .deps/gnu/gcj/convert/Input_SJIS.P .deps/gnu/gcj/convert/Input_UTF8.P \ +.deps/gnu/gcj/convert/Input_UnicodeBig.P \ +.deps/gnu/gcj/convert/Input_UnicodeLittle.P \ .deps/gnu/gcj/convert/Input_iconv.P \ .deps/gnu/gcj/convert/JIS0208_to_Unicode.P \ .deps/gnu/gcj/convert/JIS0212_to_Unicode.P \ @@ -4977,7 +4981,7 @@ maintainer-clean-recursive: dot_seen=no; \ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ rev="$$subdir $$rev"; \ - test "$$subdir" != "." || dot_seen=yes; \ + test "$$subdir" = "." && dot_seen=yes; \ done; \ test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ @@ -5019,7 +5023,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) mostlyclean-tags: diff --git a/libjava/gnu/gcj/convert/IOConverter.java b/libjava/gnu/gcj/convert/IOConverter.java index 0f869c6..ba3260a 100644 --- a/libjava/gnu/gcj/convert/IOConverter.java +++ b/libjava/gnu/gcj/convert/IOConverter.java @@ -63,7 +63,9 @@ public abstract class IOConverter hash.put ("extended_unix_code_packed_format_for_japanese", "EUCJIS"); hash.put ("cseucpkdfmtjapanese", "EUCJIS"); hash.put ("euc-jp", "EUCJIS"); - + hash.put ("euc-jp", "EUCJIS"); + hash.put ("utf-16le", "UnicodeLittle"); + hash.put ("utf-16be", "UnicodeBig"); iconv_byte_swap = iconv_init (); } diff --git a/libjava/gnu/gcj/convert/Input_UnicodeBig.java b/libjava/gnu/gcj/convert/Input_UnicodeBig.java new file mode 100644 index 0000000..c8da2b9 --- /dev/null +++ b/libjava/gnu/gcj/convert/Input_UnicodeBig.java @@ -0,0 +1,49 @@ +/* Copyright (C) 2004 Free Software Foundation + + This file is part of libgcj. + +This software is copyrighted work licensed under the terms of the +Libgcj License. Please consult the file "LIBGCJ_LICENSE" for +details. */ + +package gnu.gcj.convert; + +public class Input_UnicodeBig extends BytesToUnicode +{ + /** 0, 8, or 16 bits of a partially constructed character. */ + char partial; + /** How many bytes of partial are valid. */ + int partial_count; + + public String getName() { return "UnicodeBig"; } + + public int read (char[] outbuffer, int outpos, int count) + { + int origcount = count; + for (;;) + { + if (partial_count == 2) + { + if (count == 0) + break; + if (partial == 0xFEFF) + ; // drop byte order mark + // else if (partial >= 0xFFFe) ERROR; + else + outbuffer[outpos++] = partial; + count--; + partial_count = 0; + partial = 0; + } + else if (inpos >= inlength) + break; + else + { + int b = inbuffer[inpos++] & 0xFF; + partial = (char) (((int) partial << 8) + b); + partial_count++; + } + } + return origcount - count; + } +} diff --git a/libjava/gnu/gcj/convert/Input_UnicodeLittle.java b/libjava/gnu/gcj/convert/Input_UnicodeLittle.java new file mode 100644 index 0000000..89d9c53 --- /dev/null +++ b/libjava/gnu/gcj/convert/Input_UnicodeLittle.java @@ -0,0 +1,49 @@ +/* Copyright (C) 2004 Free Software Foundation + + This file is part of libgcj. + +This software is copyrighted work licensed under the terms of the +Libgcj License. Please consult the file "LIBGCJ_LICENSE" for +details. */ + +package gnu.gcj.convert; + +public class Input_UnicodeLittle extends BytesToUnicode +{ + /** 0, 8, or 16 bits of a partially constructed character. */ + char partial; + /** How many bytes of partial are valid. */ + int partial_count; + + public String getName() { return "UnicodeLittle"; } + + public int read (char[] outbuffer, int outpos, int count) + { + int origcount = count; + for (;;) + { + if (partial_count == 2) + { + if (count == 0) + break; + if (partial == 0xFEFF) + ; // drop byte order mark + // else if (partial >= 0xFFFe) ERROR; + else + outbuffer[outpos++] = partial; + count--; + partial_count = 0; + partial = 0; + } + else if (inpos >= inlength) + break; + else + { + int b = inbuffer[inpos++] & 0xFF; + partial = (char) (partial | (b << (8 * partial_count))); + partial_count++; + } + } + return origcount - count; + } +}