Commit cb1902ad by Warren Levy

[multiple changes]

1999-07-01  Warren Levy  <warrenl@cygnus.com>
	* gnu/gcj/convert/BytesToUnicode.java (read): Changed outlength
	to count and revised comments to match.
	* gnu/gcj/convert/Input_EUCJIS.java (read): Same as Input_8859_1.java.
	* gnu/gcj/convert/Input_JavaSrc.java (read): ditto.
	* gnu/gcj/convert/Input_SJIS.java (read): ditto.
	* gnu/gcj/convert/Input_UTF8.java (read): ditto.
	* gnu/gcj/convert/natInput_EUCJIS.cc (read): ditto.
	* gnu/gcj/convert/natInput_SJIS.cc (read): ditto.
1999-07-01  John-Marc Chandonia  <jmc@cmpharm.ucsf.edu>
	* gnu/gcj/convert/Input_8859_1.java (read): Use 3rd parameter
	properly as count rather than outlength.
	* java/io/BufferedOutputStream.java (write(byte[],int,int): Flush
	output on overflow rather than buffer fill.
	* java/io/BufferedReader.java (fill): Don't clear out the buffer
	if markPos is 0 and there is still room in the buffer.

From-SVN: r27892
parent b537d120
1999-07-01 Warren Levy <warrenl@cygnus.com>
* gnu/gcj/convert/BytesToUnicode.java (read): Changed outlength
to count and revised comments to match.
* gnu/gcj/convert/Input_EUCJIS.java (read): Same as Input_8859_1.java.
* gnu/gcj/convert/Input_JavaSrc.java (read): ditto.
* gnu/gcj/convert/Input_SJIS.java (read): ditto.
* gnu/gcj/convert/Input_UTF8.java (read): ditto.
* gnu/gcj/convert/natInput_EUCJIS.cc (read): ditto.
* gnu/gcj/convert/natInput_SJIS.cc (read): ditto.
1999-07-01 John-Marc Chandonia <jmc@cmpharm.ucsf.edu>
* gnu/gcj/convert/Input_8859_1.java (read): Use 3rd parameter
properly as count rather than outlength.
* java/io/BufferedOutputStream.java (write(byte[],int,int): Flush
output on overflow rather than buffer fill.
* java/io/BufferedReader.java (fill): Don't clear out the buffer
if markPos is 0 and there is still room in the buffer.
1999-07-01 Andrew Haley <aph@cygnus.com>
* include/i386-signal.h: Replace sigaction () with __sigaction ().
......
......@@ -91,15 +91,17 @@ public abstract class BytesToUnicode
* bytes start at inbuffer[inpos], and end at inbuffer[inlength-1].
* @param outbuffer buffer for the converted character
* @param outpos position in buffer to start putting converted characters
* @param outlength the maximum number of characters to convert
* @param count the maximum number of characters to convert
* @return number of chars placed in outbuffer.
* Also, this.inpos is incremented by the number of bytes consumed.
*
* (Note the asymmetry in that the input upper bound is inbuffer[inlength-1],
* while the output upper bound is outbuffer[outpos+outlength-1]. The
* while the output upper bound is outbuffer[outpos+count-1]. The
* justification is that inlength is like the count field of a
* BufferedInputStream, while the outlength parameter is like the
* length parameter of a read request.)
* BufferedInputStream, while the count parameter is like the
* length parameter of a read request.) The count parameter is
* also defined to be <= outbuffer.length - outpos (per the specification
* of the length parameter for a read request).
*/
public abstract int read (char[] outbuffer, int outpos, int outlength);
public abstract int read (char[] outbuffer, int outpos, int count);
}
......@@ -11,21 +11,21 @@ package gnu.gcj.convert;
/**
* Convert ISO-Latin-1 (8851-1) text to Unicode.
* @author Per Bothner <bothner@cygnus.com>
* @date Match 1999.
* @date March 1999.
*/
public class Input_8859_1 extends BytesToUnicode
{
public String getName() { return "8859_1"; }
public int read (char[] outbuffer, int outpos, int outlength)
public int read (char[] outbuffer, int outpos, int count)
{
int origpos = outpos;
// Make sure fields of this are in registers.
int inpos = this.inpos;
byte[] inbuffer = this.inbuffer;
int inavail = this.inlength - inpos;
int outavail = outlength - outpos;
int outavail = count;
if (outavail > inavail)
outavail = inavail;
while (--outavail >= 0)
......
......@@ -21,5 +21,5 @@ public class Input_EUCJIS extends BytesToUnicode
int codeset = 0;
int first_byte;
public native int read (char[] outbuffer, int outpos, int outlength);
public native int read (char[] outbuffer, int outpos, int count);
}
......@@ -27,14 +27,14 @@ public class Input_JavaSrc extends BytesToUnicode
int value;
public int read (char[] outbuffer, int outpos, int outlength)
public int read (char[] outbuffer, int outpos, int count)
{
int origpos = outpos;
for (;;)
{
if (inpos >= inlength)
break;
if (outpos >= outlength)
if (outpos - origpos >= count)
break;
char b = (char) (inbuffer[inpos++] & 0xFF);
switch (state)
......
......@@ -18,7 +18,7 @@ public class Input_SJIS extends BytesToUnicode
{
public String getName() { return "SJIS"; }
public native int read (char[] outbuffer, int outpos, int outlength);
public native int read (char[] outbuffer, int outpos, int count);
int first_byte;
}
......@@ -11,7 +11,7 @@ package gnu.gcj.convert;
/**
* Convert UTF8 to Unicode.
* @author Per Bothner <bothner@cygnus.com>
* @date Match 1999.
* @date March 1999.
*/
public class Input_UTF8 extends BytesToUnicode
......@@ -22,12 +22,12 @@ public class Input_UTF8 extends BytesToUnicode
int partial_bytes_expected = 0;
//int suggogate_second = -1;
public int read (char[] outbuffer, int outpos, int outlength)
public int read (char[] outbuffer, int outpos, int count)
{
int origpos = outpos;
for (;;)
{
if (outpos >= outlength)
if (outpos - origpos >= count)
break;
if (inpos >= inlength)
break;
......
......@@ -17,12 +17,12 @@ extern unsigned short JIS0212_to_Unicode[76][94];
jint
gnu::gcj::convert::Input_EUCJIS::read(jcharArray outbuffer, jint outpos,
jint outlength)
jint count)
{
jint start_outpos = outpos;
for (;;)
{
if (outpos >= outlength)
if (outpos - start_outpos >= count)
break;
if (inpos >= inlength)
break;
......
......@@ -17,12 +17,12 @@ extern unsigned short JIS0212_to_Unicode[76][94];
jint
gnu::gcj::convert::Input_SJIS::read(jcharArray outbuffer, jint outpos,
jint outlength)
jint count)
{
jint start_outpos = outpos;
for (;;)
{
if (outpos >= outlength)
if (outpos - start_outpos >= count)
break;
if (inpos >= inlength)
break;
......
......@@ -42,6 +42,7 @@ public class BufferedOutputStream extends FilterOutputStream
public synchronized void write (int b) throws IOException
{
// Flush output on overflow though JDK (1.2) doc may infer to flush on fill.
if (count < buf.length)
buf[count++] = (byte) b;
else
......@@ -55,8 +56,10 @@ public class BufferedOutputStream extends FilterOutputStream
public synchronized void write (byte[] b, int off, int len)
throws IOException, NullPointerException, IndexOutOfBoundsException
{
// Flush output on overflow though JDK (1.2) doc may infer to flush on fill.
// If LEN < 0 then the downstream write will fail for us.
if (len >= 0 && count + len < buf.length)
if (len >= 0 && count + len <= buf.length)
{
System.arraycopy(b, off, buf, count, len);
count += len;
......
......@@ -197,7 +197,7 @@ public class BufferedReader extends Reader
}
}
/* Read more data into the buffer. Update pos and limit appropriatly.
/* Read more data into the buffer. Update pos and limit appropriately.
Assumes pos==limit initially. May invalidate the mark if read too much.
Return number of chars read (never 0), or -1 on eof. */
private int fill() throws IOException
......@@ -214,7 +214,7 @@ public class BufferedReader extends Reader
if (markPos >= 0 && limit == buffer.length)
markPos = -1;
if (markPos <= 0)
if (markPos < 0)
pos = limit = 0;
int count = in.read(buffer, limit, buffer.length - limit);
if (count > 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment