aboutsummaryrefslogtreecommitdiffstats
path: root/field.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2019-11-03 22:01:04 +0200
committerArnold D. Robbins <arnold@skeeve.com>2019-11-03 22:01:04 +0200
commita4f9e9d4adbbf55a4225484ef3d04e8cf5e3046c (patch)
tree9aea74035cf66150aabf5bb41feb349e7a580954 /field.c
parente6b8d8dcc8bf46028c2e26586afb1cd6ea184a59 (diff)
downloadegawk-a4f9e9d4adbbf55a4225484ef3d04e8cf5e3046c.tar.gz
egawk-a4f9e9d4adbbf55a4225484ef3d04e8cf5e3046c.tar.bz2
egawk-a4f9e9d4adbbf55a4225484ef3d04e8cf5e3046c.zip
Fix a bug with FPAT field parsing.
Diffstat (limited to 'field.c')
-rw-r--r--field.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/field.c b/field.c
index 8814233a..8c7fe18e 100644
--- a/field.c
+++ b/field.c
@@ -916,17 +916,6 @@ get_field(long requested, Func_ptr *assign)
*/
if (parse_extent == fields_arr[0]->stptr + fields_arr[0]->stlen)
NF = parse_high_water;
- else if (parse_field == fpat_parse_field) {
- /* FPAT parsing is weird, isolate the special cases */
- char *rec_start = fields_arr[0]->stptr;
- char *rec_end = fields_arr[0]->stptr + fields_arr[0]->stlen;
-
- if ( parse_extent > rec_end
- || (parse_extent > rec_start && parse_extent < rec_end && requested == UNLIMITED-1))
- NF = parse_high_water;
- else if (parse_extent == rec_start) /* could be no match for FPAT */
- NF = 0;
- }
if (requested == UNLIMITED - 1) /* UNLIMITED-1 means set NF */
requested = parse_high_water;
}
@@ -1566,7 +1555,7 @@ incr_scan(char **scanp, size_t len, mbstate_t *mbs)
* field_found = match(substr(string, parse_start), pattern)
*
* # check for an invalid null field and retry one character away
- * if (nf > 0 && field_found && RSTART==1 && RLENGTH==0) {
+ * if (nf > 0 && field_found && RSTART == 1 && RLENGTH == 0) {
* parse_start++
* field_found = match(substr(string, parse_start), pattern)
* }