Changes from API V1 (The GNU Awk User’s Guide)
From Get docs
Gawk/docs/latest/Changes-from-API-V1
Previous: Extension API Boilerplate, Up: Extension API Description [Contents][Index]
17.4.15 Changes From Version 1 of the API
The current API is not binary compatible with version 1 of the API. You will have to recompile your extensions in order to use them with the current version of gawk
.
Fortunately, at the possible expense of some compile-time warnings, the API remains source-code–compatible with the previous API. The major differences are the additional members in the awk_ext_func_t
structure, and the addition of the third argument to the C implementation function (see section Registering An Extension Function).
Here is a list of individual features that changed from version 1 to version 2 of the API:
- Numeric values can now have MPFR/MPZ variants (see section General-Purpose Data Types).
- There are new string types:
AWK_REGEX
andAWK_STRNUM
(see section General-Purpose Data Types). - The
ezalloc()
macro is new (see section Memory Allocation Functions and Convenience Macros). - The
awk_ext_func_t
structure changed. Instead ofnum_expected_args
, it now hasmax_expected
andmin_required
(see section Registering An Extension Function). - For
get_record()
, an input parser can now specify field widths (see section Customized Input Parsers). - Extensions can now produce nonfatal error messages (see section Printing Messages).
- When flattening an array, you can now specify the index and value types (see section Array Functions).
- The
get_file()
API is new (see section Accessing and Manipulating Redirections).