Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pdf/xpdf/Stream.cc
diff options
context:
space:
mode:
authorMichael Meeks <mmeeks@src.gnome.org>1999-08-19 17:57:59 (GMT)
committer Michael Meeks <mmeeks@src.gnome.org>1999-08-19 17:57:59 (GMT)
commitbf3b381529f5388bd1bda8ed8fafb247a7b8a9fc (patch)
tree23e95c805c1d878ba0bf90c68765aba383848139 /pdf/xpdf/Stream.cc
parent1a49446c08faaab930d3a36bc002b566eadb1ebc (diff)
Totaly re-hash stream architecture ... again :-)
Now we can compile but not run auxiliary utils.
Diffstat (limited to 'pdf/xpdf/Stream.cc')
-rw-r--r--pdf/xpdf/Stream.cc117
1 files changed, 78 insertions, 39 deletions
diff --git a/pdf/xpdf/Stream.cc b/pdf/xpdf/Stream.cc
index 6e52d79..c15d517 100644
--- a/pdf/xpdf/Stream.cc
+++ b/pdf/xpdf/Stream.cc
@@ -511,8 +511,76 @@ GBool StreamPredictor::getNextLine() {
// FileStream
//------------------------------------------------------------------------
-FileStream::FileStream(BaseFile f1, int start1, int length1, Object *dict1) {
+GBool FileStream::checkHeader() {
+ char hdrBuf[headerSearchSize+1];
+ char *p;
+ double version;
+ int i;
+
+ for (i = 0; i < headerSearchSize; ++i)
+ hdrBuf[i] = getChar();
+ hdrBuf[headerSearchSize] = '\0';
+ for (i = 0; i < headerSearchSize - 5; ++i) {
+ if (!strncmp(&hdrBuf[i], "%PDF-", 5))
+ break;
+ }
+ if (i >= headerSearchSize - 5) {
+ error(-1, "May not be a PDF file (continuing anyway)");
+ return gFalse;
+ }
+ start += i;
+ p = strtok(&hdrBuf[i+5], " \t\n\r");
+ version = atof(p);
+ if (!(hdrBuf[i+5] >= '0' && hdrBuf[i+5] <= '9') ||
+ version > pdfVersionNum + 0.0001) {
+ error(getPos(), "PDF version %s -- xpdf supports version %s"
+ " (continuing anyway)", p, pdfVersion);
+ return gFalse;
+ }
+ return gTrue;
+}
+
+FILE *fileOpen (GString *fileName1) {
+ GString *fileName2;
+ // try to open file
+ fileName2 = NULL;
+ FILE *file;
+
+#ifdef VMS
+ if (!(file = fopen(fileName->getCString(), "rb", "ctx=stm"))) {
+ error(-1, "Couldn't open file '%s'", fileName->getCString());
+ return NULL;
+ }
+#else
+ if (!(file = fopen(fileName1->getCString(), "rb"))) {
+ fileName2 = fileName1->copy();
+ fileName2->lowerCase();
+ if (!(file = fopen(fileName2->getCString(), "rb"))) {
+ fileName2->upperCase();
+ if (!(file = fopen(fileName2->getCString(), "rb"))) {
+ error(-1, "Couldn't open file '%s'", fileName1->getCString());
+ delete fileName2;
+ return NULL;
+ }
+ }
+ delete fileName2;
+ }
+#endif
+ return file;
+}
+
+FileStream::FileStream(FILE *f1) {
f = f1;
+ start = 0;
+ length = -1;
+ bufPtr = bufEnd = buf;
+ bufPos = start;
+ savePos = -1;
+ dict.initNull();
+ checkHeader();
+}
+
+Stream *FileStream::subStream (int start1, int length1, Object *dict1) {
start = start1;
length = length1;
bufPtr = bufEnd = buf;
@@ -523,13 +591,13 @@ FileStream::FileStream(BaseFile f1, int start1, int length1, Object *dict1) {
FileStream::~FileStream() {
if (savePos >= 0)
- bfseek(f, savePos, SEEK_SET);
+ fseek(f, savePos, SEEK_SET);
dict.free();
}
void FileStream::reset() {
- savePos = (int)bftell(f);
- bfseek(f, start, SEEK_SET);
+ savePos = (int)ftell(f);
+ fseek(f, start, SEEK_SET);
bufPtr = bufEnd = buf;
bufPos = start;
}
@@ -545,7 +613,7 @@ GBool FileStream::fillBuf() {
n = start + length - bufPos;
else
n = 256;
- n = bfread(buf, 1, n, f);
+ n = fread(buf, 1, n, f);
bufEnd = buf + n;
if (bufPtr >= bufEnd)
return gFalse;
@@ -556,48 +624,19 @@ void FileStream::setPos(int pos1) {
long size;
if (pos1 >= 0) {
- bfseek(f, pos1, SEEK_SET);
+ fseek(f, pos1, SEEK_SET);
bufPos = pos1;
} else {
- bfseek(f, 0, SEEK_END);
- size = bftell(f);
+ fseek(f, 0, SEEK_END);
+ size = ftell(f);
if (pos1 < -size)
pos1 = (int)(-size);
- bfseek(f, pos1, SEEK_END);
- bufPos = (int)bftell(f);
+ fseek(f, pos1, SEEK_END);
+ bufPos = (int)ftell(f);
}
bufPtr = bufEnd = buf;
}
-GBool FileStream::checkHeader() {
- char hdrBuf[headerSearchSize+1];
- char *p;
- double version;
- int i;
-
- for (i = 0; i < headerSearchSize; ++i)
- hdrBuf[i] = getChar();
- hdrBuf[headerSearchSize] = '\0';
- for (i = 0; i < headerSearchSize - 5; ++i) {
- if (!strncmp(&hdrBuf[i], "%PDF-", 5))
- break;
- }
- if (i >= headerSearchSize - 5) {
- error(-1, "May not be a PDF file (continuing anyway)");
- return gFalse;
- }
- start += i;
- p = strtok(&hdrBuf[i+5], " \t\n\r");
- version = atof(p);
- if (!(hdrBuf[i+5] >= '0' && hdrBuf[i+5] <= '9') ||
- version > pdfVersionNum + 0.0001) {
- error(getPos(), "PDF version %s -- xpdf supports version %s"
- " (continuing anyway)", p, pdfVersion);
- return gFalse;
- }
- return gTrue;
-}
-
//------------------------------------------------------------------------
// SubStream
//------------------------------------------------------------------------