xref: /inferno-os/module/convcs.m (revision 46439007cf417cbd9ac8049bb4122c890097a0fa)
1*46439007SCharles.Forsyth#
2*46439007SCharles.Forsyth# Copyright © 2001 Vita Nuova Limited
3*46439007SCharles.Forsyth#
4*46439007SCharles.ForsythBtos: module {
5*46439007SCharles.Forsyth	init: fn(arg: string): string;
6*46439007SCharles.Forsyth	btos: fn(s: Convcs->State, b: array of byte, nchars: int) : (Convcs->State, string, int);
7*46439007SCharles.Forsyth};
8*46439007SCharles.Forsyth
9*46439007SCharles.ForsythStob: module {
10*46439007SCharles.Forsyth	init: fn(arg: string): string;
11*46439007SCharles.Forsyth	stob: fn(s: Convcs->State, str: string): (Convcs->State, array of byte);
12*46439007SCharles.Forsyth};
13*46439007SCharles.Forsyth
14*46439007SCharles.ForsythConvcs: module {
15*46439007SCharles.Forsyth	PATH: con "/dis/lib/convcs/convcs.dis";
16*46439007SCharles.Forsyth	CHARSETS: con "/lib/charsets";
17*46439007SCharles.Forsyth
18*46439007SCharles.Forsyth	BTOS, STOB: con 1 << iota;		# enumcs() mode values
19*46439007SCharles.Forsyth	BOTH: con BTOS | STOB;
20*46439007SCharles.Forsyth
21*46439007SCharles.Forsyth	State: type string;
22*46439007SCharles.Forsyth	Startstate: con "";
23*46439007SCharles.Forsyth
24*46439007SCharles.Forsyth	init: fn(csfile: string): string;
25*46439007SCharles.Forsyth	getbtos: fn(cs: string): (Btos, string);
26*46439007SCharles.Forsyth	getstob: fn(cs: string): (Stob, string);
27*46439007SCharles.Forsyth	enumcs: fn(): list of (string, string, int);		# (cs, description, mode)
28*46439007SCharles.Forsyth	aliases: fn(cs : string): (string, list of string);
29*46439007SCharles.Forsyth};
30