diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-06-21 19:32:41 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-06-21 19:32:41 -0700 |
commit | f2afb365b4a068e2f0ec8cbe3acb252418bff925 (patch) | |
tree | 0d6ff12a9b73ebcb93e3231b946a870fdee1d4d0 /stream.c | |
parent | 1b95abb838e3309e814a874996e49c5003bade0d (diff) | |
download | txr-f2afb365b4a068e2f0ec8cbe3acb252418bff925.tar.gz txr-f2afb365b4a068e2f0ec8cbe3acb252418bff925.tar.bz2 txr-f2afb365b4a068e2f0ec8cbe3acb252418bff925.zip |
base64: integrate with buffers.
* filter.c (base64_encode): Handle an object of either string
or buffer type by using make_byte_input_stream.
(base64_decode_buf): New function.
(filter_init): Register base64-decode-buf intrinsic.
* filter.h (base64_decode_buf): Declared.
* stream.c (make_byte_input_stream): New function.
* stream.h (make_byte_input_stream): Declared.
* txr.1: Updated.
Diffstat (limited to 'stream.c')
-rw-r--r-- | stream.c | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -4588,6 +4588,23 @@ val path_cat(val dir_name, val base_name) return scat(lit("/"), dir_name, base_name, nao); } +val make_byte_input_stream(val obj) +{ + val self = lit("make-byte-input-stream"); + + switch (type(obj)) { + case LIT: + case STR: + case LSTR: + return make_string_byte_input_stream(obj); + case BUF: + return make_buf_stream(obj); + default: + uw_throwf(file_error_s, lit("~a: ~s is neither a string nor buffer"), + self, obj, nao); + } +} + void stream_init(void) { prot1(&ap_regex); |