Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | (* Copyright (C) 1999-2006, 2008 Henry Cejtin, Matthew Fluet, Suresh |
2 | * Jagannathan, and Stephen Weeks. | |
3 | * Copyright (C) 1997-2000 NEC Research Institute. | |
4 | * | |
5 | * MLton is released under a BSD-style license. | |
6 | * See the file MLton-LICENSE for details. | |
7 | *) | |
8 | ||
9 | signature C_UTIL = | |
10 | sig | |
11 | structure C_Pointer : | |
12 | sig | |
13 | type t = C_Pointer.t | |
14 | ||
15 | val null: t | |
16 | val isNull: t -> bool | |
17 | end | |
18 | ||
19 | (* C char* *) | |
20 | structure C_String : | |
21 | sig | |
22 | type t = C_String.t | |
23 | ||
24 | (* string must be null terminated *) | |
25 | val length: t -> int | |
26 | val sub: t * int -> char | |
27 | val toCharArrayOfLength: t * int -> char array | |
28 | (* string must be null terminated *) | |
29 | val toString: t -> string | |
30 | (* extract first n characters of string *) | |
31 | val toStringOfLength: t * int -> string | |
32 | val update: t * int * char -> unit | |
33 | end | |
34 | ||
35 | (* NULL terminated char** *) | |
36 | structure C_StringArray : | |
37 | sig | |
38 | type t = C_StringArray.t | |
39 | ||
40 | val fromList: string list -> NullString.t array | |
41 | (* extract first n strings from array *) | |
42 | val toArrayOfLength: t * int -> string array | |
43 | val toList: t -> string list | |
44 | end | |
45 | end |