gcc/libjava/gnu/gcj/convert/Output_SJIS.java
Mark Wielaard 60e9f0d726 re PR libgcj/8738 (java.io.CharArrayWriter's write methods erroneously throw IOExceptions)
2002-06-06  James Clark  <jjc@jclark.com>

       Fix for PR libgcj/8738:
       * gnu/gcj/convert/UnicodeToBytes.java (havePendingBytes): New method.
       * gnu/gcj/convert/Output_SJIS.java (havePendingBytes): Likewise.
       * gnu/gcj/convert/Output_EUCJIS.java (havePendingBytes): Likewise.
       * gnu/gcj/convert/Output_UTF8.java (havePendingBytes): Likewise.
       (write): Always decrease avail when count is increased.
       * java/lang/natString.cc (getBytes): Check converter havePendingBytes()
       and whether output buffer is full before increasing size.

2002-06-06  Mark Wielaard  <mark@klomp dot org>

       * java/io/PrintStream.java (writeChars(char[],int, int)):
       Check converter.havePendingBytes().
       (writeChars(String,int,int)): Likewise.
       * java/io/OutputStreamWriter.java (writeChars(char[], int, int)):
       Check converter.havePendingBytes() and flush buffer when stalled.

From-SVN: r67595
2003-06-07 18:35:00 +00:00

32 lines
737 B
Java

/* Copyright (C) 1999, 2003 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;
/**
* Convert Unicode to SJIS (Shift JIS, used on Japanese MS-Windows).
* @author Per Bothner <bothner@cygnus.com>
* @date April 1999.
*/
public class Output_SJIS extends UnicodeToBytes
{
public String getName() { return "SJIS"; }
public native int write (char[] inbuffer, int inpos, int inlength);
public native int write (String str, int inpos, int inlength, char[] work);
public boolean havePendingBytes()
{
return pending >= 0;
}
int pending = -1;
}