diff options
Diffstat (limited to 'appl/lib/convcs/gencp.b')
| -rw-r--r-- | appl/lib/convcs/gencp.b | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/appl/lib/convcs/gencp.b b/appl/lib/convcs/gencp.b new file mode 100644 index 00000000..cbc17af7 --- /dev/null +++ b/appl/lib/convcs/gencp.b @@ -0,0 +1,28 @@ +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); +} + |
