diff --git a/reader.cc b/reader.cc
index 14b3b0c605ae4d52bfebff1c371f52d8139f2146..ffca53deacab5f2a2cfa280b6107ee0e5b23371a 100644 (file)
--- a/reader.cc
+++ b/reader.cc
char *bufPtr = (char *)&buf;
d_rider.read(bufPtr, 2);
if (isLittleEndian()) {
- return buf;
+ return buf - 0x8000;
} else {
CHAR out;
char *outPtr = (char *)&out;
outPtr[0] = bufPtr[1]; outPtr[1] = bufPtr[0];
- return out;
+ return out - 0x8000;
}
}
void Reader::readLChar(CHAR *buf, size_t len) {
+ for (int i = 0; i < len; ++i) {
+ buf[i] = readLChar();
+ }
+ /*
char *bufPtr = (char *)buf;
int len2 = len * 2;
d_rider.read(bufPtr, len2);
bufPtr[i + 1] = tmp;
}
}
+ */
}
BYTE Reader::readByte() {
d_store = x;
} else {
// join(d_store, x)
- // I have no idea what this would actually mean if it happened.
- throw "Joining of stores not implemented";
}
if (isElem) {
d_elemList.push_back(x);
d_store = alien;
} else {
// join(d_store, alien)
- // I have no idea what this would actually mean if it happened.
- throw "Joining of stores not implemented";
}
if (isElem) {
d_elemList.push_back(alien);