aboutsummaryrefslogtreecommitdiffstats
path: root/field.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2013-09-13 15:38:03 +0300
committerArnold D. Robbins <arnold@skeeve.com>2013-09-13 15:38:03 +0300
commit81fc175db21bc0e18b69db37bb3c27bb59f2ae82 (patch)
treea06fb78236546bd1eee85b7679ecbff1597a41a2 /field.c
parent4661f6cb95c365c434b753cdf6d4c1251f321230 (diff)
parent2fcffaeee37416708fab505209a55ddd32846463 (diff)
downloadegawk-81fc175db21bc0e18b69db37bb3c27bb59f2ae82.tar.gz
egawk-81fc175db21bc0e18b69db37bb3c27bb59f2ae82.tar.bz2
egawk-81fc175db21bc0e18b69db37bb3c27bb59f2ae82.zip
Merge branch 'gawk-4.1-stable'
Diffstat (limited to 'field.c')
-rw-r--r--field.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/field.c b/field.c
index 3cd66067..0a7cee8f 100644
--- a/field.c
+++ b/field.c
@@ -85,13 +85,19 @@ void
init_fields()
{
emalloc(fields_arr, NODE **, sizeof(NODE *), "init_fields");
- fields_arr[0] = dupnode(Nnull_string);
+
+ getnode(fields_arr[0]);
+ *fields_arr[0] = *Nnull_string;
+ fields_arr[0]->flags |= NULL_FIELD;
+
parse_extent = fields_arr[0]->stptr;
save_FS = dupnode(FS_node->var_value);
+
getnode(Null_field);
*Null_field = *Nnull_string;
Null_field->valref = 1;
- Null_field->flags = (FIELD|STRCUR|STRING);
+ Null_field->flags = (FIELD|STRCUR|STRING|NULL_FIELD);
+
field0_valid = true;
}
@@ -348,6 +354,7 @@ set_NF()
*n = *Null_field;
fields_arr[i] = n;
}
+ parse_high_water = NF;
} else if (parse_high_water > 0) {
for (i = NF + 1; i >= 0 && i <= parse_high_water; i++) {
unref(fields_arr[i]);