code: purgatorio

ref: 6b84c3a6548f1c577948763b0a09a7b6e2460e04
dir: /appl/lib/convcs/gencp.b/

View raw version
NCHARS : con 256;
ERRCHAR : con 16rFFFD;

sys : Sys;

GenCP : module {
	init : fn (ctxt : ref Draw->Context, args : list of string);
};

init(nil : ref Draw->Context, nil : list of string)
{
	sys = load Sys Sys->PATH;
	path := sys->sprint("/lib/convcs/%s.cp", CHARSET);
	fd := sys->create(path, Sys->OWRITE, 8r644);
	if (fd == nil) {
		sys->print("cannot create %s: %r\n", path);
		return;
	}
	s := "";
	for (i := 0; i < NCHARS; i++) {
		if (cstab[i] == -1)
			cstab[i] = ERRCHAR;
		s[i] = cstab[i];
	}
	buf := array of byte s;
	sys->write(fd, buf, len buf);
}