diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-06-12 07:28:34 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-06-12 07:28:34 -0700 |
commit | a8b0d63648fcaa91df58a8fcc7c7072fba9a7407 (patch) | |
tree | ef9cf07085ee7ade9fceb15be21262964f8c0a77 /txr.1 | |
parent | d743537013689e80cb1ede22dbb4e241d601b6ea (diff) | |
download | txr-a8b0d63648fcaa91df58a8fcc7c7072fba9a7407.tar.gz txr-a8b0d63648fcaa91df58a8fcc7c7072fba9a7407.tar.bz2 txr-a8b0d63648fcaa91df58a8fcc7c7072fba9a7407.zip |
ffi: adjust in semantics of variable zarray.
The replace function now returns a list if a nil object's is
replaced with a range, rather than just returning the original
item sequence. This breaks the variable array in operation,
causing it to produce a list. We fix this sproblem, and also
the nonsense semantics of the operation also; the operation
should replace the original sequence, with the array,
similarly to how null terminated strings work.
* ffi.c (ffi_varray_null_term_in): If the original Lisp object
isn't nil, then assume it's a sequence and replace it with the
items gathered in the vector. Otherwise, replace it with the
vector.
* txr.1: Adjust documentation.
Diffstat (limited to 'txr.1')
-rw-r--r-- | txr.1 | 8 |
1 files changed, 2 insertions, 6 deletions
@@ -61592,12 +61592,8 @@ The variable-length .code zarray also has a special in operation. Like the get operation, the in operation extracts all elements until a terminating null, decoding them to a vector. -Then, a range of the original vector object is replaced with the decoded vector. -If the decoded vector is as long, or longer, than the original, all of the -elements of the original are replaced and its length is extended as necessary -to contain all of the new elements. If the decoded vector is shorter than the -decoded one, then it replaces a range of the original one corresponding to -its length. +Then, the entire original vector is replaced with the new vector, +even if the original vector is longer. .coNP FFI type @ ptr .synb |