~donmcc/astr

Install automake package on Debian Linux build.
Install exact autoconf & automake packages on OpenBSD.

Specify the exact version numbers for these packages.
Adding environment variables for OpenBSD build.

Define the `AUTOCONF_VERSION` and `AUTOMAKE_VERSION` environment variables.
Added build for `openbsd/latest`.
Remove `const` from `va_list` parameters.

For FreeBSD compatibility, remove the `const` qualifier from various
`va_list` parameters.
Add missing `const` to function signatures in docs.

Update the readme file and man page to incorporate the function
signature changes in the previous commit (5ed773f).
Make `va_list` parameters `const`.

The functions `astr_formatted_length_from_va_list()`,
`astr_realloc_append_formatted_from_va_list()` and
`astr_alloc_formatted_from_va_list()` are already defensively copying
their `va_list` parameters, so make these parameters `const` to
communicate this.
Made `astr_alloc_formatted_from_va_list()` inline.

Moved definition into the header and added `extern` declaration to the
`.c` file.
Reimplement `astr_alloc_formatted_from_va_list()`.

Drop the need to call `vasprintf()` and change the implementation of
`astr_alloc_formatted_from_va_list()` to call
`astr_realloc_append_formatted_from_va_list()` with a `NULL` string
pointer.

Update the readme and man page and remove the check for `vasprintf()`
from the configure script.
Added a better overview section.

Updated both the readme file and the man page.
Stop generating the `config.h` header.

Remove the line:

    AC_CONFIG_HEADERS([config.h])

from `configure.ac` to suppress the generation of the unused `config.h`
header and speed up configuration.
Remove unnecessary tests from the configure script.

Since C99 is required, drop these redundant Autoconf tests:

    AC_HEADER_STDBOOL
    AC_CHECK_HEADERS([stdlib.h string.h])
    AC_C_INLINE
    AC_TYPE_SIZE_T

These tests don't prevent configuration and building of the source; they
simply define symbols in `config.h`, which isn't used.
Remove configure check for `vsnprintf()`.

This is probably unnecessary since C99 is already required.
Add test for reallocating a `NULL` string.

Validate that `astr_realloc_append_formatted()` and
`astr_realloc_append_formatted_from_va_list()` correctly handles a
pointer to `NULL` as the string argument `s` by adding a unit test to
cover this case.

Fix `astr_realloc_append_formatted_from_va_list()` so that it only calls
`strlen()` on non-`NULL` string pointers.

Rename various unit tests to change `_for_NULL` to `_for_invalid` to
distinguish between valid `NULL` cases and invalid ones.
Added the `astr_cmp()` function for comparing strings.

The `astr_cmp()` function is an inline wrapper around `strcmp()` that
included `NULL` handling.

Reimplemented `astr_eq()` in terms of `astr_cmp()`.
Add configure checks for `vasprintf()` and `vsnprintf()`.

Modify the configure script to check for both these functions and to
halt configure with an error if either one is missing.
Added the `astr_empty()` inline function.

The `astr_empty()` function tests a given string to see if it is `NULL`
or points to an empty string.
Added functions to append formatted characters.

Added functions

    astr_realloc_append_formatted()
    astr_realloc_append_formatted_from_va_list()

along with tests, man page and readme documentation.
Change _args suffix to _with_va_list.

Rename `_args` functions to `_with_va_list`:

    astr_alloc_formatted_with_va_list()
    astr_formatted_length_with_va_list()

Also updated the man page to reflect these changes and name changes from
the previous commit.
Renamed functions with "_format" in their names.

Changed `astr_alloc_format()` to `astr_alloc_formatted()` and
`astr_len_format()` to `astr_formatted_length()`.  Renamed the variable
argument versions of these to functions similarly.

Though this makes the names a little longer, I think it also makes them
read better.
Next