manpagez: man pages & more
info gawk
Home | html | info | man

File: gawk.info,  Node: Changes from API V1,  Prev: Extension API Boilerplate,  Up: Extension API Description

17.4.16 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 (*note Extension Functions::).

   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 (*note General Data
     Types::).

   * There are new string types: 'AWK_REGEX' and 'AWK_STRNUM' (*note
     General Data Types::).

   * The 'ezalloc()' macro is new (*note Memory Allocation Functions::).

   * The 'awk_ext_func_t' structure changed.  Instead of
     'num_expected_args', it now has 'max_expected' and 'min_required'
     (*note Extension Functions::).

   * For 'get_record()', an input parser can now specify field widths
     (*note Input Parsers::).

   * Extensions can now produce nonfatal error messages (*note Printing
     Messages::).

   * When flattening an array, you can now specify the index and value
     types (*note Array Functions::).

   * The 'get_file()' API is new (*note Redirection API::).

© manpagez.com 2000-2025
Individual documents may contain additional copyright information.