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
This commit is contained in:
Per Bothner 2004-03-19 16:24:49 -08:00 committed by Per Bothner
parent 4546865e5b
commit 0fca95f56f
6 changed files with 119 additions and 5 deletions

View file

@ -1,3 +1,11 @@
2004-03-19 Per Bothner <per@bothner.com>
* 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 <mark@klomp.org>
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c

View file

@ -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 \

View file

@ -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:

View file

@ -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 ();
}

View file

@ -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;
}
}

View file

@ -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;
}
}