File: lzio.cpp

package info (click to toggle)
residualvm 0.3.1%2Bdfsg-2
  • links: PTS, VCS
  • area: contrib
  • in suites: bullseye
  • size: 31,292 kB
  • sloc: cpp: 227,029; sh: 7,256; xml: 1,731; perl: 1,067; java: 861; asm: 738; python: 691; ansic: 272; makefile: 139; objc: 81; sed: 22; php: 1
file content (42 lines) | stat: -rw-r--r-- 613 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*
** a generic input stream interface
** See Copyright Notice in lua.h
*/


#include "engines/grim/lua/lzio.h"

#include "common/file.h"

namespace Grim {

int32 zgeteoz(ZIO *) {
	return EOZ;
}

ZIO *zopen(ZIO *z, const char *b, int32 size, const char *name) {
	if (!b)
		return nullptr;
	z->n = size;
	z->p = (const byte *)b;
	z->name = name;
	return z;
}

int32 zread (ZIO *z, void *b, int32 n) {
	while (n) {
		int32 m;
		if (z->n == 0) {
			return n;
		}
		m = (n <= z->n) ? n : z->n;
		memcpy(b, z->p, m);
		z->n -= m;
		z->p += m;
		b = (char *)b + m;
		n -= m;
	}
	return 0;
}

} // end of namespace Grim