summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-reader/Bkmks.h
Side-by-side diff
Diffstat (limited to 'noncore/apps/opie-reader/Bkmks.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-reader/Bkmks.h37
1 files changed, 27 insertions, 10 deletions
diff --git a/noncore/apps/opie-reader/Bkmks.h b/noncore/apps/opie-reader/Bkmks.h
index b38184a..ee528e4 100644
--- a/noncore/apps/opie-reader/Bkmks.h
+++ b/noncore/apps/opie-reader/Bkmks.h
@@ -3,4 +3,5 @@
#include "config.h"
+#include "Filedata.h"
#include <stdio.h>
@@ -11,9 +12,14 @@ class Bkmk
{
friend class BkmkFile;
- tchar* m_name;
- tchar* m_anno;
+ unsigned char* m_name;
+ unsigned short m_namelen;
+ unsigned char* m_anno;
+ unsigned short m_annolen;
unsigned int m_position;
+ void init(const void*, unsigned short, const void*, unsigned short, unsigned int);
public:
- Bkmk() : m_name(NULL), m_anno(NULL), m_position(0) {};
+ Bkmk() : m_name(NULL), m_namelen(0), m_anno(NULL), m_annolen(0), m_position(0) {};
+ Bkmk(const unsigned char* _nm, unsigned short _nmlen, const unsigned char* _anno, unsigned short _annolen, unsigned int _p);
+ Bkmk(const tchar* _nm, const unsigned char* _anno, unsigned short _annolen, unsigned int _p);
Bkmk(const tchar* _nm, const tchar* _anno, unsigned int _p);
Bkmk(const Bkmk& rhs) : m_name(NULL), m_anno(NULL)
@@ -23,10 +29,22 @@ class Bkmk
~Bkmk();
unsigned int value() const { return m_position; }
- tchar *name() const { return m_name; }
- tchar *anno() const { return m_anno; }
+ void value(unsigned int _v) { m_position = _v; }
+ tchar *name() const { return (tchar*)m_name; }
+ tchar *anno() const { return (tchar*)m_anno; }
bool operator<(const Bkmk& rhs) { return (m_position < rhs.m_position); }
Bkmk& operator=(const Bkmk& rhs);
bool operator==(const Bkmk& rhs);
void setAnno(tchar* t);
+ void setAnno(unsigned char* t, unsigned short len);
+ unsigned char* filedata()
+ {
+ CFiledata fd(anno());
+ return m_anno+fd.length();
+ }
+ unsigned short filedatalen()
+ {
+ CFiledata fd(anno());
+ return m_annolen - fd.length();
+ }
};
@@ -38,9 +56,8 @@ class BkmkFile
static const unsigned long magic;
private:
- Bkmk* read();
- Bkmk* read03();
- CList<Bkmk>* readall03();
- CList<Bkmk>* readall04();
- void write(tchar* nm, tchar* an, const unsigned int& pos);
+ static Bkmk* read06(FILE*);
+ static Bkmk* read05(FILE*);
+ static Bkmk* read03(FILE*);
+ CList<Bkmk>* readall00(Bkmk*(*fn)(FILE*));
void write(const Bkmk& b);
public: