OILS / data_lang / j8_libc.h View on Github | oilshell.org

28 lines, 9 significant
1#ifndef DATA_LANG_J8_LIBC_H
2#define DATA_LANG_J8_LIBC_H
3
4typedef struct j8_buf_t {
5 unsigned char* data;
6 int len;
7} j8_buf_t;
8
9// Places an encoded string in out_buf.
10//
11// Caller must free the returned buffer after using it.
12// The buffer has a len, and data is NUL-terminated. These will match
13// because encoded J8 strings can't have NUL bytes in them.
14//
15// Example:
16// j8_buf_t result = {0};
17// EncodeString({"foo", 3}, &result, 1);
18//
19// printf("%s\n", result.data);
20// free(result.data);
21//
22// There are no encoding errors -- this is part of the J8 design!
23
24void J8EncodeString(j8_buf_t in_buf, j8_buf_t* out_buf, int j8_fallback);
25
26void ShellEncodeString(j8_buf_t in_buf, j8_buf_t* out_buf, int ysh_fallback);
27
28#endif // DATA_LANG_J8_LIBC_H