summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-reader/ztxt.cpp
Side-by-side diff
Diffstat (limited to 'noncore/apps/opie-reader/ztxt.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-reader/ztxt.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/noncore/apps/opie-reader/ztxt.cpp b/noncore/apps/opie-reader/ztxt.cpp
index 8091d32..79c5fa4 100644
--- a/noncore/apps/opie-reader/ztxt.cpp
+++ b/noncore/apps/opie-reader/ztxt.cpp
@@ -1,24 +1,25 @@
#include <stdio.h>
#include <string.h>
#include "ztxt.h"
#include "my_list.h"
#include "Bkmks.h"
+#include "static.h"
ztxt::ztxt() : bInit(false), expandedtextbuffer(NULL), compressedtextbuffer(NULL) { /*printf("constructing:%x\n",fin);*/ }
int ztxt::OpenFile(const char *src)
{
- if (!Cpdb::openfile(src))
+ if (!Cpdb::openpdbfile(src))
{
return -1;
}
//printf("Okay %u\n", 4);
if (head.type != ZTXT_ID) return -1;
gotorecordnumber(0);
fread(&hdr0, 1, sizeof(hdr0), fin);
//printf("Okay %u\n", 5);
buffersize = ntohl(hdr0.size);
@@ -145,17 +146,29 @@ CList<Bkmk>* ztxt::getbkmklist()
// printf("Bookmarks - record %d contains %d\n", recno, ntohs(hdr0.numBookmarks));
if (recno == 0) return NULL;
CList<Bkmk>* t = new CList<Bkmk>;
size_t cur = ftell(fin);
gotorecordnumber(recno);
for (int i = 0; i < ntohs(hdr0.numBookmarks); i++)
{
zTXTbkmk bkmk;
if (fread(&bkmk, sizeof(bkmk), 1, fin) != 1) break;
// printf("Bookmark number:%d:%.20s\n", i, bkmk.title);
- t->push_back(Bkmk(bkmk.title, NULL, ntohl(bkmk.offset)));
+ tchar title[MAX_BMRK_LENGTH];
+ for (int j = 0; j < MAX_BMRK_LENGTH; j++)
+ {
+ title[j] = bkmk.title[j];
+ }
+ t->push_back(Bkmk(title, NULL, ntohl(bkmk.offset)));
}
fseek(fin, cur, SEEK_SET);
return t;
}
+
+#ifndef __STATIC
+extern "C"
+{
+ CExpander* newcodec() { return new ztxt; }
+}
+#endif