vString reads(long n) {
public vString reads(long n) {
vString reads(long n) {    vByteBuffer b = new vByteBuffer((int) n);    if (instream == null) {	iRuntime.error(212, this);		// not open for reading    }    try {	while (b.length() < n) {	    char c = this.rchar();	    if (lastCharRead != '\r' || c != '\n') {	// if not LF after CR		if (c == '\r') {			// if new CR		    b.append('\n');		} else {			// other including LF		    b.append(c);		}	    }	    lastCharRead = c;	}    } catch (EOFException e) {	if (b.length() == 0)	    return null; /*FAIL*/    } catch (IOException e) {	iRuntime.error(214, this);		// I/O error	return null;    }    return b.mkString();}