aboutsummaryrefslogtreecommitdiffstats
path: root/extension
diff options
context:
space:
mode:
Diffstat (limited to 'extension')
-rw-r--r--extension/ChangeLog4
-rw-r--r--extension/rwarray.c8
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);