summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorAndrew J. Schorr <aschorr@telemetry-investments.com>2017-03-21 13:22:18 -0400
committerAndrew J. Schorr <aschorr@telemetry-investments.com>2017-03-21 13:22:18 -0400
commitd1bebd3cbf60fa25883271512cf63e0c3275e3ef (patch)
tree517a5e996e033120e73afbb4c265528909271fbc /ChangeLog
parent489349d84fa92f69b2066240bc202a4f2777c465 (diff)
downloadgawk-d1bebd3cbf60fa25883271512cf63e0c3275e3ef.tar.gz
Enhance FIELDWIDTHS syntax to support a skip prefix, and unify logic with API field parsing.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog40
1 files changed, 40 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 176142c9..feea67af 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,43 @@
+2017-03-21 Andrew J. Schorr <aschorr@telemetry-investments.com>
+
+ * gawkapi.h (awk_fieldwidth_info_t): Define new structure to contain
+ API field parsing info, replacing the previous awk_input_field_info_t
+ array.
+ (awk_fieldwidth_info_size): Define macro to calculate size of the
+ variable-length awk_fieldwidth_info_t structure.
+ (awk_input_buf_t): Update get_record prototype to update the type
+ of the final field_width argument from 'const awk_input_field_info_t **'
+ to 'const awk_fieldwidth_info_t **'.
+ * awk.h (set_record): Change 3rd argument from
+ 'const awk_input_field_info_t *' to 'const awk_fieldwidth_info_t *'.
+ * io.c (inrec, do_getline_redir, do_getline): Change field_width type
+ from 'const awk_input_field_info_t *' to
+ 'const awk_fieldwidth_info_t *'.
+ (get_a_record): Change field_width argument type from
+ 'const awk_input_field_info_t **' to 'const awk_fieldwidth_info_t **'.
+ * field.c (api_parser_override): Define new boolean to track whether
+ API parsing is currently overriding default parsing behavior.
+ (api_fw): Change type from 'const awk_input_field_info_t *'
+ to 'const awk_fieldwidth_info_t *'.
+ (FIELDWIDTHS): Change type from 'int *' to 'awk_fieldwidth_info_t *'.
+ (set_record): Use new boolean api_parser_override to track whether
+ API parsing override is in effect, since we can no longer discern
+ this from the value of parse_field -- FIELDWIDTHS parsing uses the
+ same function.
+ (calc_mbslen): New function to calculate the length of a multi-byte
+ string.
+ (fw_parse_field): Enhance to support the awk_fieldwidth_info_t
+ structure instead of simply using an array of integer field widths.
+ (api_parse_field): Remove function no longer needed since fw_parse_field
+ now supports both FIELDWIDTHS and API parsing.
+ (set_parser): Use api_parser_override instead of comparing parse_field
+ to api_parse_field.
+ (set_FIELDWIDTHS): Enhance to use new awk_fieldwidth_info_t structure
+ and parse new skip prefix for each field.
+ (current_field_sep): Use api_parser_override flag instead of comparing
+ to api_parse_field.
+ (current_field_sep_str): Ditto.
+
2017-03-20 Arnold D. Robbins <arnold@skeeve.com>
Improve handling of EPIPE. Problems reported by