diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2017-05-04 21:19:13 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2017-05-04 21:19:13 -0700 |
commit | 7f841abd8218c68f8d69fe798b8d5e9d322b4de8 (patch) | |
tree | 0e334842c9c4e9f47b7c9f0174edd50e0c10c28b /lib.c | |
parent | 33c229bbbbf75ab8b3f048579eb2b7a63acaae7d (diff) | |
download | txr-7f841abd8218c68f8d69fe798b8d5e9d322b4de8.tar.gz txr-7f841abd8218c68f8d69fe798b8d5e9d322b4de8.tar.bz2 txr-7f841abd8218c68f8d69fe798b8d5e9d322b4de8.zip |
ffi: map (array n bchar) to Lisp string.
* ffi.c (struct txr_ffi_type): New bitfield flag, bchar_conv.
(ffi_array_in, ffi_array_get): Handle bchar_conv.
(ffi_type_compile): Set bchar_conv flag for array of bchar.
* lib.c (string_8bit_size): New function.
* lib.h (string_8bit_size): Declared.
Diffstat (limited to 'lib.c')
-rw-r--r-- | lib.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -3300,6 +3300,15 @@ val string_8bit(const unsigned char *str) return string_own(wstr); } +val string_8bit_size(const unsigned char *str, size_t sz) +{ + size_t i; + wchar_t *wstr = chk_wmalloc(sz); + for (i = 0; i < sz; i++) + wstr[i] = str[i]; + return string_own(wstr); +} + val mkstring(val len, val ch) { size_t l = c_num(len); |