diff options
| author | Charles.Forsyth <devnull@localhost> | 2006-12-22 17:07:39 +0000 |
|---|---|---|
| committer | Charles.Forsyth <devnull@localhost> | 2006-12-22 17:07:39 +0000 |
| commit | 37da2899f40661e3e9631e497da8dc59b971cbd0 (patch) | |
| tree | cbc6d4680e347d906f5fa7fca73214418741df72 /appl/lib/convcs/gencp.b | |
| parent | 54bc8ff236ac10b3eaa928fd6bcfc0cdb2ba46ae (diff) | |
20060303a
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); +} + |
