summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-reader/ZText.h
Unidiff
Diffstat (limited to 'noncore/apps/opie-reader/ZText.h') (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-reader/ZText.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/noncore/apps/opie-reader/ZText.h b/noncore/apps/opie-reader/ZText.h
new file mode 100644
index 0000000..2848af7
--- a/dev/null
+++ b/noncore/apps/opie-reader/ZText.h
@@ -0,0 +1,35 @@
1#ifndef __Text_h
2#define __Text_h
3#include <stdio.h>
4#include <zlib.h>
5#include <sys/stat.h>
6
7#include "CExpander.h"
8
9class Text: public CExpander {
10 gzFile file;
11 unsigned long fsize;
12public:
13 Text() : file(NULL) {};
14 virtual ~Text()
15 {
16 if (file != NULL) gzclose(file);
17 }
18 virtual int openfile(const char *src)
19 {
20 if (file != NULL) gzclose(file);
21 struct stat _stat;
22 stat(src,&_stat);
23 fsize = _stat.st_size;
24 return ((file = gzopen(src,"rb")) == NULL);
25 }
26 virtual int getch() { return gzgetc(file); }
27 virtual unsigned int locate() { return gztell(file); }
28 virtual void locate(unsigned int n) { gzseek(file,n,SEEK_SET); }
29 virtual bool hasrandomaccess() { return true; }
30 virtual void sizes(unsigned long& _file, unsigned long& _text)
31 {
32 _text = _file = fsize;
33 }
34};
35#endif