final class org.jvnet.mimepull.LineInputStream extends java.io.FilterInputStream
{
private char[] lineBuffer;
private static int MAX_INCR;
public void <init>(java.io.InputStream)
{
org.jvnet.mimepull.LineInputStream v;
java.io.InputStream v;
v := @this: org.jvnet.mimepull.LineInputStream;
v := @parameter: java.io.InputStream;
specialinvoke v.<java.io.FilterInputStream: void <init>(java.io.InputStream)>(v);
v.<org.jvnet.mimepull.LineInputStream: char[] lineBuffer> = null;
return;
}
public java.lang.String readLine() throws java.io.IOException
{
java.io.PushbackInputStream v;
boolean v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v;
org.jvnet.mimepull.LineInputStream v;
char[] v, v, v;
java.io.InputStream v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.jvnet.mimepull.LineInputStream;
v = v.<org.jvnet.mimepull.LineInputStream: char[] lineBuffer>;
if v != null goto label;
v = newarray (char)[128];
v.<org.jvnet.mimepull.LineInputStream: char[] lineBuffer> = v;
v = v;
label:
v = lengthof v;
v = 0;
label:
v = v.<org.jvnet.mimepull.LineInputStream: java.io.InputStream in>;
v = virtualinvoke v.<java.io.InputStream: int read()>();
v = (int) -1;
if v == v goto label;
if v == 10 goto label;
if v != 13 goto label;
v = 0;
v = v.<org.jvnet.mimepull.LineInputStream: java.io.InputStream in>;
v = virtualinvoke v.<java.io.InputStream: boolean markSupported()>();
if v == 0 goto label;
v = v.<org.jvnet.mimepull.LineInputStream: java.io.InputStream in>;
virtualinvoke v.<java.io.InputStream: void mark(int)>(2);
label:
v = v.<org.jvnet.mimepull.LineInputStream: java.io.InputStream in>;
v = virtualinvoke v.<java.io.InputStream: int read()>();
if v != 13 goto label;
v = 1;
v = v.<org.jvnet.mimepull.LineInputStream: java.io.InputStream in>;
v = virtualinvoke v.<java.io.InputStream: int read()>();
label:
if v == 10 goto label;
v = v.<org.jvnet.mimepull.LineInputStream: java.io.InputStream in>;
v = virtualinvoke v.<java.io.InputStream: boolean markSupported()>();
if v == 0 goto label;
v = v.<org.jvnet.mimepull.LineInputStream: java.io.InputStream in>;
virtualinvoke v.<java.io.InputStream: void reset()>();
goto label;
label:
v = v.<org.jvnet.mimepull.LineInputStream: java.io.InputStream in>;
v = v instanceof java.io.PushbackInputStream;
if v != 0 goto label;
v = new java.io.PushbackInputStream;
v = v.<org.jvnet.mimepull.LineInputStream: java.io.InputStream in>;
specialinvoke v.<java.io.PushbackInputStream: void <init>(java.io.InputStream,int)>(v, 2);
v.<org.jvnet.mimepull.LineInputStream: java.io.InputStream in> = v;
label:
v = (int) -1;
if v == v goto label;
v = v.<org.jvnet.mimepull.LineInputStream: java.io.InputStream in>;
virtualinvoke v.<java.io.PushbackInputStream: void unread(int)>(v);
label:
if v == 0 goto label;
v = v.<org.jvnet.mimepull.LineInputStream: java.io.InputStream in>;
virtualinvoke v.<java.io.PushbackInputStream: void unread(int)>(13);
goto label;
label:
v = v - 1;
if v >= 0 goto label;
v = lengthof v;
v = <org.jvnet.mimepull.LineInputStream: int MAX_INCR>;
if v >= v goto label;
v = lengthof v;
v = v * 2;
v = newarray (char)[v];
goto label;
label:
v = lengthof v;
v = <org.jvnet.mimepull.LineInputStream: int MAX_INCR>;
v = v + v;
v = newarray (char)[v];
label:
v = lengthof v;
v = v - v;
v = v - 1;
v = v.<org.jvnet.mimepull.LineInputStream: char[] lineBuffer>;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v.<org.jvnet.mimepull.LineInputStream: char[] lineBuffer> = v;
label:
v = v;
v = v + 1;
v[v] = v;
goto label;
label:
v = (int) -1;
if v != v goto label;
if v != 0 goto label;
return null;
label:
v = staticinvoke <java.lang.String: java.lang.String copyValueOf(char[],int,int)>(v, 0, v);
return v;
}
static void <clinit>()
{
<org.jvnet.mimepull.LineInputStream: int MAX_INCR> = 1048576;
return;
}
}