diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2017-09-12 21:41:25 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2017-09-12 21:41:25 +0300 |
commit | 1a22bc25e66bf8cf7dd76aaa19b59cafdc746dc0 (patch) | |
tree | 0ebb1c4bb06e75ddb509f50bf56615b02e537383 /extension | |
parent | db25851089258ec7e251765c9917be49e66b7cbd (diff) | |
download | egawk-1a22bc25e66bf8cf7dd76aaa19b59cafdc746dc0.tar.gz egawk-1a22bc25e66bf8cf7dd76aaa19b59cafdc746dc0.tar.bz2 egawk-1a22bc25e66bf8cf7dd76aaa19b59cafdc746dc0.zip |
Allow rwarray extension to write/read undefined values.
Diffstat (limited to 'extension')
-rw-r--r-- | extension/ChangeLog | 4 | ||||
-rw-r--r-- | extension/rwarray.c | 8 |
2 files changed, 11 insertions, 1 deletions
diff --git a/extension/ChangeLog b/extension/ChangeLog index 613479e1..84c9a9df 100644 --- a/extension/ChangeLog +++ b/extension/ChangeLog @@ -1,3 +1,7 @@ +2017-09-12 Arnold D. Robbins <arnold@skeeve.com> + + * rwarray.c: Add support for writing/reading undefined values. + 2017-08-30 Arnold D. Robbins <arnold@skeeve.com> * fnmatch.c: Use the right autoconf goop to get the major diff --git a/extension/rwarray.c b/extension/rwarray.c index 53c908df..0b6d0360 100644 --- a/extension/rwarray.c +++ b/extension/rwarray.c @@ -85,7 +85,7 @@ static awk_bool_t read_value(FILE *fp, awk_value_t *value); * For each element: * Length of index val: 4 bytes - network order * Index val as characters (N bytes) - * Value type 4 bytes (0 = string, 1 = number, 2 = array, 3 = regex, 4 = strnum) + * Value type 4 bytes (0 = string, 1 = number, 2 = array, 3 = regex, 4 = strnum, 5 = undefined) * IF string: * Length of value 4 bytes * Value as characters (N bytes) @@ -243,6 +243,9 @@ write_value(FILE *fp, awk_value_t *val) case AWK_REGEX: code = htonl(3); break; + case AWK_UNDEFINED: + code = htonl(5); + break; default: /* XXX can this happen? */ code = htonl(0); @@ -475,6 +478,9 @@ read_value(FILE *fp, awk_value_t *value) case 4: value->val_type = AWK_STRNUM; break; + case 5: + value->val_type = AWK_UNDEFINED; + break; default: /* this cannot happen! */ warning(ext_id, _("treating recovered value with unknown type code %d as a string"), code); |