diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2025-05-15 20:14:18 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2025-05-15 20:14:18 -0700 |
commit | 02612f7d0181580f7558157283ea9a724f19fc64 (patch) | |
tree | abad0251827760740e51c127e72d5123beaefd13 /lib.c | |
parent | f5454af9ad307dfa2b6617cd6ecab907d309fcae (diff) | |
download | txr-02612f7d0181580f7558157283ea9a724f19fc64.tar.gz txr-02612f7d0181580f7558157283ea9a724f19fc64.tar.bz2 txr-02612f7d0181580f7558157283ea9a724f19fc64.zip |
New string compression/decompression functions.
* buf.c (str_compress, str_decompress): New functions.
(buf_init): str-compress, str-decompress intrinsics
registered.
* lib.[ch] (string_utf8_from_buf): New function.
* tests/012/buf.tl: New tests.
* txr.1: Documented.
Diffstat (limited to 'lib.c')
-rw-r--r-- | lib.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -5381,6 +5381,16 @@ val string_utf8(const char *str) return obj; } +val string_utf8_from_buf(const char *str, size_t len) +{ + val obj = make_obj(); + obj->st.type = STR; + obj->st.str = utf8_dup_from_buf(str, len); + obj->st.len = nil; + obj->st.alloc = 0; + return obj; +} + val string_8bit(const unsigned char *str) { size_t l = strlen(coerce(const char *, str)), i; |