2023-04-24  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, cli_options.c, bad_cli_options.out, cdecl--help.out,
     bad_cli_options.test: The `-I` option (`--explicit-int`) has been changed
     to `-i`.
   * cdecl.1, cli_options.c, cdecl--help.out: The `-R` option
     (`--trailing-return`) has been changed to `-r`.
   * help.c, help.out: Added missing west-pointer to options help.
   * cdecl.1: Changed west-pointer example.
   * cdecl.1: Made west-pointer option value table single-spaced.
   * cdecl.1, options.c: Made value for --west-pointer to be case-insensitive.
   * options.c: Now using tolower().
   * cli_options.c: opt_format() now uses internal buffers.
   * lib/Makefile.am, c++defs.h, ctype.in.h, fnmatch.in.h, inttypes.in.h,
     locale.in.h, stdio.in.h, stdlib.in.h, string.in.h, sys_types.in.h,
     unistd.in.h, verify.h, wchar.in.h, wctype.in.h, gnulib-common.m4,
     locale-fr.m4, locale-ja.m4, locale-zh.m4, stdlib_h.m4, threadlib.m4,
     wchar_h.m4: Updated GnuLib.
   * AUTHORS, cdecl.1, c_kind.h, cli_options.c, gibberish.c, options.c,
     options.h, set_options.c, test/Makefile.am, alt-tokens.out,
     cdecl--help.out, cl.out, debug.out, explain-by-default.out,
     explicit-ecsu.out, explicit-int.out, lang.out, prompt.out, semicolon.out,
     set.out, set_options.out, trigraphs.out, using.out, west-pointer.out,
     west-pointer.test: Added west-pointer option.

2023-04-21  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, autocomplete.c: Autocompleting `set` options that take a
     value now includes `=`.
   * gibberish.c: Added asserts.

2023-04-20  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_check.c, c_kind.h, gibberish.c, parser.y:
     s/K_ANY_ENUM_CLASS_STRUCT_UNION/K_ENUM_CLASS_STRUCT_UNION/
   * gibberish.c: Simplification.

2023-04-19  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c: s/LANG_CPP_MIN(11)/LANG_REF_QUALIFIED_FUNC/
   * c_lang.h: Moved macro definition.

2023-04-16  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, debug.out: Now naming top-level C declarations more
     consistently.
   * parser.y: Additional use of PARSE_ASSERT().
   * parser.y: Added local variable.
   * parser.y: Changed CHECK_NESTED_TYPE_OK() to use PARSE_ASSERT() instead.

2023-04-15  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Got rid of C_AST_CHECK, C_TYPE_ADD, C_TYPE_ADD_TID, and
     C_TID_ADD; now using PARSE_ASSERT.
   * parser.y: Removed unecessary assignment.

2023-04-14  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_check.c: Removed unnecessary forward declaration.
   * c_type.c: Eliminated AUT.
   * cdecl.1: Fixed explanation of english-types set option.

2023-04-13  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am, lexer.l: Better work-around for
     https://github.com/westes/flex/issues/564.
   * src/Makefile.am: Work-around for
     https://github.com/westes/flex/issues/564.
   * pjl_config.h: Fix for updated GnuLib !_GL_CONFIG_H_INCLUDED.
   * attribute.h, ctype.in.h, flexmember.h, fnmatch.in.h, inttypes.in.h,
     locale.in.h, stdarg.in.h, stddef.in.h, stdio.in.h, stdlib.in.h,
     string.in.h, strnlen1.h, unistd.in.h, wchar.in.h, wctype.in.h,
     gnulib-common.m4, mbrtowc.m4: Updated GnuLib.

2023-04-12  Paul J. Lucas <paul@lucasmail.org>

   * util.c: Added missing #include <stdarg.h>.

2023-04-10  Paul J. Lucas <paul@lucasmail.org>

   * util.h: Added PJL_PRINTF_LIKE_FUNC(2).
   * c_typedef.c, cli_options.c, lexer.l, util.h:
     s/INTERNAL_ERR()/INTERNAL_ERROR()/
   * cdecl.c, cli_options.c, lexer.l, print.c, util.c, util.h:
     s/FATAL_ERR()/fatal_error()/
   * dump.c: Eliminated temporary variable.

2023-04-09  Paul J. Lucas <paul@lucasmail.org>

   * dump.c, debug.out, debug.test: When dumping, `variable` is no properly
     quoted; more tests.
   * dump.c: Better `,` printing in debug output.
   * dump.c: Simplified printing of `,` in debug output.
   * debug.out, debug.test: Added lambda captures to debug test.
   * c_ast_check.c, c_type.c: Now using unreachable() more.
   * dump.c: s/break/return "none"/
   * dump.c: When dumping, `this` and `*this` are now properly quoted.
   * lcovrc: Added unreachable() to lcov exclusion pattern.
   * lib/Makefile.am, locale.in.h, stdio.in.h, stdlib.in.h, gnulib-common.m4,
     stdlib_h.m4: Updated GnuLib.

2023-04-08  Paul J. Lucas <paul@lucasmail.org>

   * c_sglob.c: Reworked c_sglob_parse().
   * cdecl.c, cli_options.c, cli_options.h:
     s/cli_options_init()/cli_option_init()/ for consistency.

2023-04-07  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Renaming.

2023-04-06  Paul J. Lucas <paul@lucasmail.org>

   * dump.c, parser.y, debug.out: When dumping, quotes in strings are now
     properly escaped.
   * debug.out, debug.test: More debug tests.

2023-04-05  Paul J. Lucas <paul@lucasmail.org>

   * c_keyword.c, c_keyword.h, cdecl.c, cdecl_keyword.c, cdecl_keyword.h: Added
     c_keyword_init() and cdecl_keyword_init().
   * configure.ac, parser.y: Fixed a crash while dumping an operator.
   * c_ast.h, c_ast_check.c, c_ast_util.c, c_ast_util.h, c_operator.c,
     c_operator.h, dump.c, english.c: Renamed C_OP_* (for overloadability) to
     C_OPER_* for consistentcy with C_FUNC_*.
   * c_operator.c: Changed loop so as never to go beyond the end of the array.

2023-04-04  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.h: Switched #include order.
   * lib/Makefile.am, btowc.c, stddef.in.h, stdlib.in.h, btowc.m4, mbrtowc.m4,
     mbsrtowcs.m4, stdlib_h.m4: Updated GnuLib.

2023-04-03  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.c, c_type.c, util.h: Added empty_if_null().
   * parser.y: Capitalized constant arrays.
   * c_ast_check.c, c_sname.c, c_typedef.c, strbuf.c: Variable renaming.
   * print.c: Sorted functions.

2023-04-02  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_check.c, c_keyword.c, c_operator.c, lexer.l, parser.y, types.h:
     s/_EQ/_EQUAL/
   * c_ast.h, c_ast_check.c, c_ast_util.c, c_operator.h, dump.c, gibberish.c,
     types.h: #include clean-up.
   * parser.y: Sorted macros.
   * util.h: Arranged WS by likelihood of encounter.

2023-04-01  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h: Whitespace.
   * c_ast.c, c_ast.h, c_ast_check.c, c_ast_util.c, dump.c, english.c,
     gibberish.c, parser.y: c_operator_ast now contains c_operator_t* directly
     rather than just oper_id.
   * cdecl.1: Now correctly list `long long` as a new type in C99, not C89.
   * cdecl.1, c_lang.h, c_type.c: Now correctly restrict `unsigned` to `int`
     only in K&R C.

2023-03-31  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: Removed assert().
   * gibberish.c: Reworked gibberish of lambda captures to print the capture's
     name only when necessary.
   * english.c: Removed unnecessary assert().
   * english.c: Reworked c_ast_lambda_captures_english() to call
     c_sname_english() only when necessary.
   * c_ast_check.c: Added assert()s.

2023-03-30  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Collapsed two C-style cast rules.
   * cdecl.1, help.c, parser.y, cast.out, cl.out, help.out, cast.test: Now
     allowing C-style casting without a name.
   * parser.y, print.c, set_options.c, util.c, util.h: s/fprint_list/fput_list/
   * cli_options.c: Now checking -c/--config and -f/--file arguments for empty
     strings and complaining.

2023-03-29  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c: s/predefined_lang_ids/predef_lang_ids/
   * c_typedef.c: Added predef_type.
   * dump.c, english.c, gibberish.c, parser.y, util.h: s/fprint_sep/fput_sep/

2023-03-28  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, fnmatch.c, stdio.in.h, wchar.in.h, gnulib-comp.m4,
     musl.m4, stdio_h.m4, wchar_h.m4: Updated GnuLib.
   * c_ast_util.c, c_ast_util.h, c_sglob.c, c_sglob.h, c_sname.c, c_sname.h,
     lexer.h, lexer.l, print.c: Renamed pointer parameters that receive return
     values to be prefixed with `rv_`.
   * c_sname.c, c_sname.h: Added missing `const`s.
   * slist.h: s/MEM_ZERO( list )/slist_init( list )/
   * parser.y, debug.out: Added debug "rule" key/value.
   * parser.y, debug.out: Now printing trailing blank line instead of leading
     blank line when dumping.
   * dump.c, dump.h, parser.y: Elimiated c_ast_dump_impl() and
     c_ast_list_dump_impl() -- always passing indent.

2023-03-27  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, dump.c, parser.y, debug.out: Made debug output more JSON5-like.

2023-03-25  Paul J. Lucas <paul@lucasmail.org>

   * util.h: s/_IMPL/_HELPER/

2023-03-24  Paul J. Lucas <paul@lucasmail.org>

   * util.h: Fixed definition of BITS_GT().
   * util.h: No longer need CHARIFY_IMPL().
   * c_keyword.c, cdecl_keyword.c, prompt.c, util.c, util.h: Added NAME2() and
     RUN_ONCE.

2023-03-23  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_check.c, c_type.h, test/Makefile.am, declare_bi129.out,
     declare_bi129.test: Added C_BITINT_MAXWIDTH with value 128.
   * dump.c, english.c, gibberish.c: Now checking for TB_BITINT before
     accessing .BitInt.width.

2023-03-22  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Now using CONST_CAST.
   * lexer.l: s/capacity/cap/
   * lexer.l: `if` simplification.

2023-03-21  Paul J. Lucas <paul@lucasmail.org>

   * prompt.c: Added prompt_cleanup().
   * util.c: Now using false_set().
   * english.c: Initializing local_name.
   * c_ast_check.c, dump.c, english.c, gibberish.c: Reworked lambda capture
     asserts.
   * english.c: Added assert().
   * english.c: s/c_type_print_not_base/c_type_name_nobase_english/

2023-03-20  Paul J. Lucas <paul@lucasmail.org>

   * c_operator.h: s/~0u/UINT_MAX/
   * c_operator.c: s/LANG_ANY/LANG_NONE/
   * c_ast_check.c, c_operator.c, c_operator.h, dump.c, parser.y:
     s/name/literal/ for c_operator.

2023-03-19  Paul J. Lucas <paul@lucasmail.org>

   * c_operator.c: Removed unnecessary #include.
   * c_operator.c: Got rid of empty operator array entry.
   * gibberish.c: Moved "return".

2023-03-18  Paul J. Lucas <paul@lucasmail.org>

   * c_kind.h: Now using unreachable() for K_PLACEHOLDER.
   * stddef.in.h, verify.h, stddef_h.m4: Updated GnuLib.
   * gibberish.c, alt-tokens.out, alt-tokens.test: Blocks now correctly print
     alternative tokens when the option is enabled.
   * gibberish.c, alt-tokens.out, alt-tokens.test: Lambda captures now
     correctly print alternative tokens when the option is enabled.
   * c_operator.c, gibberish.c, gibberish.h, alt-tokens.out, alt-tokens.test:
     Reference and rvalue reference functions now correctly print alternative
     tokens.

2023-03-17  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c, digraphs.out, trigraphs.out, digraphs.test, trigraphs.test:
     Now correctly emitting di/trigraphs for `operator[]`.
   * c_operator.c: Alternative tokens now have priority over di/trigraphs.
   * gibberish.c: Now emitting di/trigraphs for [] lambda captures.

2023-03-16  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.h: Simplified LANG_RANGE().
   * c_ast.h: Added asserts.

2023-03-15  Paul J. Lucas <paul@lucasmail.org>

   * help.c, help.out: Put {di|tri|no}graphs in same place as show via `set`.
   * c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h, parser.y, explain.out,
     explain.test: Fixed explicit constructor with unecessary `()`.
   * cdecl.1: Added mention that the C++20 explicit(expr) specifier is not
     supported.
   * set_options.c: Now using L_options.
   * cdecl.1, c_kind.h, cli_options.c, gibberish.c, help.c, options.c,
     options.h, set_options.c, alt-tokens.out, cdecl--help.out, cl.out,
     debug.out, declare.out, explain-by-default.out, explicit-ecsu.out,
     explicit-int.out, help.out, lang.out, prompt.out, semicolon.out, set.out,
     set_options.out, trigraphs.out, using.out, declare.test: Added
     trailing-return option.

2023-03-14  Paul J. Lucas <paul@lucasmail.org>

   * dump.c, english.c, gibberish.c: Using L_xxx in easy cases.
   * gibberish.c: Now using c_ast_gibberish_impl() in g_print_ast_list().
   * cdecl.1: Added note that `q` must be the only thing on a line.
   * cdecl.1: s/When/If/
   * cdecl.1: Added "or C++" when omitting "return".

2023-03-13  Paul J. Lucas <paul@lucasmail.org>

   * print.h: Added missing #.
   * help.h, types.h: Added printing-help-group.
   * lexer.l: Added missing {NI} for `declare` special-case.

2023-03-12  Paul J. Lucas <paul@lucasmail.org>

   * print.c: s/isalnum/is_ident/
   * dump.c, print.c, util.h: Added FPUTNSP().
   * dump.c: Removed unnecessary #ifdef.

2023-03-11  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, gnulib-cache.m4, gnulib-comp.m4: Removed deprecated (and
     no longer necessary) stdnoreturn GnuLib module.

2023-03-10  Paul J. Lucas <paul@lucasmail.org>

   * dump.c: Added c_capture_kind_dump().
   * dump.c: Added c_alignas_dump().
   * parser.y: Now special-casing YYEMPYY and YYEOF when printing yychar.
   * lexer.h, parser.y: Moved fl_elaborate_error() to eliminate declaration of
     yychar.
   * lexer.l: Added #pragma <compiler> diagnostic push/pop.
   * lexer.l: Disabled -Wsign-compare for flex code.

2023-03-09  Paul J. Lucas <paul@lucasmail.org>

   * declare.out, declare.test: Eliminated redundant test.
   * cdecl_keyword.c, lexer.l, literals.c, literals.h, declare.out,
     declare.test: `q` is now a synonym for `quit` only when it's the only
     thing on a line other than whitespace.
   * autocomplete.c, util.c, util.h: Replaced is_command() with
     is_ident_prefix().

2023-03-08  Paul J. Lucas <paul@lucasmail.org>

   * print.c: Removed "or lines".
   * autocomplete.c: Renaming.

2023-03-07  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.h, read_line.c: Made prog_name optional.
   * read_line.c: Removed unnecessary #include.
   * read_line.c: Made assert(prog_name != NULL) check only when interactive.
   * read_line.c: Renaming.
   * read_line.c, read_line.h: Removed `static` and `2` from `prompts`.
   * read_line.c: Moved `if ( interactive )` outside of #ifdef.
   * cdecl.1: Added missing mention of support for zero or more parameters for
     operator[] in C++23.
   * stdio.in.h: Updated Gnulib.

2023-03-06  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c, c_keyword.c, cdecl_keyword.c: Renaming.

2023-03-05  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c, cdecl.h, cli_options.c, color.c, help.c, parser.y, set_options.c,
     util.h: Eliminated cdecl_fout.
   * cli_options.c: Changed `verbose` to bool.
   * cli_options.c: Fixed checking of extra command-line arguments for --usage
     and --version.
   * cli_options.c: Renaming.
   * cli_options.c: Added --enable-coverage to -vv.

2023-03-04  Paul J. Lucas <paul@lucasmail.org>

   * unistd.in.h: Updated Gnulib.
   * cdecl.1, autocomplete.h, cli_options.c, prompt.c: Now printing configure
     feature & package options and whether GNU readline is genuine when -v is
     given twice.
   * cli_options.c: Now updating argc/argv immediately after processing
     options.

2023-03-03  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, cli_options.c: Now printing configure feature & package options
     as part of --version output.
   * configure.ac: Upped version to 14.1.
   * cli_options.c, cdecl--help.out: Put home page URL first in help output.

2023-03-02  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added missing " for formatting commands.

2023-03-01  Paul J. Lucas <paul@lucasmail.org>

   * literals.h: Added missing _GL_INLINE_HEADER_END.

2023-02-22  Paul J. Lucas <paul@lucasmail.org>

   * dump.c, dump.h: Added #ifndef/#ifdef ENABLE_CDECL_DEBUG.

2023-02-21  Paul J. Lucas <paul@lucasmail.org>

   * did_you_mean.c: Renaming.

2023-02-20  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: Eliminated temp variable.
   * gibberish.c: s/flags/gib_flags/
   * cdecl.c, cdecl_keyword.c, help.c: #include clean-up.
   * autocomplete.h, read_line.c: #include clean-up; comment.

2023-02-19  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_check.c, cast_a3i.out, explain_cast.out, explain_cast_a3a5a7i.out,
     explain_cast_a3a5i.out, explain_cast_a3i.out, explain_cast.test: Now
     correctly allowing casting into an array when there is no name.
   * fnmatch.m4, getdelim.m4, getline.m4, setlocale_null.m4: Updated Gnulib.
   * cdecl_keyword.c: s/AC_POLICY_IN_NEXT_ONLY/

2023-02-18  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_keyword.c, c_lang.c, c_operator.c, c_sname.c, c_type.c,
     c_typedef.c, cdecl_keyword.c, cli_options.c, color.c, did_you_mean.c,
     dump.c, english.c, gibberish.c, lexer.l, options.c, print.c, prompt.c,
     red_black.c, set_options.c, util.c: Added @addtogroup in .c files.
   * src/Makefile.am, autocomplete.c, autocomplete.h, cdecl_keyword.h,
     read_line.c: Added autocomplete.h.
   * autocomplete.c, cdecl_keyword.c, cdecl_keyword.h: Eliminated
     cdecl_keyword::ac_lang_ids in favor of more autocompletion policies.
   * autocomplete.c, c_ast_check.c, c_keyword.c, c_sname.c, cdecl_keyword.c,
     did_you_mean.c, lexer.l, parser.y, print.c: c_keyword, cdecl_keyword,
     ac_keyword variable renaming.

2023-02-17  Paul J. Lucas <paul@lucasmail.org>

   * cdecl_keyword.c: Now AC_TOO_SHORT for L_by.
   * cdecl_keyword.c: s/L_int/L_integer/ for bit-precise autocompletion.

2023-02-17  Jan Engelhardt <jengelh@inai.de>

   * cdecl_keyword.c: autocomplete: add L_by to L_reference next-keyword list
     (#26)

2023-02-17  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added mention of another editline bug.

2023-02-16  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Now using STATIC_CAST().
   * autocomplete.c: Now using is_token_char() in str_prev_token().

2023-02-15  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, c_keyword.h, c_lang.h, c_operator.h, c_sname.h, cdecl_command.h,
     cdecl_keyword.h, print.h, types.h: Moved types, part 5.
   * c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h:
     s/c_visit_dir_t/c_ast_visit_dir_t/
   * c_ast.h, types.h: Moved types, part 4.
   * cdecl_command.h, types.h: Moved types, part 3.
   * c_type.h, types.h: Moved types, part 2.
   * c_keyword.h, c_kind.h, lexer.h, set_options.h, types.h: Moved types
     around.
   * c_ast.c: Added static_assert() for c_ast_lambda::param_ast_list.
   * AUTHORS: Added mention of lambdas.
   * getopt-pfx-core.h, hard-locale.h, limits.in.h, setlocale_null.c,
     string.in.h, verify.h, wchar.in.h, assert_h.m4, gnulib-common.m4,
     limits-h.m4, setlocale_null.m4: Updated Gnulib.
   * configure.ac: Updated to 14.0.
   * cdecl.1, c_ast.c, c_ast.h, c_ast_check.c, c_kind.c, c_kind.h, c_lang.h,
     c_type.c, c_type.h, cdecl_keyword.c, dump.c, english.c, gibberish.c,
     help.c, literals.c, literals.h, parser.y, types.h, test/Makefile.am,
     declare.out, explain.out, explain_la_coco.out, explain_la_cor.out,
     explain_la_nco.out, explain_la_nn-error.out, explain_la_nr.out,
     explain_la_rco.out, explain_la_rr.out, explain_la_rrn.out,
     explain_la_star_ts_star_ts.out, explain_la_star_tsts.out,
     explain_la_ts_star_ts.out, explain_la_tsts.out, help.out, declare.test,
     explain.test, explain_la_coco.test, explain_la_cor.test,
     explain_la_nco.test, explain_la_nn-error.test, explain_la_nr.test,
     explain_la_rco.test, explain_la_rr.test, explain_la_rrn.test,
     explain_la_star_ts_star_ts.test, explain_la_star_tsts.test,
     explain_la_ts_star_ts.test, explain_la_tsts.test: Added lambda support.

2023-02-14  Paul J. Lucas <paul@lucasmail.org>

   * c_keyword.c, c_operator.c, lexer.l, parser.y, types.h: s/CIRC/CARET/
   * c_ast.c, c_ast.h, c_ast_check.c, dump.c, english.c, gibberish.c, parser.y:
     s/cast_kind/kind/

2023-02-11  Paul J. Lucas <paul@lucasmail.org>

   * cdecl_keyword.c, cdecl_keyword.h, did_you_mean.c: Added
     cdecl_keyword::lang_ids to elide language inappropriate did-you-mean
     suggestions.

2023-02-01  Paul J. Lucas <paul@lucasmail.org>

   * explicit-int.out, explicit-int.test: More tests.
   * c_type.c: s/INF/INL/
   * c_ast_check.c: Replaced `goto only_special` with
     `UNEXPECTED_INT_VALUE(ast->kind)`.
   * c_ast_check.c, test/Makefile.am, explain_dtor.out, explain_dtor.test:
     Cdecl now correctly reports destructors in C as an error.
   * lexer.l, trigraphs.out, trigraphs.test: Trigraph fixes.
   * gibberish.c, lexer.l, digraphs.out, digraphs.test: Digraph fixes.
   * declare.out, declare.test: Added test.

2023-01-31  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: Added LCOV_EXCL_LINE.
   * debug.out, debug.test: More tests.
   * test/Makefile.am, explain.out, explain_fithrk_v.out, explain.test,
     explain_fithrk_v.test: More tests.
   * update_test.sh: Now updating only *.test tests.
   * c_ast_check.c: Array of K_NAME is impossible.
   * explain.out, explain.test: More tests.
   * cdefs.h, libc-config.h: Updated Gnulib.

2023-01-30  Paul J. Lucas <paul@lucasmail.org>

   * english.c, explain.out: Undid a change in **cdecl** 11.5 where K&R C
     typeless function parameters were printed as being of type `int`: they now
     again print as only their names.
   * english.c, explain.out: Fixed English "integer" name for K&R typeless
     function parameter.
   * c_ast_util.c, c_ast_util.h, parser.y:
     s/c_ast_is_bit_field/c_ast_is_bit_field_kind/
   * c_ast_util.c: Added assert()s.
   * c_ast.c: Now copying/comparing bit_width field for K_ENUM.
   * dam_lev.c: Added `const`.

2023-01-29  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Now using spelled-out English.
   * c_ast_util.c, c_ast_util.h, c_sname.h, parser.y, print.h, red_black.h,
     slist.h: Now using ``` instead of @code/@endcode.
   * color.c: Now free'ing capabilities if we didn't set any.
   * util.h: Made free_later() PJL_DISCARD.
   * color.c: Now asserting not called again after a successful parse.
   * color.c: Removed spurious SGR_CAP_SEP.
   * gnulib-common.m4, stddef_h.m4: Updated Gnulib.

2023-01-28  Paul J. Lucas <paul@lucasmail.org>

   * c_keyword.c, cdecl_keyword.c: Using false_set() more.

2023-01-27  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, cdecl.1, autocomplete.c: Now ringing the bell when there are
     no autocompletion matches.
   * autocomplete.c: Now using false_set().

2023-01-26  Paul J. Lucas <paul@lucasmail.org>

   * read_line.c: Fixed prog_name not used warning.
   * cdecl_keyword.c: Fix PPC errors.
   * cdecl_keyword.c: Fix compile error on Linux.
   * lib/Makefile.am, inttypes.in.h, locale.in.h, stdio.in.h, stdlib.in.h,
     string.in.h, unistd.in.h, wchar.in.h, getdelim.m4, getline.m4,
     gnulib-common.m4, gnulib-comp.m4, inttypes.m4, mbtowc.m4, mempcpy.m4,
     stdlib_h.m4, string_h.m4, threadlib.m4, unistd_h.m4, wchar_h.m4,
     wmempcpy.m4: Updated Gnulib.
   * autocomplete.c: Now taking advantage of sorted order.
   * cdecl_keyword.c: Sorted next keywords.
   * autocomplete.c: Whitespace.
   * autocomplete.c: Now using CONST_CAST.
   * c_keyword.c: Now sorting C/C++ keywords.
   * cdecl_keyword.c: Now sorting CDECL_KEYWORDS.
   * autocomplete.c: s/>/</
   * cdecl_keyword.c: Sorted.
   * autocomplete.c: breaking early.
   * strbuf.c: Using "early return" style.
   * strbuf.c: Now resetting and using buf.

2023-01-25  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c, cdecl_keyword.c: More autocompletion clean-up.
   * autocomplete.c, cdecl_keyword.c, cdecl_keyword.h:
     s/AC_POLICY_DEFAULT/AC_POLICY_NONE/
   * autocomplete.c, cdecl_keyword.c: Fix hang; clean-up.
   * autocomplete.c: Simplified.
   * autocomplete.c, cdecl.c, read_line.c, read_line.h: strbuf_read_line() now
     takes prog_name.
   * util.h: Simplified BITS_GE().

2023-01-24  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Renaming.
   * did_you_mean.c, did_you_mean.h, print.c: s/token/literal/
   * c_lang.h, c_type.c: Reworked OK_*_LANGS arrays to use mnemonic element
     initializer macros.

2023-01-23  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_check.c, test/Makefile.am: No longer require certain declarations to
     be a function parameters: `const`, `volatile`, `static`, and variable
     length arrays; `[[carries_dependency]]`.
   * c_ast_check.c, test/Makefile.am, explain_aai.out, explain_aai.test: Now
     correctly reporting declarations of arrays of incomplete arrays as an
     error.
   * autocomplete.c: Made is_gibberish static.
   * autocomplete.c: Simplification.
   * autocomplete.c: s/str_prev_keyword/prev_cdecl_keyword/
   * autocomplete.c: Removed untrue comment.
   * autocomplete.c: Removed redundant space.

2023-01-22  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_ast_util.h: Now initializing qual_stids.
   * autocomplete.c, c_keyword.c, c_keyword.h, cdecl_command.c,
     cdecl_command.h, cdecl_keyword.h: s/[Aa]uto-complet/[Aa]utocomplet/g
   * cdecl_keyword.c, pjl_config.h: s/IF_AC/AC_SETTINGS/
   * cdecl_keyword.c: No longer autocompleting `scope` in C.
   * cdecl_keyword.c, parser.y: s/Y_Apple_BLOCK/Y_Apple_block/
   * cdecl_keyword.c: Removed #undef restrict -- no longer needed.
   * configure.ac: Version number and NEWS fix-up.
   * lib/Makefile.am, _Noreturn.h, hard-locale.c, stdlib.in.h, verify.h,
     assert_h.m4, getdelim.m4, getline.m4, gnulib-common.m4, gnulib-comp.m4,
     mbrtowc.m4, mbtowc.m4, mempcpy.m4, setlocale_null.m4, stdlib_h.m4,
     threadlib.m4, wmempcpy.m4: Updated Gnulib.

2023-01-21  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Removed unnecessary heuristic.
   * autocomplete.c, cdecl_keyword.c, cdecl_keyword.h, did_you_mean.c,
     pjl_config.h, types.h, util.c, util.h, ac-cast_into.exp, ac-declare.exp,
     ac-explain.exp, ac-help.exp, ac-set.exp, ac-show.exp: For some keywords,
     now autocompleting only a certain set of next keywords.

2023-01-19  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Fixed requiring parameter list for user-defined literals in
     English.
   * autocomplete.c: The set of word-break characters for autocompletion has
     been expanded to be all non-identifier characters.
   * c_ast_check.c, test/Makefile.am, explain_a_nua_iw4.out,
     explain_a_nua_iw4.test: Bit-fields having `[[no_unique_address]]` are now
     correctly reported as an error.

2023-01-17  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: s/always_autocomplete/ac_in_gibberish/

2023-01-16  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Renamed function.

2023-01-15  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Now using n+1 for MALLOC().

2023-01-14  Paul J. Lucas <paul@lucasmail.org>

   * read_line.c, read_line.h: Added static 2.
   * autocomplete.c: Added asserts.
   * cdecl.c, print.c, util.c, util.h: s/str_rtrim_len/strn_rtrim/

2023-01-13  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Now limiting autocompleting `into` only to when the text
     string typed is not empty.

2023-01-12  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: strncmp() arg reordering.
   * autocomplete.c: s/command_keywords/specific_ac_keywords/
   * configure.ac, prompt.c: Prompts were always being displayed in color even
     when --color=never.  Fixed.

2023-01-11  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Function reordering.

2023-01-10  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_type.c, cdecl_keyword.c, literals.c, literals.h, parser.y,
     declare.out, explain.out, declare.test: Added "bit-precise integer" as an
     English synonym for _BitInt.
   * parser.y: s/int_exp/int_lit_exp/; s/int_opt/int_lit_opt/'

2023-01-09  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c: Added `#ifndef NDEBUG` around c_ast_count.
   * red_black.c: Added designated initializers.

2023-01-08  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, c_ast_check.c, test/Makefile.am, explain.out,
     explain_etv-c++.out, explain.test, explain_etv-c++.test: Now allow `extern
     void v` in C.
   * red_black.h: Added missing #include.

2023-01-07  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, cdecl_keyword.c, literals.c, literals.h, parser.y,
     declare_udc.out, declare_udl.out, declare_udc.test, declare_udl.test:
     Added `user defined` as a synonym for `user-defined`.
   * explain_udl.test: chmod -x
   * cli_options.c, cdecl--help.out: s/Suppress prompt/Suppress printing
     prompts/
   * lib/Makefile.am, _Noreturn.h, alloca.in.h, arg-nonnull.h, assert.in.h,
     attribute.h, btowc.c, c++defs.h, cdefs.h, ctype.in.h, errno.in.h,
     flexmember.h, fnmatch.c, fnmatch.in.h, fnmatch_loop.c, getdelim.c,
     getline.c, getopt-cdefs.in.h, getopt-core.h, getopt-ext.h,
     getopt-pfx-core.h, getopt-pfx-ext.h, getopt.c, getopt.in.h, getopt1.c,
     getopt_int.h, gettext.h, hard-locale.c, hard-locale.h, idx.h,
     intprops-internal.h, inttypes.in.h, isblank.c, lc-charset-dispatch.c,
     lc-charset-dispatch.h, libc-config.h, limits.in.h, localcharset.c,
     localcharset.h, locale.in.h, mbrtowc-impl-utf8.h, mbrtowc-impl.h,
     mbrtowc.c, mbsinit.c, mbsrtowcs-impl.h, mbsrtowcs-state.c, mbsrtowcs.c,
     mbtowc-impl.h, mbtowc-lock.c, mbtowc-lock.h, mbtowc.c, memchr.c,
     memchr.valgrind, mempcpy.c, setlocale-lock.c, setlocale_null.c,
     setlocale_null.h, stdarg.in.h, stdckdint.in.h, stddef.in.h, stdint.in.h,
     stdio-read.c, stdio-write.c, stdio.in.h, stdlib.in.h, stdnoreturn.in.h,
     streq.h, string.in.h, strndup.c, strnlen.c, strnlen1.c, strnlen1.h,
     strsep.c, sys_types.in.h, sysexits.in.h, unistd.c, unistd.in.h, verify.h,
     warn-on-use.h, wchar.in.h, wctype-h.c, wctype.in.h, windows-initguard.h,
     wmemchr-impl.h, wmemchr.c, wmempcpy.c, 00gnulib.m4, __inline.m4,
     absolute-header.m4, alloca.m4, assert_h.m4, btowc.m4, builtin-expect.m4,
     c-bool.m4, codeset.m4, ctype_h.m4, errno_h.m4, extensions.m4,
     extern-inline.m4, flexmember.m4, fnmatch.m4, fnmatch_h.m4, getdelim.m4,
     getline.m4, getopt.m4, gnulib-cache.m4, gnulib-common.m4, gnulib-comp.m4,
     gnulib-tool.m4, include_next.m4, inttypes.m4, isblank.m4, limits-h.m4,
     localcharset.m4, locale-fr.m4, locale-ja.m4, locale-zh.m4, locale_h.m4,
     mbrtowc.m4, mbsinit.m4, mbsrtowcs.m4, mbstate_t.m4, mbtowc.m4, memchr.m4,
     mempcpy.m4, mmap-anon.m4, multiarch.m4, nocrash.m4, off_t.m4, pid_t.m4,
     setlocale_null.m4, ssize_t.m4, std-gnu11.m4, stdarg.m4, stddef_h.m4,
     stdint.m4, stdio_h.m4, stdlib_h.m4, stdnoreturn.m4, string_h.m4,
     strndup.m4, strnlen.m4, strsep.m4, sys_types_h.m4, sysexits.m4,
     threadlib.m4, unistd_h.m4, vararrays.m4, visibility.m4, warn-on-use.m4,
     wchar_h.m4, wchar_t.m4, wctype_h.m4, wint_t.m4, wmemchr.m4, wmempcpy.m4,
     zzgnulib.m4: Updated Gnulib.

2023-01-06  Paul J. Lucas <paul@lucasmail.org>

   * help.c, help.out: `auto` is now correctly listed as a C++ type in the help
     for C++11 and later.
   * test/Makefile.am, declare_udl.out, declare_udl.test: Test consolidation.
   * test/Makefile.am, debug.out, debug.test: Test consolidation.
   * test/Makefile.am: Test renaming.
   * test/Makefile.am, semicolon.out, semicolon.test: Test consolidation.
   * test/Makefile.am: Test renaming.
   * test/Makefile.am: Test consolidation.
   * test/Makefile.am, cdecl-t.out, cdecl-t.test: Test consolidation.

2023-01-05  Paul J. Lucas <paul@lucasmail.org>

   * test/Makefile.am, cl.out, cl.test: Test consolidation.
   * test/Makefile.am: Removed.
   * test/Makefile.am, cdecl-debug.out: Better cdecl debug test.
   * test/Makefile.am: Test renaming.
   * test/Makefile.am, using.out, using.test: Better `using` tests.
   * test/Makefile.am: Test renaming.

2023-01-04  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c: Now setting interactive mode only when reading via stdin.
   * test/Makefile.am, bad_cli_options.out, bad_cli_options.test: Test
     consolidation.
   * test/Makefile.am, semicolon.out, semicolon.test: Test consolidation.
   * run_test.sh: Simplified.
   * Doxyfile, Makefile.am, bootstrap, cdecl.css, configure.ac, lcovrc,
     makedoc.sh, man/Makefile.am, man/man1/Makefile.am, man/man1/c++decl.1,
     cdecl.1, src/Makefile.am, autocomplete.c, c_ast.c, c_ast.h, c_ast_check.c,
     c_ast_check.h, c_ast_util.c, c_ast_util.h, c_keyword.c, c_keyword.h,
     c_kind.c, c_kind.h, c_lang.c, c_lang.h, c_operator.c, c_operator.h,
     c_sglob.c, c_sglob.h, c_sname.c, c_sname.h, c_type.c, c_type.h,
     c_typedef.c, c_typedef.h, cdecl.c, cdecl.h, cdecl_command.c,
     cdecl_command.h, cdecl_keyword.c, cdecl_keyword.h, cdecl_lldb.py,
     cdecl_parser.h, cli_options.c, cli_options.h, color.c, color.h, dam_lev.c,
     dam_lev.h, did_you_mean.c, did_you_mean.h, dump.c, dump.h, english.c,
     english.h, gibberish.c, gibberish.h, help.c, help.h, lexer.h, lexer.l,
     lines.sh, literals.c, literals.h, options.c, options.h, parser.y,
     pjl_config.h, print.c, print.h, prompt.c, prompt.h, read_line.c,
     read_line.h, red_black.c, red_black.h, red_black_test.c, set_options.c,
     set_options.h, slist.c, slist.h, slist_test.c, strbuf.c, strbuf.h,
     types.h, unit_test.h, util.c, util.h, test/Makefile.am,
     not_in_Makefile.sh, run_test.sh, update_test.sh: Updated copyright year
     range latest year to 2023.
   * test/Makefile.am: Test consolidation.

2023-01-03  Paul J. Lucas <paul@lucasmail.org>

   * options.c: Simplification.
   * test/Makefile.am, prompt.out, prompt.test: Test consolidation.
   * options.c, test/Makefile.am, explicit-int.out, explicit-int.test: Now
     resetting the current `explicit-int` option to none before parsing a new
     string.
   * test/Makefile.am: Test consolidation.
   * test/Makefile.am, explicit-ecsu.out, explicit-ecsu.test: Test
     consolidation.
   * cdecl.c, test/Makefile.am, explain-by-default.out: No longer echoing
     "explain" when explain-by-default.
   * test/Makefile.am, explain-by-default.out, explain-by-default.test: Test
     consolidation.
   * test/Makefile.am, english-types.out, english-types.test: New
     english-types.test.
   * test/Makefile.am, trigraphs.out, trigraphs.test: Test consolidation.

2023-01-02  Paul J. Lucas <paul@lucasmail.org>

   * test/Makefile.am, digraphs.out, digraphs.test: Test consolidation.
   * alttokens.test: Fixed mode.
   * alttokens.out, alttokens.test: Test consolidation.
   * parser.y, util.h: Replaced /* nothing */ with NO_OP in the few cases where
     it mattered.
   * util.h: Added ().
   * c_typedef.c, cdecl.c, cli_options.c, lexer.l, util.h: Added
     ASSERT_RUN_ONCE() to eliminate an unused variable warning when compiling
     with --disable-assert.

2023-01-01  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_check.c, declare.out, declare.test: Added reserved identifier tests.

2022-12-31  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Fixed newline position.
   * util.c, util.h: Added `restrict` to match real fmemopen().

2022-12-30  Paul J. Lucas <paul@lucasmail.org>

   * string.in.h, verify.h, wchar.in.h, extensions.m4, gnulib-common.m4:
     Updated Gnulib.
   * lexer.l: Added () around BEGIN argument.
   * lexer.l: Moved BEGIN( INITIAL ).

2022-12-29  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.c, c_sname.h, lexer.l, parser.y, cdecl-d.out, explain_udc.out,
     explain_udc.test: Can now explain a `friend` scoped user-defined
     conversion operator correctly.
   * parser.y: Eliminated scope_sname_c_opt_operator.
   * parser.y: Eliminated user_defined_literal_c_ast.
   * explain_udc.out, explain_udc.test: Additional user-defined conversion
     test.

2022-12-28  Paul J. Lucas <paul@lucasmail.org>

   * lexer.h, parser.y: Added extern int yychar.
   * cdecl.1, parser.y: In debug mode, now also prints the token-id of the
     token that caused a syntax error.
   * test/Makefile.am, explain_udc.out, explain_udc.test: Test consolidation.
   * test/Makefile.am: Test reorganization.
   * test/Makefile.am, cdecl-Ii.out, cdecl-Iiu.out, cdecl-Il.out,
     cdecl-Ill.out, cdecl-Ilull.out, cdecl-Is.out, cdecl-Iu.out, cdecl-Iui.out,
     cdecl-Iul,ll.out, cdecl-Iul.out, cdecl-Iull.out, cdecl-Iulll.out,
     cdecl-Iulull.out, cdecl-Ius.out, explain.out, explain_operator.out,
     cdecl--kolor.test, cdecl-23.test, cdecl-9.test, cdecl-Ii.test,
     cdecl-Iiu.test, cdecl-Il.test, cdecl-Ill.test, cdecl-Ilull.test,
     cdecl-Is.test, cdecl-Iu.test, cdecl-Iui.test, cdecl-Iul,ll.test,
     cdecl-Iul.test, cdecl-Iull.test, cdecl-Iulll.test, cdecl-Iulull.test,
     cdecl-Ius.test, cdecl-Ix.test, cdecl-Sx.test, cdecl-h.test, cdecl-k.test,
     cdecl-knever.test, cdecl-kxxx.test, cdecl-xx.test, explain.test,
     explain_operator.test: Test clean-up.

2022-12-27  Paul J. Lucas <paul@lucasmail.org>

   * test/Makefile.am, explain.out, explain.test: Test consolidation.
   * test/Makefile.am, declare.out, declare.test: Test consolidation.
   * test/Makefile.am, explain_cast.out, explain_cast.test: Test consolidation.
   * test/Makefile.am, cast.out, cast.test: Test consolidation.
   * test/Makefile.am, explain_operator.out, explain_operator.test: Test
     consolidation.
   * test/Makefile.am, declare_operator.out, declare_operator.test: Test
     consolidation.
   * test/Makefile.am, declare_udc.out, declare_udc.test: Test consolidation.
   * test/Makefile.am, explain_udl.out, explain_udl.test: Test consolidation.
   * test/Makefile.am, cast.out, cast.test: cast_* test consolidation.
   * test/Makefile.am, explain_cast.out, explain_cast.test: explain_cast_* test
     consolidation.
   * test/Makefile.am: Moved tests.
   * c_ast_check.c, c_ast_util.c, c_ast_util.h, parser.y, test/Makefile.am,
     cast_a.out, cast_pa.out, typedef_a.out, typedef_pa.out, using_ai.out,
     cast_a.test, cast_pa.test, typedef_a.test, typedef_pa.test: Defining or
     casting a type containing `auto` is now correctly reported as an error.
   * prompt.c: Now printing the prompt in color even when readline is disabled.

2022-12-26  Paul J. Lucas <paul@lucasmail.org>

   * prompt.c: Added color_prompt variable.
   * prompt.c: Removed unnecessary #includes.
   * AUTHORS: s/C99/C11/
   * cdecl.1: Added "over".
   * AUTHORS: Added mention of more stuff.

2022-12-25  Paul J. Lucas <paul@lucasmail.org>

   * help.c: Added missing bison-debug & flex-debug options from set option
     help.
   * cdecl.1, c_type.c, cli_options.c, help.c, options.c, options.h,
     set_options.c, __declspec.out, cdecl-d.out, cdecl-h.out, cl-explain_i.out,
     define_k_define_k_explain_k+k.out, define_k_explain_pmki.out,
     digraphs.out, explain-by-default.out, explain_+co_eq2_rck_b++default.out,
     explain_+ctor_i.out, explain_+o_eq2_rcki_b.out, explain_+udc_i.out,
     explain_+udl_c_i.out, explain_0o_minus2_i_rk.out,
     explain_0o_plus2_i_rk.out, explain_2i-redef-c++.out, explain_2i-redef.out,
     explain_2npi.out, explain_2pii-c89.out, explain_a012i.out,
     explain_a0b10i.out, explain_a0xAi-01.out, explain_a0xai-02.out,
     explain_a3a5a7i.out, explain_a3a5i.out, explain_a3a5pfv_i.out,
     explain_a3a5pfv_pi.out, explain_a3a5pfv_ppa7a9i.out,
     explain_a3a5pfv_ppa7a9pc.out, explain_a3a5pfv_ppa7i.out,
     explain_a3a5pfv_ppa7pi.out, explain_a3a5pfv_ppi.out, explain_a3pfv_i.out,
     explain_a3ppfv_i.out, explain_a4pii-c89.out, explain_a9cpi.out,
     explain_a9i.out, explain_a9pi.out, explain_a_cd_fa_cd_i_i.out,
     explain_a_cd_fi_i.out, explain_a_dep_a_mu_i-01.out,
     explain_a_dep_a_mu_i-02.out, explain_a_dep_i.out, explain_a_mu_i.out,
     explain_a_using_a_mu_i.out, explain_ai-c17.out, explain_al0_c-c++.out,
     explain_al0_c.out, explain_al8_c-c++.out, explain_al8_c.out,
     explain_alpv_c.out, explain_ati-01.out, explain_ati-02.out,
     explain_atpi-01.out, explain_atpi-02.out, explain_b.out,
     explain_bitand_i.out, explain_blii_d.out, explain_cast_++pmi.out,
     explain_cast_ci.out, explain_cast_cpa3cpa5i.out,
     explain_cast_cpa3pa5i.out, explain_cast_cpa9ci.out,
     explain_cast_cpa9i.out, explain_cast_cpblv_pi.out, explain_cast_cpcpi.out,
     explain_cast_cpfv_pi.out, explain_cast_cpi.out, explain_cast_cppi.out,
     explain_cast_cvpi.out, explain_cast_ic.out, explain_cast_ll.out,
     explain_cast_pa3a5i.out, explain_cast_pa3cpa5i.out,
     explain_cast_pa3pa5i.out, explain_cast_pa9i.out, explain_cast_pblv_pi.out,
     explain_cast_pci.out, explain_cast_pcpi.out, explain_cast_pf_i.out,
     explain_cast_pfpci_i.out, explain_cast_pfpi_i.out,
     explain_cast_pfv_pi.out, explain_cast_pi.out, explain_cast_pic.out,
     explain_cast_pmc++i.out, explain_cast_pmi.out, explain_cast_ppi.out,
     explain_cast_ri.out, explain_cast_rtpi.out, explain_cast_ull.out,
     explain_cast_vcpi.out, explain_cast_vpi.out, explain_ci-ec.out,
     explain_ci.out, explain_co_eq2_crk_b++default.out,
     explain_co_minus2_i_rk.out, explain_co_plus2_i_rk.out,
     explain_const_cast_+pi.out, explain_const_cast_pi.out,
     explain_cpa3cpa5i.out, explain_cpa3pa5i.out, explain_cpa9ci.out,
     explain_cpa9i.out, explain_cpblv_pi.out, explain_cpcpi.out,
     explain_cpfv_pi.out, explain_cpi.out, explain_cpmci.out, explain_cpmi.out,
     explain_cppi.out, explain_csi.out, explain_ctor_i.out, explain_cu.out,
     explain_cvpi.out, explain_cxd.out, explain_cxf.out,
     explain_ec_typedef_i.out, explain_ec_using_i.out, explain_efi-c++.out,
     explain_efi-c.out, explain_efi-itself-c++.out, explain_efui.out,
     explain_epctor_i.out, explain_epictor_i.out, explain_epnxctor_i.out,
     explain_epudc_b.out, explain_eta2i.out, explain_exf_i.out,
     explain_exi.out, explain_f+o_exclam__b.out, explain_f+udc_i.out,
     explain_f_cpmi.out, explain_f_pi.out, explain_f_pmi.out,
     explain_f_ppc.out, explain_f_rpii-c89.out, explain_fa_cd_i_i.out,
     explain_fa_dep_i_v.out, explain_fa_mu_i_v.out, explain_fac_v-1.out,
     explain_fac_v.out, explain_facst3_v.out, explain_facv_v.out,
     explain_fast3_v.out, explain_fastc3_v.out, explain_fav_v.out,
     explain_fccel_v.out, explain_fctor_i.out, explain_ff_i_v-01.out,
     explain_fid_v.out, explain_fipfi_v_pfi_v.out, explain_fixiy_v.out,
     explain_fkr_i-cknr.out, explain_fkr_pi-c17.out,
     explain_fo_eq2_2crk_b++default.out, explain_fo_eq2_2k_b++default.out,
     explain_fpa5d_v.out, explain_fpc_pi.out, explain_fpci_pi.out,
     explain_fpf_pac_i.out, explain_fpf_v_i.out, explain_fpfc_i_d.out,
     explain_frg_v-c89.out, explain_frgi_v.out, explain_frri_v.out,
     explain_fv_pa3a5i.out, explain_fv_pa3a5pi.out, explain_fv_pa3i.out,
     explain_fv_pa3pi.out, explain_fv_pi.out, explain_grtpi.out,
     explain_grtri.out, explain_grtrri.out, explain_i+.out,
     explain_i-reserved-c++.out, explain_i-reserved-c.out, explain_i2+.out,
     explain_i_i.out, explain_i_pfd_i.out, explain_i_pi.out,
     explain_i_typedef.out, explain_ic.out, explain_ictor_i.out,
     explain_ii-c++.out, explain_imd.out, explain_imf.out,
     explain_ipi-redef.out, explain_irg.out, explain_ist.out,
     explain_keywords.out, explain_ki+.out, explain_ld.out, explain_lf.out,
     explain_ll.out, explain_main_f_i.out, explain_main_f_si.out,
     explain_main_fi2apc_i.out, explain_main_fi2ppc_i.out,
     explain_main_fiapc_i.out, explain_main_fiapcc_i.out,
     explain_main_fippc_i.out, explain_main_fippcc_i.out,
     explain_main_fv_i.out, explain_main_vf_h.out, explain_mi.out,
     explain_mscc_f_v.out, explain_mscd_f_v.out, explain_msfc_f_v.out,
     explain_mssc_f_v.out, explain_mstc_f_v.out, explain_msvc_f_v.out,
     explain_mswa_f_v.out, explain_na4i.out, explain_nfi_c.out, explain_ni.out,
     explain_npii-c89.out, explain_npiii-c89.out, explain_nrfi_v-c++.out,
     explain_nrfi_v-c17.out, explain_nrfi_v.out, explain_o_amper2_2rck_b.out,
     explain_o_amper2_rck_b.out, explain_o_amper_eq_i_rk.out,
     explain_o_amper_eq_rki_rk.out, explain_o_amper_i_i.out,
     explain_o_amper_i_rk.out, explain_o_amper_rcki_k.out,
     explain_o_arrow_star_i_rk.out, explain_o_arrow_star_rki_rk.out,
     explain_o_brackets_2i_i.out, explain_o_brackets_i_i.out,
     explain_o_circ_eq_i_rk.out, explain_o_circ_eq_rki_rk.out,
     explain_o_circ_rcki_k.out, explain_o_comma_i_rk.out,
     explain_o_comma_rcki_k.out, explain_o_comma_rki_rk.out,
     explain_o_eq2_i_b.out, explain_o_eq2_ki_b.out, explain_o_exclam_b.out,
     explain_o_exclam_eq_i_b.out, explain_o_exclam_eq_ki_b.out,
     explain_o_greater2_eq_i_rk.out, explain_o_greater2_eq_rki_rk.out,
     explain_o_greater2_i_k.out, explain_o_greater2_i_rk.out,
     explain_o_greater2_rcki_k.out, explain_o_greater2_rki_rk.out,
     explain_o_greater_eq_rcki_b.out, explain_o_greater_rcki_b.out,
     explain_o_less2_eq_i_rk.out, explain_o_less2_eq_rki_rk.out,
     explain_o_less2_i_k.out, explain_o_less2_i_rk.out,
     explain_o_less2_rcki_k.out, explain_o_less2_rki_rk.out,
     explain_o_less_eq_greater_2rck_i.out, explain_o_less_eq_rcki_b.out,
     explain_o_less_rcki_b.out, explain_o_minus2_rki_rk.out,
     explain_o_minus_eq_i_rk.out, explain_o_minus_eq_rki_rk.out,
     explain_o_minus_i_k.out, explain_o_minus_rcki_k.out,
     explain_o_parens_2i_v.out, explain_o_parens_3i_v.out,
     explain_o_parens_i_v.out, explain_o_percent_eq_i_rk.out,
     explain_o_percent_eq_rki_rk.out, explain_o_percent_i_k.out,
     explain_o_percent_rcki_k.out, explain_o_pipe2_2rck_b.out,
     explain_o_pipe2_rck_b.out, explain_o_pipe_eq_i_rk.out,
     explain_o_pipe_eq_rki_rk.out, explain_o_pipe_i_rk.out,
     explain_o_plus2_rki_rk.out, explain_o_plus_eq_i_rk.out,
     explain_o_plus_eq_rki_rk.out, explain_o_plus_i_k.out,
     explain_o_plus_rcki_k.out, explain_o_slash_eq_i_rk.out,
     explain_o_slash_eq_rki_rk.out, explain_o_slash_rcki_k.out,
     explain_o_star_eq_i_rk.out, explain_o_star_eq_rki_rk.out,
     explain_o_star_i_rk.out, explain_o_star_rcki_k.out, explain_oi.out,
     explain_ovc_udc_i.out, explain_ovo_minus2_i_rk.out,
     explain_ovo_plus2_i_rk.out, explain_p_mssc_f_v.out, explain_pa3a5i.out,
     explain_pa3cpa5i.out, explain_pa3pa5i.out, explain_pa9i.out,
     explain_pati-01.out, explain_pati-02.out, explain_pblv_pi.out,
     explain_pcf_i.out, explain_pcpi.out, explain_pfv_pi.out, explain_pi.out,
     explain_pii-c89.out, explain_piii-c89.out, explain_pmf_i.out,
     explain_pmfii_pk.out, explain_pmi.out, explain_pp_mssc_f_v.out,
     explain_ppi.out, explain_ra3i.out, explain_rgi-c++11.out, explain_rgi.out,
     explain_ri.out, explain_ro_minus2_i_rk.out, explain_ro_plus2_i_rk.out,
     explain_rro_minus2_i_rk.out, explain_rro_plus2_i_rk.out, explain_rtpi.out,
     explain_sic.out, explain_sta2i.out, explain_static_cast_i+.out,
     explain_static_cast_i.out, explain_stf__i.out, explain_sti.out,
     explain_sto_parens_2i_v.out, explain_stxxi.out, explain_tli.out,
     explain_typedef_i.out, explain_typedef_ii32.out,
     explain_typedef_pfc_i.out, explain_typedef_ulz.out, explain_uc.out,
     explain_udc_i.out, explain_udl_c16_i.out, explain_udl_c32_i.out,
     explain_udl_c8_i.out, explain_udl_c_i-01.out, explain_udl_c_i-c.out,
     explain_udl_c_i.out, explain_udl_ld_i.out, explain_udl_pcc16ul_i.out,
     explain_udl_pcc16z_i.out, explain_udl_pcc32ul_i.out,
     explain_udl_pcc32z_i.out, explain_udl_pcc8ul_i.out,
     explain_udl_pcc8z_i.out, explain_udl_pcc_i.out, explain_udl_pccul_i.out,
     explain_udl_pccz_i.out, explain_udl_pccz_ul.out, explain_udl_pcwtul_i.out,
     explain_udl_pcwtz_i.out, explain_udl_ull_i.out, explain_udl_wt_i.out,
     explain_ull.out, explain_unknown_attribute.out, explain_using_a3i.out,
     explain_using_a_mu_i.out, explain_using_pfi_v.out, explain_uw3.out,
     explain_vcpi.out, explain_vo_minus2_i_rk.out, explain_vo_plus2_i_rk.out,
     explain_vpi.out, explain_wt.out, explain_xxi-c.out, explain_xxi.out,
     explain_yi.out, explain_yo_minus2_i_rk.out, explain_yo_plus2_i_rk.out,
     file-explain_i.out, gnu_attributes.out, help.out, include-ok.out,
     integers.out, k_typedef_i_typedef_tn_i.out, retypedef-01.out, set.out,
     set_explicit-ecsu_ecsu.out, set_explicit-int_i.out,
     set_explicit-int_u.out, set_lang.out, set_noexplicit-int.out,
     set_options.out, set_trigraphs.out, show.out, trigraphs.out,
     typedef_fi_v_show.out, typedef_i_pi.out, typedef_pfi_v_show.out,
     using_pfi_v_show_f.out, xupc.out: When explaining gibberish, print types
     in C/C++ (e.g., `int`), not pseudo-English (e.g., `integer`).  Added
     command-line options `--no-english-types` & `-T` and `set` option
     `english-types` to disable printing type names in pseuso-English and
     corresponding `set` option.

2022-12-24  Paul J. Lucas <paul@lucasmail.org>

   * show.out, show.test: Fixed typo in test: s/shoe/show/
   * c_type.c, cast_type_i.out, cast_typedef_i.out,
     declare_+o_eq_rck_rk++delete-c++03.out, declare_a_cd_i.out,
     declare_a_nua_f.out, declare_ac3i.out, declare_cf_v-c.out,
     declare_cnmf_v-c.out, declare_cnmf_v.out, declare_etstf_v.out,
     declare_exsti.out, declare_nri.out, declare_rtf_v-c.out, declare_rti.out,
     define_ai-c17.out, define_eti.out, define_rgi.out, define_sti.out: Not
     printing types in English when there's an error.
   * test/Makefile.am, declare_b.out, declare_b.test: bool tests reduction.
   * cdecl.1, cdecl_keyword.c, literals.c, literals.h, declare_b.out,
     declare_b.test: Added `boolean` and `Boolean` as Engish synonyms for
     `bool`.
   * cdecl.1: Added mention of more C23 features.
   * help.c, help.out: Updated help for C23's .
   * cdecl.1, c_lang.h, set_trigraphs.out, trigraphs.out, set_trigraphs.test,
     trigraphs.test: Trigraphs are no longer supported in C23.
   * c_lang.h, test/Makefile.am, declare_af.out, explain_af-c.out: Added
     support for `auto` as a deduced type in C23.
   * c_ast_check.c, c_lang.h, test/Makefile.am, explain_fel_v-c17.out,
     explain_fel_v.out, explain_fel_v-c17.test, explain_fel_v.test: A `...` is
     now correctly allowed as the only function parameter in C++ as well as
     C23.
   * attribute.h, limits.in.h, stdnoreturn.in.h, gnulib-common.m4: Upgraded
     Gnulib.
   * print.c, util.c, util.h: Moved term-columns code.

2022-12-23  Paul J. Lucas <paul@lucasmail.org>

   * util.c: Eliminated local variable.
   * dam_lev.c: s/malloc/check_realloc/
   * dam_lev.c: Now using a single malloc().
   * dam_lev.c: s/char/void/
   * dam_lev.c: Factored out matrix2_*() functions.

2022-12-22  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, slist.h: Added more ().
   * c_sname.c: Fixed use-after-free bug.
   * c_ast.c: Simplified NULL checks.

2022-12-21  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Added -Wredundant-decls in parser.y.
   * pjl_config.h: Reordering.
   * autocomplete.c: Split out specific_command_keywords().

2022-12-19  Paul J. Lucas <paul@lucasmail.org>

   * types.h: Removed wchar_t.

2022-12-16  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, c_ast_check.c, c_ast_util.c, english.c, types.h:
     s/c_ast_visit_data/user_data/
   * c_ast.h, c_ast_check.c, c_ast_util.c, english.c, types.h: Changed
     c_ast_visit_data_t to be a union to eliminate casting in most cases.

2022-12-13  Paul J. Lucas <paul@lucasmail.org>

   * help.c, help.out: For C89 and earlier, now eliding <declare-option>.
   * help.c, help.out: s/declare-options/declare-option/

2022-12-12  Paul J. Lucas <paul@lucasmail.org>

   * dump.c: Added cast to suppress warning.
   * c_ast.h: Reduced "unused_*" members from 7 total to 6.
   * c_ast.c: Added a static_assert for c_apple_block_ast.

2022-12-11  Paul J. Lucas <paul@lucasmail.org>

   * cdecl_parser.h, types.h: Added missing: #include "pjl_config.h"
   * parser.y: Added ().

2022-12-09  Paul J. Lucas <paul@lucasmail.org>

   * Doxyfile: Reordering.
   * lib/Makefile.am, string.in.h, verify.h, string_h.m4: Updated Gnulib.

2022-12-07  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l, integers.out, integers.test: Digit separators are now supported
     for octal integers.

2022-12-01  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, c_typedef.h, cdecl.c, cli_options.c, cli_options.h, lexer.h,
     lexer.l: Not calling check_atexit( &lexer_cleanup ) only once; added
     at-most-once-checking code to some *_init() functions.
   * lexer.l: Eliminated dynamic memory allocation in parse_int().
   * lexer.l: Fixed Flex URL.
   * color.c: Made comparison explicit.

2022-11-30  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, cdecl-d.out: Simplified _BitInt rules.
   * c_ast_check.c, test/Makefile.am, declare_bi65.out, declare_bi65.test: Now
     check that the maximum number of bits for `_BitInt` is 64.

2022-11-27  Paul J. Lucas <paul@lucasmail.org>

   * did_you_mean.c: Fixed malloc() type.

2022-11-26  Paul J. Lucas <paul@lucasmail.org>

   * c_sglob.c: Added "if ( sglob->pattern != NULL )" check.
   * c_sglob.c, c_sglob.h: Made c_sglob_parse() a bit more robust.
   * parser.y: Using C_LANG_WHICH() more.
   * parser.y: s/!OPT_LANG_IS/UNSUPPORTED/

2022-11-25  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added mention that default is on for "using" option.
   * cdecl.1: Added mention that echo-commands works only when not interactive.
   * c_ast.c: Added static_assert()s.
   * c_ast.c, c_ast.h, c_ast_check.c, c_kind.c, c_kind.h, dump.c, english.c,
     gibberish.c, parser.y, types.h, cdecl-d.out, cdecl-d.test: Made casts be a
     c_kind of K_CAST to eliminate cast_kind from every AST node.
   * gibberish.c: Added assert().

2022-11-24  Paul J. Lucas <paul@lucasmail.org>

   * color.c: Removed extraneous ';'.
   * c_ast_check.c, color.c, dump.c, print.c, slist.c: Changed != to == where
     simpler.

2022-11-23  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.c, color.c, color.h, help.c, parser.y, print.c, prompt.c: Replaced
     color macros with functions; now passing color variable to end color as
     well.

2022-11-20  Paul J. Lucas <paul@lucasmail.org>

   * slist.c: Whitespace.
   * color.c: Added explicit != NULL.

2022-11-19  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l, parser.y, explain_+dtor-error.out: Improved the error message for
     an invalid destructor name, e.g., `S::~T`.
   * c_sname.c, lexer.l: c_sname_parse_impl() now checks that the last 2 scope
     names match when is_dtor is true.

2022-11-15  Paul J. Lucas <paul@lucasmail.org>

   * cdecl_parser.h, lexer.h: Suppressing redundant declaration warning for
     Flex/Bison.

2022-11-14  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Added more compiler warnings.
   * c_type.c, declare_synonyms.out: `[[noreturn]]` is now printed rather than
     `_Noreturn` in C23.
   * c_ast_check.c, c_lang.h: s/EXPLICIT_USER_DEF_CONV/explicit_USER_DEF_CONV/
   * c_ast_check.c: Removed pointless assert().

2022-11-13  Paul J. Lucas <paul@lucasmail.org>

   * help.out, help.test: Now testing help for all languages.
   * help.c, help.out: `_BitInt(<int>)` was added to the help text.
   * cdecl.c: Renamed parameters to match.
   * cdecl.c, cdecl_parser.h, lexer.h, parser.y: Moved declarations for Flex &
     Bison to lexer.h and cdecl_parser.h, respectively.

2022-11-12  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c, test/Makefile.am, cl-exit.out, cl-quit.out, cl-exit.test,
     cl-quit.test: Fixed (hopefully for the last time) the way the program name
     and CLI arguments are parsed.
   * cdecl.c: Simplification.

2022-11-07  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Removed "inline".
   * c_ast.c, c_ast.h, c_ast_check.c, c_ast_util.c, dump.c, english.c,
     gibberish.c, parser.y, cdecl-d.out: Eliminated "as" union descriminator in
     c_ast.
   * c_ast.c, c_ast.h, c_ast_check.c, dump.c, english.c, gibberish.c, parser.y:
     Eliminated "as" union descriminators in c_alignas and c_builtin_ast.
   * configure.ac: Now requiring at least autoconf 2.69 and C11.
   * util.c: Removed unnecessary "noreturn".
   * cdecl.c, cdecl.h, cli_options.c: Removed parameter from is_cdecl() and
     is_cppdecl(); made is_cdecl() local.
   * cdecl.h: Sorted.
   * parser.y, util.h: Eliminated PUTS().
   * cdecl.c, cdecl.h, cli_options.c: Eliminated cdecl_fin.
   * cdecl.1, cdecl.c, cdecl.h, cli_options.c, options.c, options.h, print.c,
     set_options.c, cdecl-h.out: Removed `--interactive` & `-i` options.
   * cdecl.1: Added some missing C++23 types to the manual page.

2022-11-06  Paul J. Lucas <paul@lucasmail.org>

   * strbuf.c: Changed to compare str.

2022-11-05  Paul J. Lucas <paul@lucasmail.org>

   * slist.c: s/FREE/free/
   * slist.c: Simplification.

2022-11-04  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l, parser.y: User-defined conversions in pseudo-English now allow
     "const[ant] eval[uation]", "const[ant] expr[ession]", and "const[ant]
     init[ialization]" for a storage class.

2022-11-02  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Added "no except" to udc_storage_class_english_stid.
   * cdecl.1, cdecl_keyword.c, literals.c, literals.h, parser.y,
     test/Makefile.am, cdecl-d.out, declare_synonyms.out,
     declare_synonyms.test: The following English synonyms have been added:
   * cdecl.1: Added missing `reproducible` and `unsequenced` to the manual
     page.
   * configure.ac, help.c, help.out: Added missing `constexpr` to C23 help.

2022-10-31  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, cdecl-d.out: Added user_defined_conversion_declaration_c.

2022-10-30  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_lang.h, parser.y: Added LANG_enum_BITFIELDS.
   * c_sname.c, c_sname.h, parser.y, slist.h, cdecl-d.out: Added slist_move()
     and c_sname_move() to avoid possible double-free of slist or c_sname
     objects.

2022-10-29  Paul J. Lucas <paul@lucasmail.org>

   * types.h: Sorted.
   * configure.ac: Sorted -W flags.
   * configure.ac, c_ast.h, c_keyword.h, c_kind.h, c_operator.h, c_type.h,
     cdecl_command.h, cdecl_parser.h, red_black.h, set_options.h, types.h: Made
     cdecl compile with -Wpedantic that meant not forward-declaring enums.
   * types.h: Removed unused c_typedef_add_rv_t.

2022-10-27  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, read_line.c: Correct (?) way to check for libraries and
     headers.
   * assert_h.m4, getdelim.m4: Updated Gnulib.

2022-10-26  Paul J. Lucas <paul@lucasmail.org>

   * AUTHORS: Updated.

2022-10-25  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Updated version to 13.0.
   * cdecl.c, test/Makefile.am, __declspec.out, alttokens.out, cdecl-d.out,
     digraphs.out, explain-by-default.out, gnu_attributes.out, help.out,
     set_digraphs.out, set_east-const.out, set_lang.out, set_semicolon.out,
     set_trigraphs.out, show.out, trigraphs.out, xec.out, xupc.out,
     __declspec.test, alttokens.test, cdecl-d.test, digraphs.test,
     gnu_attributes.test, help.test, set_debug.test, set_digraphs.test,
     set_east-const.test, set_lang.test, set_semicolon.test,
     set_trigraphs.test, show.test, trigraphs.test, xec.test, xupc.test:
     Consolidated tests.
   * cdecl.1: Removed "set interactive".
   * set_options.c: Added enabled_args.
   * cdecl.1, cdecl.c, print.c, set_options.c: Now echo commands only when not
     interactive.

2022-10-24  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, cdecl.c, cli_options.c, help.c, options.c, options.h,
     set_options.c, cdecl-h.out, help_options.out, set.out, set_c++.out,
     set_c++03.out, set_c++11.out, set_c++14.out, set_c++17.out, set_c++20.out,
     set_c++23.out, set_c++98.out, set_c11.out, set_c17.out, set_c18.out,
     set_c89.out, set_c90.out, set_c95.out, set_c99.out, set_cknr.out,
     set_digraphs_c89.out, set_explicit-ecsu_ecsu.out, set_explicit-int_i.out,
     set_explicit-int_u.out, set_lang_c++.out, set_noexplicit-int.out,
     set_options.out, set_trigraphs-c++17.out: Added --echo-commands/-O
     command-line options and echo-commands set option.
   * cdecl.1: s/ccsu/ecsu/
   * parser.y: Flipped order of comparison.

2022-10-22  Paul J. Lucas <paul@lucasmail.org>

   * print.c: Removed uncessary `if`.
   * print.c: Fixed the error column when the prompt is disabled.

2022-10-21  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Reorganization.
   * configure.ac: Now checking for readline and curses headers and libries
     only if those features are enabled; also wrapped all `test` arguments in
     quotes.
   * configure.ac, prompt.c: Now doing readline-related stuff only if readline
     was not disabled.
   * c_ast_check.c: Fixed warning.
   * cdecl.1, c_lang.h, test/Makefile.am, explain_efi-c.out,
     explain_efi-c17.out, explain_efi-c.test, explain_efi-c17.test: Fixed-type
     enumerations in C23 are now supported.
   * cdecl.1: Changed to bullets.
   * cdecl.1: Added mention of typeof declations not being supported.

2022-10-20  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_ast_check.c, c_keyword.c, c_lang.h, c_type.c, c_type.h,
     literals.c, literals.h, parser.y, test/Makefile.am, declare_nri.out,
     explain_a_nd_i.out, explain_a_re_f_v.out, explain_a_re_i.out,
     explain_a_us_f_v.out, explain_a_us_i.out, explain_a_nd_i.test,
     explain_a_re_f_v.test, explain_a_re_i.test, explain_a_us_f_v.test,
     explain_a_us_i.test: Added [[reproducible]] and [[unsequenced]] attributes
     for C23.
   * lexer.l, test/Makefile.am, integers.out, integers.test: Digit seperators
     in C23 are now supported.
   * c_type.c: s/LANG_CPP_MIN(20)/LANG_no_unique_address/
   * parser.y: Added UNSUPPORTED().
   * c_lang.h, c_type.c, help.c, test/Makefile.am, declare_b-c17.out,
     declare_b.out, declare_hb.out, declare_lb.out, declare_sib.out,
     declare_ub.out, explain_b.out, explain_hb.out, explain_keywords.out,
     explain_lb.out, explain_sib.out, explain_ub.out, help_english-c.out,
     show_all.out, show_all_predefined.out, show_all_predefined_glob-01.out,
     show_all_typedef.out, show_predefined.out, show_predefined_typedef.out,
     declare_b-c17.test: In C23, `bool` is now used instead of `_Bool`.
   * c_type.c, help.c, test/Makefile.am, help_english-c.out,
     help_english-c17.out, help_english-c17.test: In C23, `thread_local` is now
     used instead of `_Thread_local`.
   * c_lang.h, literals.h, test/Makefile.am, declare_c_al0.out,
     declare_c_al8-c17.out, declare_c_al8.out, declare_c_alpv.out,
     declare_en_al4.out, explain_alrgi.out, declare_c_al8-c17.test,
     explain_alrgi.test: In C23, `alignas`  is now used instead of `_Alignas`.

2022-10-19  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.h: Sorted.
   * autocomplete.c, c_ast_check.c, c_ast_util.h, c_keyword.c, c_lang.h,
     c_type.c, cdecl_command.c, cdecl_keyword.c, gibberish.c, help.c, parser.y,
     print.c, set_options.c: Renamed LANG_XXX macros to use correct
     capitalization for keywords.
   * c_keyword.c, c_lang.h, literals.c, literals.h, parser.y: Now recognize
     `typeof` and `typeof_unqual` C23 keywords.
   * cdecl.1, c_keyword.c, c_lang.h, did_you_mean.c, explain_pcf_i.out,
     explain_th_f_v.out: Added `false` and `true` to C23.
   * c_ast_check.c, explain_xxvi.out: Put type in quotes in error message.
   * cdecl.1, c_ast_check.c, c_lang.h, c_type.c, test/Makefile.am,
     declare_xvi-c.out, declare_xxi-c.out, declare_xxi-c17.out,
     explain_xxi-c.out, explain_xxi-c17.out, explain_xxvi.out,
     declare_xxi-c.test, declare_xxi-c17.test, explain_xxi-c.test,
     explain_xxi-c17.test, explain_xxvi.test: Added `constexpr` to C23.

2022-10-18  Paul J. Lucas <paul@lucasmail.org>

   * AUTHORS, cdecl.1, c_ast.c, c_ast.h, c_ast_check.c, c_keyword.c, c_lang.h,
     c_type.c, c_type.h, dump.c, english.c, gibberish.c, literals.c,
     literals.h, parser.y, test/Makefile.am, cdecl--debug.out, cdecl-d-+i.out,
     cdecl-d-al8i.out, cdecl-d-alli.out, cdecl-d-cmo_exclam__b.out,
     cdecl-d-eni.out, cdecl-d-f2i_pi.out, cdecl-d-f_v.out,
     cdecl-d-faia4iaviaciast6i_v.out, cdecl-d-pmki.out, cdecl-d-udc_i.out,
     cdecl-d-z.out, declare_bi4.out, explain_bi0.out, explain_bi1.out,
     explain_bi4.out, explain_sibi0.out, explain_sibi1.out, explain_sibi2.out,
     explain_sibi4.out, explain_ubi0.out, explain_ubi1.out, explain_ubi4.out,
     declare_bi4.test, explain_bi0.test, explain_bi1.test, explain_bi4.test,
     explain_sibi0.test, explain_sibi1.test, explain_sibi2.test,
     explain_sibi4.test, explain_ubi0.test, explain_ubi1.test,
     explain_ubi4.test: The `_BitInt(N)` type in C23 in now supported.

2022-10-17  Paul J. Lucas <paul@lucasmail.org>

   * test/Makefile.am: Changed naming of block tests from 'b' to 'bl'.
   * c_keyword.c, c_lang.h, c_typedef.c, literals.c, literals.h,
     cdecl--debug.out, cdecl-d-+i.out, cdecl-d-al8i.out, cdecl-d-alli.out,
     cdecl-d-cmo_exclam__b.out, cdecl-d-eni.out, cdecl-d-f2i_pi.out,
     cdecl-d-f_v.out, cdecl-d-faia4iaviaciast6i_v.out, cdecl-d-pmki.out,
     cdecl-d-udc_i.out, cdecl-d-z.out, explain_static_cast_i-c.out,
     explain_tli-c99.out, show_all-c++.out, show_all.out,
     show_all_predefined-c++.out, show_all_predefined.out,
     show_all_predefined_typedef-c++.out, show_all_typedef.out,
     show_predefined-c++.out, show_predefined.out, show_predefined_typedef.out,
     show_predefined_using.out: `nullptr`, `static_assert`, & `thread_local`
     are now also keywords in C23.

2022-10-16  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c, c_ast_check.c, c_keyword.c, c_operator.c, c_sname.c,
     c_type.c, cdecl.c, cdecl_command.c, cdecl_keyword.c, dump.c, english.c,
     gibberish.c, lexer.l, literals.c, literals.h, parser.y: Changed [HL]_XXX
     literals to [HL]_xxx and Y_XXX literals to Y_xxx.

2022-10-15  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added mention of static operator().
   * c_sname.c, cdecl.c, lexer.l, parser.y: Using cast macros more.
   * c_ast_check.c: Added POINTER_CAST.
   * c_ast.h: s/uint64_t/uintmax_t/ for c_ast_visit_data_t.

2022-10-14  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Simplified pc99_func_or_constructor_decl_c code.
   * parser.y: Added free().
   * parser.y: Similified.

2022-10-13  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, did_you_mean.c, red_black_test.c: Reworked *_cmp() functions
     to use their natural pointer types; eliminated test_rb_data_cmp().

2022-10-12  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, cdecl--debug.out, cdecl-d-+i.out, cdecl-d-al8i.out,
     cdecl-d-alli.out, cdecl-d-cmo_exclam__b.out, cdecl-d-eni.out,
     cdecl-d-f2i_pi.out, cdecl-d-f_v.out, cdecl-d-faia4iaviaciast6i_v.out,
     cdecl-d-pmki.out, cdecl-d-udc_i.out, cdecl-d-z.out, show_all-c++.out,
     show_all.out, show_all_predefined-c++.out, show_all_predefined.out,
     show_all_predefined_typedef-c++.out, show_all_typedef.out,
     show_predefined-c++.out, show_predefined_using.out: Added the standard
     C++23 types `std::bfloat16_t`, `std::float128_t`, `std::float16_t`,
     `std::float32_t`, `std::float64_t`, `std::ospanstream`, `std::spanbuf`,
     `std::spanstream`, `std::stacktrace`, `std::unexpect_t`,
     `std::wospanstream`, `std::wspanbuf`, and `std::wspanstream`.

2022-10-11  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, c_typedef.h, parser.y, test/Makefile.am,
     explain_ctor_rcc.out, explain_ctor_rcc.test: Partially fixed "explain C(C
     const&)".

2022-10-10  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_check.c, test/Makefile.am, explain_k_al64.out, explain_k_al64.test:
     Now checking for aligned structs in C.

2022-10-09  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: Eliminated `if`.
   * gibberish.c: Eliminated "space".
   * cdecl_keyword.c: s/CPP_MIN(11)/RVALUE_REFERENCE/ for "rvalue"
     auto-completion.
   * cdecl_keyword.c: `pointer` is now auto-completable.
   * Doxyfile: Added ENABLE_FLEX_DEBUG.
   * Doxyfile, c_ast.c, c_ast.h: unique_id is now used only when
     ENABLE_CDECL_DEBUG.

2022-10-08  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, gibberish.c: s/of_ast/to_ast/ for c_ptr_mbr_ast.
   * c_type.h: Simplified TS_MEMBER_FUNC_ONLY.
   * c_type.h: Defined TS_MAIN_FUNC_CPP in terms of TS_MAIN_FUNC_C.

2022-10-04  Paul J. Lucas <paul@lucasmail.org>

   * slist.c, slist.h: s/slist_at_nocheck_offset/slist_at_nocheck/

2022-10-03  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, assert.in.h, fnmatch.c, fnmatch_loop.c, hard-locale.h,
     intprops-internal.h, mbrtowc.c, mbsinit.c, stdckdint.in.h, stdlib.in.h,
     string.in.h, unistd.in.h, verify.h, wchar.in.h, assert_h.m4, c-bool.m4,
     gnulib-common.m4, gnulib-comp.m4, warn-on-use.m4: Updated Gnulib.

2022-10-02  Paul J. Lucas <paul@lucasmail.org>

   * declare_pmf_pi.out: Fixed expected output.
   * gibberish.c, test/Makefile.am, declare_f_pmpi.out, declare_pmf_pi.out,
     declare_f_pmpi.test, declare_pmf_pi.test: Fixed output of "declare f as
     function returning pointer to member of class C pointer to int" which
     should be "int* C::* f()".

2022-10-01  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.h, parser.y: Now comparing ast pointers directly.

2022-09-30  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c, c_type.h: s/c_tid_is_except/c_tid_is_except_any/
   * Doxyfile, c_ast.h, c_ast_util.c, c_ast_util.h, c_kind.h, english.c,
     gibberish.c, parser.y, test/Makefile.am, declare_enw3-c++.out,
     declare_puw3.out, explain_enw3-c++.out, explain_enw3-c.out,
     declare_enw3-c++.test, explain_enw3-c++.test, explain_enw3-c.test:
     Enumerations in C++ can now be bit fields.

2022-09-28  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c, strbuf.c, util.c, util.h: Made perror_exit_if() back into a
     PERROR_EXIT_IF() macro so it can use unlikely().
   * english.c: Eliminated c_ast_english_cast().

2022-09-26  Paul J. Lucas <paul@lucasmail.org>

   * english.c: s/c_sname_english_impl/c_scope_english/
   * english.c: Eliminated c_ast_english_impl().
   * c_ast.h, c_ast_check.c, c_kind.h, english.c, gibberish.c, parser.y,
     types.h: Added c_bit_field_ast; s/K_ANY_BIT_WIDTH/K_ANY_BIT_FIELD/;
     removed c_bit_width_t.
   * english.c: Added c_ast_visit_english().

2022-09-25  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_check.c, declare_typedef_i_al8.out, explain_al3_c.out,
     explain_alf_i.out, explain_alrgi.out, explain_c_al3.out: Improved the
     location of alignment errors.
   * c_ast_check.c, c_kind.h, english.c, gibberish.c, test/Makefile.am,
     explain_al4_cw3.out, explain_al4_cw3.test: Aligned bit fields are now
     correctly forbidden.

2022-09-24  Paul J. Lucas <paul@lucasmail.org>

   * util.h: Simplified is_1_bit_only_in_set().
   * gibberish.c, test/Makefile.am, define_efi.out, define_efi.test: Fixed
     fixed type `enum` definition.
   * gibberish.c: s/printed_typedef/print_typedef/;
     s/printing_using/print_using/

2022-09-23  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: s/printing_typedef/printed_typedef/
   * gibberish.c: s/msc_call_atid/msc_call_atids/
   * gibberish.c: Eliminated skip_name_for_using flag.
   * gibberish.c: Simplified with is_fixed_enum.

2022-09-22  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Undid previous setting of temp_sname inside DUMP_AST().
   * parser.y: Moved setting of temp_sname inside DUMP_AST().

2022-09-19  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_operator.c: Replaces some uses of INTERNAL_ERR() with assert().

2022-09-17  Paul J. Lucas <paul@lucasmail.org>

   * cli_options.c, red_black_test.c, slist_test.c: Added `const` for array
     parameters.
   * read_line.c, read_line.h: Removed incorrect "static".
   * AUTHORS: Added mention of C++23 explicit object parameters.

2022-09-15  Paul J. Lucas <paul@lucasmail.org>

   * help.c, help_english-c++.out: Added "this" to "store" in English help.
   * src/Makefile.am: Put slist.[ch] back.
   * cdecl.1: Added mention of explicit object parameters.

2022-09-14  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am: Removed incorrect slist.[ch] dependency from
     red_black_test_SOURCES.

2022-09-13  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, declare_frg_v.out, explain_frg_v.out: Fixed implicit `int`
     checking error message
   * c_ast_check.c, c_keyword.c, c_lang.h, c_type.c, c_type.h, parser.y,
     test/Makefile.am, cdecl--debug.out, cdecl-d-cmo_exclam__b.out,
     cdecl-d-f2i_pi.out, cdecl-d-faia4iaviaciast6i_v.out, declare_ftsrk_v.out,
     explain_cftsrk_v.out, explain_ftsrk_v.out, explain_rftsrk_v.out,
     explain_stftsrk_v.out, explain_vftsrk_v.out, declare_ftsrk_v.test,
     explain_cftsrk_v.test, explain_ftsrk_v.test, explain_rftsrk_v.test,
     explain_stftsrk_v.test, explain_vftsrk_v.test: Added preliminary explicit
     object parameter support for C++23.
   * c_keyword.c: s/CPP_MAX(03)/THROW/; s/CPP_MIN(11)/USING_DECLARATION/

2022-09-12  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c: Expanded language shorthands to 3 letters.
   * configure.ac: Changed version to 12.1.
   * c_type.c: Removed incorrect P1 from OK_STORAGE_LANGS.

2022-09-11  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_check.c, c_lang.h, test/Makefile.am, explain_sto_eq_i_v.out,
     explain_sto_parens_2i_v-cpp20.out, explain_sto_parens_2i_v.out,
     explain_sto_eq_i_v.test, explain_sto_parens_2i_v-cpp20.test,
     explain_sto_parens_2i_v.test: Now allow `operator()` to be `static` in
     C++23.
   * c_typedef.c, cdecl--debug.out, cdecl-d-+i.out, cdecl-d-al8i.out,
     cdecl-d-alli.out, cdecl-d-cmo_exclam__b.out, cdecl-d-eni.out,
     cdecl-d-f2i_pi.out, cdecl-d-f_v.out, cdecl-d-faia4iaviaciast6i_v.out,
     cdecl-d-pmki.out, cdecl-d-udc_i.out, cdecl-d-z.out, show_all-c++.out,
     show_all.out, show_all_predefined-c++.out, show_all_predefined.out,
     show_all_predefined_typedef-c++.out, show_all_typedef.out,
     show_predefined-c++.out, show_predefined_using.out: Added
     `std::bernoulli_distribution` and `std::random_device`.

2022-09-10  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, explain_a0i.out, explain_a4v.out, explain_a5fd_i.out,
     explain_ac9i.out, explain_ast9i.out, explain_b_ai.out, explain_f_ai.out:
     Now recognizing `static` or `const` array declarations outside of function
     parameters allowing more specific error reporting.

2022-09-06  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c, test/Makefile.am, declare_fac_v.out, declare_facv_v.out,
     declare_fac_v.test: Array parameters no longer have a space wrongly
     emitted after `const`.

2022-08-29  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_check.c: s/which_lang_id/which_lang_ids/
   * c_ast_check.c, explain_studc_i.out: Now using error_kind_not_tid().

2022-08-28  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_check.c, declare_b_f_i.out, declare_f_f_i.out,
     explain_ff_i_v-02.out: The "function returning function" error now has "
     is illegal".

2022-08-22  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, c_ast_check.c, c_lang.h, test/Makefile.am,
     explain_epudc_b-c++03.out, explain_epudc_b.out,
     explain_epudc_b-c++03.test, explain_epudc_b.test: Now correctly allowing
     explicit user-defined conversion operators in C++11 and later.

2022-08-16  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, cdecl.c, lexer.l, util.c, util.h: Added check_atexit().
   * lexer.l: Added lexer_cleanup().

2022-08-07  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Removed erroneous "explain"; added ';'.

2022-08-07  Jan Engelhardt <jengelh@inai.de>

   * c_ast.h, c_ast_util.h, c_lang.h, c_operator.h, c_sglob.h, c_sname.h,
     c_type.h, literals.h, red_black.h, slist.h, strbuf.h, util.h: build:
     resolve compile failure due to improper attribute syntax (#23)

2022-08-06  Paul J. Lucas <paul@lucasmail.org>

   * AUTHORS, cdecl.1: s/C2X/C23/

2022-07-26  Paul J. Lucas <paul@lucasmail.org>

   * util.h: Using MAYBE_UNUSED.

2022-07-24  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: s/last_lineno/prev_lineno/
   * lexer.l: Added _Exit().
   * util.h: Added missing NODISCARD.

2022-07-22  Paul J. Lucas <paul@lucasmail.org>

   * util.c: Added #include <stdnoreturn.h>

2022-07-21  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_check.c, c_keyword.c, c_keyword.h, c_lang.c, c_lang.h, c_type.c,
     help.c, literals.c, literals.h, parser.y, cast_pfx_i.out, cdecl-xx.out,
     declare_fkr_pi.out, declare_pfkr_i.out, explain_fkr_pi.out,
     explain_nrfi_v.out, help_options.out, set.out, set_explicit-int_i.out,
     set_explicit-int_u.out, set_noexplicit-int.out, set_options.out:
     s/C2X/C23/
   * util.c, util.h: check_realloc()'s size _must_ be > 0.

2022-07-20  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, c_keyword.c, test/Makefile.am, run_test.sh,
     ac-cast_into.exp, ac-declare.exp, ac-explain.exp, ac-help.exp, ac-set.exp,
     ac-show.exp: Tests for autocompletion.

2022-07-18  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c: Now making weird program names just default to being the same as
     cdecl.

2022-07-17  Paul J. Lucas <paul@lucasmail.org>

   * cdecl_command.c: Simplification.
   * autocomplete.c, cdecl_command.c, cdecl_command.h, cdecl_keyword.c: `exit`
     is no longer auto-completable.

2022-07-16  Paul J. Lucas <paul@lucasmail.org>

   * c_keyword.c, c_operator.c, c_operator.h, parser.y,
     cdecl-d-cmo_exclam__b.out: Can now overload the co_await operator.
   * c_ast.h, c_ast_check.c, declare_co_exclam_k_b.out,
     declare_nmo_amper_i_i.out, declare_o_arrow_rk_pk.out,
     declare_o_brackets_2i_i-c++20.out, declare_o_exclam_2i.out,
     declare_o_minus2_d_rk.out, declare_o_minus_iel_i.out,
     declare_o_oexclam_k_b.out, declare_o_plus2_d_rk.out,
     declare_o_plus_iel_i.out, declare_ro_exclam_k_b.out,
     declare_rro_exclam_k_b.out, declare_vo_exclam_k_b.out,
     declare_yo_exclam_k_b.out, explain_co_exclam_k_b.out,
     explain_co_less_i_b++default.out, explain_main_f4i_i.out,
     explain_main_fkr_i.out, explain_o_brackets_2i_i-c++20.out,
     explain_o_exclam_2i.out, explain_o_minus2_d_rk.out,
     explain_o_minus_iel_i.out, explain_o_plus2_d_rk.out,
     explain_o_plus_iel_i.out, explain_ov_o_exclam_k_b.out,
     explain_ro_exclam_k_b.out, explain_rro_exclam_k_b.out,
     explain_vo_exclam_k_b.out, explain_yo_exclam_k_b.out: Better error
     location for parameter-related errors.
   * c_typedef.c, cdecl--debug.out, cdecl-d-+i.out, cdecl-d-al8i.out,
     cdecl-d-alli.out, cdecl-d-cmo_exclam__b.out, cdecl-d-eni.out,
     cdecl-d-f2i_pi.out, cdecl-d-f_v.out, cdecl-d-faia4iaviaciast6i_v.out,
     cdecl-d-pmki.out, cdecl-d-udc_i.out, cdecl-d-z.out, show_all-c++.out,
     show_all.out, show_all_predefined-c++.out, show_all_predefined.out,
     show_all_predefined_typedef-c++.out, show_all_typedef.out,
     show_predefined-c++.out, show_predefined_using.out: Fixed spelling of
     `bad_typeid`; added `source_location`, `type_index`, and `type_info`.

2022-07-15  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_check.c: In C++20 and later, now warning if function parameters or
     return types are volatile.
   * c_ast_check.c, explain_a_nd_f_v.out, explain_nrfi_v.out: Change loc to
     ret_ast.
   * pjl_config.h: s/__attribute__((unused))/MAYBE_UNUSED/

2022-07-13  Paul J. Lucas <paul@lucasmail.org>

   * help.c: s/EPRINTF/EPUTS/
   * pjl_config.h: Removed __has_attribute.
   * autocomplete.c, c_ast.c, c_ast.h, c_ast_check.c, c_ast_check.h,
     c_ast_util.c, c_ast_util.h, c_keyword.h, c_kind.h, c_lang.h, c_operator.c,
     c_operator.h, c_sglob.c, c_sglob.h, c_sname.c, c_sname.h, c_type.c,
     c_type.h, c_typedef.c, c_typedef.h, cdecl.c, cdecl.h, cdecl_command.c,
     cdecl_command.h, cdecl_keyword.h, cli_options.c, cli_options.h, color.c,
     color.h, dam_lev.c, dam_lev.h, did_you_mean.c, did_you_mean.h, dump.c,
     english.c, english.h, gibberish.c, gibberish.h, help.c, lexer.h, lexer.l,
     literals.h, options.h, parser.y, pjl_config.h, print.c, print.h, prompt.c,
     read_line.h, red_black.c, red_black.h, set_options.c, set_options.h,
     slist.h, strbuf.c, strbuf.h, util.c, util.h: Now using GNULib FALLTHROUGH
     and NODISCARD.

2022-07-12  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, c_ast_check.c, c_operator.h, dump.c, parser.y: s/C_FN_*/C_FUNC_*/

2022-07-11  Paul J. Lucas <paul@lucasmail.org>

   * red_black_test.c: Added complete tree validation.
   * red_black.c, red_black.h: s/root/fake_root/; removed fake_root invariants;
     removed right child check from rb_is_empty(); removed rb_tree_first().

2022-07-10  Paul J. Lucas <paul@lucasmail.org>

   * red_black.c: More clean-up.
   * red_black.c: s/is_full/is_node_full/
   * c_typedef.c: Now using struct literal.
   * c_typedef.c: Renaming.
   * red_black.c: Added child_dir() and RB_PARENT_CHILD().

2022-07-09  Paul J. Lucas <paul@lucasmail.org>

   * red_black.c: Fixed apparent mis-transcription of code.
   * red_black.c: Renaming.
   * red_black.c: Added rb_tree_insert_repair().

2022-07-08  Paul J. Lucas <paul@lucasmail.org>

   * red_black.h, red_black_test.c: s/rb_tree_is_empty/rb_tree_empty/
   * read_line.c, read_line.h: char const *const prompts[static const 2]
   * strbuf.c, strbuf.h: Moved header.
   * lines.sh: Added lines.sh script to compare current and Hansen's cdecl.

2022-07-05  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Changed version to 12.0.
   * string.in.h, wchar.in.h: Updated GnuLib.
   * cdecl.c, cdecl.h, cdecl_command.c, cdecl_command.h, cli_options.c: Fixed
     when cdecl was invoked as `cast`, `declare`, or `explain`, or with a name
     that isn't a command without command-line arguments.

2022-07-04  Paul J. Lucas <paul@lucasmail.org>

   * cl-cast_i.test, cl-declare_i.test, cl-explain_i.test: Removed empty "here"
     documents.
   * cdecl_command.c: Allowing "include" as first argument.
   * cdecl.1: s/C++/C++98/
   * cdecl.1: Better explanation of scope-e.
   * cdecl.1: Formatting.

2022-07-03  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Better formatting.
   * cdecl.1: Added note for "include".
   * cdecl.1: Replaced commands with "see Commands".
   * lexer.l, parser.y, include-err-01.out, include-err-01.test,
     include-ok-nested-01.test, include-ok.test, include-too_many_files.test,
     include-unquoted.test: Converted new tests to new format.
   * cdecl-d-cmo_exclam__b.out, declare_+o_eq_rck_rk++default-c++03.out,
     declare_+o_eq_rck_rk++delete-c++03.out, declare_co_exclam_k_b.out,
     declare_fmo_star_rk_rk.out, declare_mo_arrow_i.out,
     declare_nmo_arrow_rk_pk.out, declare_nmo_brackets_rcki_v.out,
     declare_nmo_eq_rki_rk.out, declare_nmo_parens_rck_v.out,
     declare_o_arrow_i.out, declare_o_arrow_rk_pk.out,
     declare_o_colon2_rk_rk.out, declare_o_dot_k.out,
     declare_o_dot_star_rk_rk.out, declare_o_less_eq_greater_2rck_a-c++17.out,
     declare_o_minus2_d_rk.out, declare_o_minus2_rkd_rk.out,
     declare_o_oexclam_k_b.out, declare_o_plus2_d_rk.out,
     declare_o_plus2_rkd_rk.out, declare_o_qmark_colon_k2i_i.out,
     declare_ro_exclam_k_b.out, declare_rro_exclam_k_b.out,
     declare_udc_a4i.out, declare_vo_exclam_k_b.out, declare_yo_exclam_k_b.out,
     define_ns_c_ns_c.out, en_ns_c.out,
     explain_+co_eq2_rck_b++default-cpp17.out,
     explain_+o_eq_rck_rk++default-02.out, explain_+o_eq_rck_rk++delete-02.out,
     explain_+o_exclam_eq_rck_rk++delete.out, explain_attda2i.out,
     explain_cmo_less_eq_greater_rck_i++default.out, explain_co_exclam_k_b.out,
     explain_co_less_rck_i++default.out, explain_f_typedef_ai.out,
     explain_fo_eq2_crki_b++default.out, explain_fo_eq2_crkk_b++default.out,
     explain_fo_eq2_crkrk_b++default.out, explain_fo_eq2_icrk_b++default.out,
     explain_fo_eq2_ik_b++default.out, explain_fo_eq2_kcrk_b++default.out,
     explain_fo_eq2_ki_b++default.out, explain_fo_eq2_rkcrk_b++default.out,
     explain_fo_less_eq_greater_2rck_i++default.out,
     explain_fo_plus_2crk_b++default.out, explain_ktnk.out,
     explain_o_eq_rck_v++default.out, explain_o_less_2rck_b++default.out,
     explain_o_less_rck_b++default.out, explain_o_minus2_d_rk.out,
     explain_o_minus2_rkd_rk.out, explain_o_plus2_d_rk.out,
     explain_o_plus2_rkd_rk.out, explain_o_plus_kel.out,
     explain_o_qmark_colon_k2i_i.out, explain_ov_o_exclam_k_b.out,
     explain_p_typedef_ri.out, explain_ro_exclam_k_b.out,
     explain_rro_exclam_k_b.out, explain_rttdi.out, explain_udc_a4i.out,
     explain_vo_exclam_k_b.out, explain_yo_exclam_k_b.out, k_declare_i.out,
     k_explain_ai.out, k_explain_b_i.out, k_explain_f_i.out, k_explain_i.out,
     ns_+typedef_i-c++14.out, ns_c_ns_c.out, typedef_cv_explain_ftd_v.out,
     typedef_v_explain_v.out, run_test.sh, 2c_typedef_i.test,
     2k_typedef_i.test, c_ns_c.test, cast_+i.test, cast_a3i.test,
     cast_bii_d.test, cast_ci.test, cast_constant.test, cast_cpa3cpa5i.test,
     cast_cpa3pa5i.test, cast_cpa9ci.test, cast_cpa9i.test, cast_cpbv_pi.test,
     cast_cpcpi.test, cast_cpfv_pi.test, cast_cpi.test, cast_cppi.test,
     cast_cvpi.test, cast_f_i.test, cast_ll.test, cast_pa3cpa5i.test,
     cast_pa3pa5i.test, cast_pa9i.test, cast_pbv_pi.test, cast_pci.test,
     cast_pcpi.test, cast_pf_i-01.test, cast_pf_i-02.test,
     cast_pfi_i-cknr.test, cast_pfii_i.test, cast_pfkr_i-c17.test,
     cast_pfkr_i-cknr.test, cast_pfv_pi.test, cast_pfx_i.test, cast_pi.test,
     cast_pmi.test, cast_ppi.test, cast_rgi.test, cast_sic.test, cast_sii.test,
     cast_sill.test, cast_type_i.test, cast_typedef_i.test, cast_u.test,
     cast_uc.test, cast_ui.test, cast_ull.test, cast_vcpi.test, cast_vpi.test,
     cdecl--debug.test, cdecl--kolor.test, cdecl--no-semicolon.test,
     cdecl--no-typedefs.test, cdecl-23.test, cdecl-9.test, cdecl-Ii.test,
     cdecl-Iiu.test, cdecl-Il.test, cdecl-Ill.test, cdecl-Ilull.test,
     cdecl-Is.test, cdecl-Iu.test, cdecl-Iui.test, cdecl-Iul,ll.test,
     cdecl-Iul.test, cdecl-Iull.test, cdecl-Iulll.test, cdecl-Iulull.test,
     cdecl-Ius.test, cdecl-Ix.test, cdecl-Sx.test, cdecl-d-+i.test,
     cdecl-d-al8i.test, cdecl-d-alli.test, cdecl-d-cmo_exclam__b.test,
     cdecl-d-eni.test, cdecl-d-f2i_pi.test, cdecl-d-f_v.test,
     cdecl-d-faia4iaviaciast6i_v.test, cdecl-d-pmki.test, cdecl-d-udc_i.test,
     cdecl-d-z.test, cdecl-h.test, cdecl-k.test, cdecl-knever.test,
     cdecl-kxxx.test, cdecl-s.test, cdecl-t.test, cdecl-xx.test, ci.test,
     cl-cast_i.test, cl-declare_i.test, cl-explain_i.test, const_cast_+pi.test,
     const_cast_i-c++03.test, const_cast_i.test, const_cast_pi-c.test,
     const_cast_pi.test, declare_+++i.test, declare_++i-c.test,
     declare_++i.test, declare_+ctor-error.test, declare_+dtor.test,
     declare_+f_v.test, declare_+o_delete_a_pv_v.test,
     declare_+o_delete_pv_v.test, declare_+o_eq_rck_rk++default-c++03.test,
     declare_+o_eq_rck_rk++default.test,
     declare_+o_eq_rck_rk++delete-c++03.test,
     declare_+o_eq_rck_rk++delete.test, declare_+o_new_a_z_pv.test,
     declare_+o_new_z_pv.test, declare_+udc_i.test, declare_+udl_c_i.test,
     declare_0f_v-c.test, declare_0f_v.test, declare_2+f_v.test,
     declare_2a4i.test, declare_2i.test, declare_2pfid_pc.test,
     declare_2pfid_pcc.test, declare_2pfid_v.test, declare_2pi.test,
     declare_a.test, declare_a3a5a7i.test, declare_a3a5i.test,
     declare_a3a5pfv_i.test, declare_a3a5pfv_pi.test,
     declare_a3a5pfv_ppa7a9i.test, declare_a3a5pfv_ppa7a9pc.test,
     declare_a3a5pfv_ppa7i.test, declare_a3a5pfv_ppa7pi.test,
     declare_a3a5pfv_ppi.test, declare_a3pfv_i.test, declare_a3ppfv_i.test,
     declare_a9cpi.test, declare_a9i.test, declare_a9pi.test,
     declare_a_cd_fa_cd_i_i.test, declare_a_cd_fi_i.test, declare_a_cd_i.test,
     declare_a_dep_a_mu_i.test, declare_a_dep_f_v.test,
     declare_a_mu_f_v-01.test, declare_a_mu_f_v-02.test,
     declare_a_mu_i-01.test, declare_a_mu_i-02.test, declare_a_nd_f_i-01.test,
     declare_a_nd_f_i-02.test, declare_a_nua_f.test, declare_ac3i.test,
     declare_af-c++.test, declare_af.test, declare_ai-c++11.test,
     declare_ai.test, declare_alttokens_dtor.test,
     declare_alttokens_o_amper2_rck_b.test,
     declare_alttokens_o_amper_eq_rki_rk.test,
     declare_alttokens_o_amper_rcki_k.test,
     declare_alttokens_o_circ_eq_i_rk.test,
     declare_alttokens_o_circ_rcki_k.test,
     declare_alttokens_o_exclam_eq_rcki_b.test,
     declare_alttokens_o_exclam_rck_b.test,
     declare_alttokens_o_pipe2_rck_b.test,
     declare_alttokens_o_pipe_2rck_k.test,
     declare_alttokens_o_pipe_eq_i_rk.test, declare_alttokens_o_pipe_i_rk.test,
     declare_alttokens_o_tilde_k.test, declare_alttokens_rri.test,
     declare_ari.test, declare_ast3i.test, declare_ati-01.test,
     declare_ati-02.test, declare_ati-c++20.test, declare_atpi-01.test,
     declare_avi.test, declare_b-c++.test, declare_b-c89.test, declare_b.test,
     declare_b_ai.test, declare_b_f_i.test, declare_bii_d.test,
     declare_c-c.test, declare_c.test, declare_c16-c++03.test,
     declare_c16-c99.test, declare_c32-c++03.test, declare_c32-c99.test,
     declare_c8-c++17.test, declare_c_al0-c++.test, declare_c_al0.test,
     declare_c_al8-c++.test, declare_c_al8.test, declare_c_alpv.test,
     declare_cdecl_f.test, declare_cf_v-c.test, declare_cf_v.test,
     declare_ci-ec.test, declare_ci-knr.test, declare_ci.test,
     declare_ck-ec.test, declare_ck.test, declare_ck2-ec.test,
     declare_ck2.test, declare_cnmf_v-c.test, declare_cnmf_v.test,
     declare_co_exclam_k_b.test, declare_config_tdu.test,
     declare_constant.test, declare_cpa3cpa5i.test, declare_cpa3pa5i.test,
     declare_cpa9ci.test, declare_cpa9i.test, declare_cpbv_pi.test,
     declare_cpcpi.test, declare_cpfv_pi.test, declare_cpi.test,
     declare_cpmi.test, declare_cppi.test, declare_crf_v.test,
     declare_cri.test, declare_crrf_v.test, declare_ctor.test,
     declare_ctor_i.test, declare_cu.test, declare_cvpi.test, declare_cxd.test,
     declare_cxf.test, declare_cz-ec.test, declare_cz.test,
     declare_digraphs_a9i.test, declare_digraphs_nrfi_v-c++.test,
     declare_dtor.test, declare_ecf_v.test, declare_efi.test,
     declare_en-c++.test, declare_en-knr.test, declare_en.test,
     declare_en_al4.test, declare_enc-c.test, declare_enc.test,
     declare_enk.test, declare_epctor_i.test, declare_epf.test,
     declare_eta2i.test, declare_etstf_v.test, declare_exf_i.test,
     declare_exi.test, declare_exsti.test, declare_f+k_v.test, declare_f.test,
     declare_f_ai.test, declare_f_f_i.test, declare_f_pi.test,
     declare_f_pmi.test, declare_fa_cd_i_i.test, declare_fa_dep_i_v.test,
     declare_fa_mu_i_v-01.test, declare_fa_mu_i_v-02.test,
     declare_fa_nd_i_v-01.test, declare_fa_nd_i_v-02.test,
     declare_facst3_v.test, declare_facv_v.test, declare_fast3_v.test,
     declare_fastc3_v.test, declare_fav_v.test, declare_fccel_v-01.test,
     declare_fccel_v-02.test, declare_fccel_v-03.test, declare_fcf.test,
     declare_fco_exclam_b.test, declare_ff_i_v.test, declare_ff_v-c.test,
     declare_ff_v.test, declare_fid_v.test, declare_fiiv_v.test,
     declare_fipfi_v_pfi_v.test, declare_fiv_v.test, declare_fixiy_v.test,
     declare_fkr_pi-c17.test, declare_fkr_pi-cknr.test, declare_fkr_pi.test,
     declare_fmf_v.test, declare_fmo_star_rk_rk.test, declare_fn.test,
     declare_fpc_pi.test, declare_fpci_pi.test, declare_fpfc_i_d.test,
     declare_frg_v-c89.test, declare_frg_v.test, declare_frgi_v.test,
     declare_frri_v.test, declare_fsti_v.test, declare_fuw3_v.test,
     declare_fv_pa3a5i.test, declare_fv_pa3a5pi.test, declare_fv_pa3i.test,
     declare_fv_pa3pi.test, declare_fv_v.test, declare_fvx_v.test,
     declare_gau.test, declare_grtpi.test, declare_hb.test, declare_hc.test,
     declare_hc16.test, declare_hc32.test, declare_hc8.test, declare_hd.test,
     declare_hf.test, declare_hl.test, declare_hll.test, declare_hv.test,
     declare_hwt.test, declare_i+++.test, declare_if_v.test,
     declare_ii-c++.test, declare_ii.test, declare_imd.test, declare_imf.test,
     declare_k.test, declare_lb.test, declare_lc.test, declare_lc16.test,
     declare_lc32.test, declare_lc8.test, declare_ld-knr.test, declare_ld.test,
     declare_lf-c.test, declare_lf.test, declare_ll-c89.test,
     declare_ll-knr.test, declare_ll.test, declare_lll.test, declare_lv.test,
     declare_lwt.test, declare_mi.test, declare_mo_amper2_rck_b.test,
     declare_mo_amper_eq_i_rk.test, declare_mo_amper_i_rk.test,
     declare_mo_amper_pk.test, declare_mo_arrow_i.test,
     declare_mo_arrow_pk.test, declare_mo_arrow_star_i_rk.test,
     declare_mo_brackets_i_i.test, declare_mo_circ_eq_i_rk.test,
     declare_mo_comma_i_rk.test, declare_mo_exclam_b.test,
     declare_mo_exclam_eq_i_b.test, declare_mo_greater2_eq_i_rk.test,
     declare_mo_greater2_i_k.test, declare_mo_greater_eq_rcki_b.test,
     declare_mo_less2_eq_i_rk.test, declare_mo_less2_i_k.test,
     declare_mo_less_eq_rcki_b.test, declare_mo_minus_eq_i_rk.test,
     declare_mo_minus_i_k.test, declare_mo_percent_eq_i_rk.test,
     declare_mo_percent_i_k.test, declare_mo_pipe2_rck_b.test,
     declare_mo_pipe_eq_i_rk.test, declare_mo_pipe_i_rk.test,
     declare_mo_plus_eq_i_rk.test, declare_mo_plus_i_k.test,
     declare_mo_slash_eq_i_rk.test, declare_mo_star_eq_i_rk.test,
     declare_mo_star_i_rk.test, declare_mo_star_rk.test,
     declare_mo_tilde_k.test, declare_n.test, declare_nmo_amper2_2rck_b.test,
     declare_nmo_amper_eq_rki_rk.test, declare_nmo_amper_i_i.test,
     declare_nmo_amper_rcki_k.test, declare_nmo_amper_rk_pk.test,
     declare_nmo_arrow_rk_pk.test, declare_nmo_arrow_star_rki_rk.test,
     declare_nmo_brackets_rcki_v.test, declare_nmo_circ_rcki_k.test,
     declare_nmo_comma_rki_rk.test, declare_nmo_eq_rki_rk.test,
     declare_nmo_exclam_eq_ki_b.test, declare_nmo_exclam_rck_b.test,
     declare_nmo_greater2_rcki_k.test, declare_nmo_greater_eq_rcki_b.test,
     declare_nmo_greater_rcki_b.test, declare_nmo_less2_eq_rki_rk.test,
     declare_nmo_less2_rcki_k.test, declare_nmo_less_eq_rcki_b.test,
     declare_nmo_less_rcki_b.test, declare_nmo_minus2_rki_rk.test,
     declare_nmo_minus_eq_rki_rk.test, declare_nmo_minus_rcki_k.test,
     declare_nmo_parens_rck_v.test, declare_nmo_percent_eq_rki_rk.test,
     declare_nmo_percent_rcki_k.test, declare_nmo_pipe2_2rck_b.test,
     declare_nmo_pipe_eq_rki_rk.test, declare_nmo_plus2_rki_rk.test,
     declare_nmo_plus_eq_rki_rk.test, declare_nmo_plus_rcki_k.test,
     declare_nmo_slash_eq_rki_rk.test, declare_nmo_slash_rcki_k.test,
     declare_nmo_star_eq_rki_rk.test, declare_nmo_star_rck_k.test,
     declare_nmo_star_rcki_k.test, declare_nmo_tilde_rck_k.test,
     declare_nrfi_v-01-c++.test, declare_nrfi_v-01-c17.test,
     declare_nrfi_v-02-c++.test, declare_nrfi_v-02-c17.test,
     declare_nrfi_v-03-c++.test, declare_nrfi_v-03-c17.test, declare_nri.test,
     declare_ntf.test, declare_nxf.test, declare_o2++_exclam_b.test,
     declare_o_amper2_2rck_b.test, declare_o_amper2_rck_b.test,
     declare_o_amper_2rck_k.test, declare_o_amper_eq_i_rk.test,
     declare_o_amper_eq_rki_rk.test, declare_o_amper_i_rk.test,
     declare_o_amper_pk.test, declare_o_amper_rcki_k.test,
     declare_o_arrow_i.test, declare_o_arrow_rk_pk.test,
     declare_o_arrow_star_i_rk.test, declare_o_arrow_star_rki_rk.test,
     declare_o_brackets_2i_i-c++20.test, declare_o_brackets_2i_i.test,
     declare_o_circ_eq_i_rk.test, declare_o_colon2_rk_rk.test,
     declare_o_comma_rki_rk.test, declare_o_delete_a_pv_v.test,
     declare_o_delete_pv_v.test, declare_o_dot_k.test,
     declare_o_dot_star_rk_rk.test, declare_o_eq2_i_b.test,
     declare_o_eq2_ki_b.test, declare_o_exclam_2i.test,
     declare_o_exclam_b.test, declare_o_exclam_eq_i_b.test,
     declare_o_exclam_eq_ki_b.test, declare_o_exclam_rck_b.test,
     declare_o_greater2_eq_i_rk.test, declare_o_greater2_i_k.test,
     declare_o_greater2_rcki_k.test, declare_o_greater_eq_rcki_b.test,
     declare_o_less2_eq_i_rk.test, declare_o_less2_i_k.test,
     declare_o_less2_rcki_k.test, declare_o_less_eq_greater_2rck_a-c++17.test,
     declare_o_less_eq_greater_2rck_a.test, declare_o_less_eq_rcki_b.test,
     declare_o_minus2_d_rk.test, declare_o_minus2_rkd_rk.test,
     declare_o_minus_i_k.test, declare_o_minus_iel_i.test,
     declare_o_new_a_z_pv.test, declare_o_new_z_pv.test,
     declare_o_oexclam_k_b.test, declare_o_parens_2i_v.test,
     declare_o_parens_3i_v.test, declare_o_parens_i_v.test,
     declare_o_parens_v.test, declare_o_percent_eq_i_rk.test,
     declare_o_percent_eq_rki_rk.test, declare_o_percent_i_k.test,
     declare_o_percent_rcki_k.test, declare_o_pipe2_2rck_b.test,
     declare_o_pipe2_rck_b.test, declare_o_pipe_eq_i_rk.test,
     declare_o_pipe_eq_rki_rk.test, declare_o_pipe_i_rk.test,
     declare_o_plus2_d_rk.test, declare_o_plus2_rkd_rk.test,
     declare_o_plus_i_k.test, declare_o_plus_iel_i.test,
     declare_o_qmark_colon_k2i_i.test, declare_o_slash_eq_i_rk.test,
     declare_o_star_eq_i_rk.test, declare_o_star_eq_rki_rk.test,
     declare_o_star_i_rk.test, declare_o_star_rck_k.test,
     declare_o_star_rcki_k.test, declare_o_star_rk.test,
     declare_o_tilde_k.test, declare_o_tilde_rck_k.test,
     declare_ovc_udc_i.test, declare_ovyf.test, declare_p_cdecl_f.test,
     declare_pa3cpa5i.test, declare_pa3pa5i.test, declare_pa9i.test,
     declare_pati-01.test, declare_pbv_pi.test, declare_pci-ec.test,
     declare_pcpi.test, declare_pfkr_i-c17.test, declare_pfkr_i.test,
     declare_pfv_pi.test, declare_pfv_ri.test, declare_pi.test,
     declare_pk.test, declare_pmci.test, declare_pmf_i.test,
     declare_pmf_pc.test, declare_pmf_pk.test, declare_pmi.test,
     declare_pmri.test, declare_ppi.test, declare_prgi.test, declare_pri.test,
     declare_puw3.test, declare_pv-knr.test, declare_ra3i.test,
     declare_rci.test, declare_rcpi.test, declare_ref.test, declare_rf_v.test,
     declare_rgf_v.test, declare_rgi.test, declare_ri.test,
     declare_ro_exclam_k_b.test, declare_rpi.test, declare_rrf_v.test,
     declare_rrgi.test, declare_rro_exclam_k_b.test, declare_rtf_v-c.test,
     declare_rtf_v.test, declare_rti.test, declare_rv.test, declare_sib.test,
     declare_sic-knr.test, declare_sic.test, declare_sic16.test,
     declare_sic32.test, declare_sic8.test, declare_sii-knr.test,
     declare_sii.test, declare_sil-knr.test, declare_sill.test,
     declare_siv.test, declare_siwt.test, declare_sta2i.test,
     declare_stctor.test, declare_stf_v.test, declare_stif_v.test,
     declare_stmi.test, declare_sto_delete_pv_v.test, declare_stxxi.test,
     declare_t.test, declare_th_f_v.test, declare_trigraphs_a9i.test,
     declare_trigraphs_nrfi_v-c++.test, declare_trigraphs_nrfi_v-c++14.test,
     declare_trigraphs_o_circ_eq_i_rk.test,
     declare_trigraphs_o_circ_rcki_k.test,
     declare_trigraphs_o_pipe2_2rck_b.test,
     declare_trigraphs_o_pipe_2rck_k.test,
     declare_trigraphs_o_pipe_eq_i_rk.test, declare_trigraphs_o_tilde_k.test,
     declare_type_2i-c++.test, declare_type_i-c++.test, declare_type_i.test,
     declare_type_pfc_i.test, declare_typedef_i.test,
     declare_typedef_i_al8.test, declare_u.test, declare_ub.test,
     declare_uc.test, declare_uc16.test, declare_uc32.test, declare_uc8.test,
     declare_ud.test, declare_udc_a4i.test, declare_udc_i.test,
     declare_udc_rcc.test, declare_udl_pcci_i.test, declare_uf.test,
     declare_ui.test, declare_ull.test, declare_uv.test, declare_uw3.test,
     declare_uwt.test, declare_uz.test, declare_v+f_v.test, declare_v.test,
     declare_vcpi.test, declare_vdtor.test, declare_vf_v-c.test,
     declare_vf_v.test, declare_vi-knr.test, declare_vo_exclam_k_b.test,
     declare_vovyf.test, declare_vpi.test, declare_vri.test,
     declare_wt-c89.test, declare_wt.test, declare_xici.test,
     declare_xvf_i.test, declare_xvi-c.test, declare_xvi.test,
     declare_xxi-c.test, declare_xxi.test, declare_yf.test, declare_yi.test,
     declare_yo_exclam_k_b.test, declare_z.test, declare_zw3.test,
     declare_zz.test, define_++_i.test, define_++c_i.test, define_++sc_i.test,
     define_2++_i.test, define_ai.test, define_c_int_least32_t.test,
     define_eti.test, define_i.test, define_i_declare_i.test,
     define_i_explain_i.test, define_i_int_least32_t.test,
     define_ins_ns_i.test, define_k_declare_k.test,
     define_k_define_k_explain_k+k.test, define_k_explain_pmki.test,
     define_ns_++c_i.test, define_ns_c_ns_c.test, define_rgi.test,
     define_sti.test, dynamic_cast_+pc.test, dynamic_cast_i.test,
     dynamic_cast_pc-c.test, dynamic_cast_pc.test, dynamic_cast_pi.test,
     dynamic_cast_pk.test, en_ns_c.test,
     explain_+co_eq2_rck_b++default-cpp17.test,
     explain_+co_eq2_rck_b++default.test, explain_+compl_dtor.test,
     explain_+ctor-error.test, explain_+ctor.test, explain_+ctor_i.test,
     explain_+dtor-error.test, explain_+dtor.test, explain_+i-c.test,
     explain_+o_delete_a_pv_v.test, explain_+o_delete_pv_v.test,
     explain_+o_eq2_rcki_b.test, explain_+o_eq_rck_rk++default-01.test,
     explain_+o_eq_rck_rk++default-02.test,
     explain_+o_eq_rck_rk++delete-01.test,
     explain_+o_eq_rck_rk++delete-02.test, explain_+o_eq_rck_rk.test,
     explain_+o_exclam_eq_rck_rk++delete.test, explain_+o_new_a_z_pv.test,
     explain_+o_new_z_pv.test, explain_+udc_i.test, explain_+udl_c_i.test,
     explain_0dtor.test, explain_0f_v-01.test, explain_0f_v-02.test,
     explain_0f_v-03.test, explain_0f_v-c.test, explain_0o_amper_rk_pk.test,
     explain_0o_minus2_i_rk.test, explain_0o_minus_rk_rk.test,
     explain_0o_plus2_i_rk.test, explain_0o_plus_rk_rk.test,
     explain_0o_star_rk_rk.test, explain_2+dtor.test, explain_2+n.test,
     explain_2gat_cpi.test, explain_2i-redef-c++.test, explain_2i-redef.test,
     explain_2npi.test, explain_2pii-c89.test, explain_a.test,
     explain_a012i.test, explain_a0b10i.test, explain_a0i.test,
     explain_a0xAi-01.test, explain_a0xai-02.test, explain_a3a5a7i.test,
     explain_a3a5i.test, explain_a3a5pfv_i.test, explain_a3a5pfv_pi.test,
     explain_a3a5pfv_ppa7a9i.test, explain_a3a5pfv_ppa7a9pc.test,
     explain_a3a5pfv_ppa7i.test, explain_a3a5pfv_ppa7pi.test,
     explain_a3a5pfv_ppi.test, explain_a3pfv_i.test, explain_a3ppfv_i.test,
     explain_a4f_i.test, explain_a4pii-c89.test, explain_a4v.test,
     explain_a5fd_i.test, explain_a5fd_pi.test, explain_a9cpi.test,
     explain_a9i.test, explain_a9pi.test, explain_a_cd_fa_cd_i_i.test,
     explain_a_cd_fi_i.test, explain_a_cd_i.test, explain_a_dep_a_mu_i-01.test,
     explain_a_dep_a_mu_i-02.test, explain_a_dep_f_v.test,
     explain_a_dep_i.test, explain_a_mu_f_v.test, explain_a_mu_i.test,
     explain_a_mu_k-01.test, explain_a_mu_k-02.test, explain_a_nd_f_v.test,
     explain_a_nua_f.test, explain_a_nua_k-1.test, explain_a_nua_k-2.test,
     explain_a_using_a_mu_i.test, explain_ac9i.test, explain_af-c++11.test,
     explain_af-c.test, explain_ai-c++11.test, explain_ai.test,
     explain_al0_c-c++.test, explain_al0_c.test, explain_al3_c.test,
     explain_al8_c-c++.test, explain_al8_c.test, explain_al8ty_i.test,
     explain_alf_i.test, explain_alpv_c.test, explain_alrgi.test,
     explain_ari.test, explain_ast9i.test, explain_atci.test,
     explain_ati-01.test, explain_ati-02.test, explain_ati-c++20.test,
     explain_atpi-01.test, explain_atpi-02.test, explain_attda2i.test,
     explain_b-c89.test, explain_b.test, explain_b_ai.test, explain_bii_d.test,
     explain_bitand_i.test, explain_c-02.test, explain_c-c.test,
     explain_c.test, explain_c16-c++03.test, explain_c16-c99.test,
     explain_c32-c++03.test, explain_c32-c99.test, explain_c8-c++17.test,
     explain_c_al3.test, explain_c_gat_pi.test, explain_c_gat_vpi.test,
     explain_cast_++pmi.test, explain_cast_a3a5a7i.test,
     explain_cast_a3a5i.test, explain_cast_a3i.test, explain_cast_ai.test,
     explain_cast_ci.test, explain_cast_cpa3cpa5i.test,
     explain_cast_cpa3pa5i.test, explain_cast_cpa9ci.test,
     explain_cast_cpa9i.test, explain_cast_cpbv_pi.test,
     explain_cast_cpcpi.test, explain_cast_cpfv_pi.test, explain_cast_cpi.test,
     explain_cast_cppi.test, explain_cast_cvpi.test, explain_cast_eti.test,
     explain_cast_ic.test, explain_cast_ll.test, explain_cast_lll.test,
     explain_cast_pa3a5i.test, explain_cast_pa3cpa5i.test,
     explain_cast_pa3pa5i.test, explain_cast_pa9i.test,
     explain_cast_pbv_pi.test, explain_cast_pci.test, explain_cast_pcpi.test,
     explain_cast_pf_i.test, explain_cast_pfpci_i.test,
     explain_cast_pfpi_i.test, explain_cast_pfv_pi.test, explain_cast_pi.test,
     explain_cast_pic.test, explain_cast_pmc++i.test, explain_cast_pmi.test,
     explain_cast_ppi.test, explain_cast_rgi.test, explain_cast_ri.test,
     explain_cast_rtpi.test, explain_cast_sti.test,
     explain_cast_typedef_i.test, explain_cast_ull.test,
     explain_cast_vcpi.test, explain_cast_vpi.test, explain_cdecl_f.test,
     explain_cepctor_i.test, explain_cf_v-c.test, explain_cf_v.test,
     explain_ci-ec.test, explain_ci-knr.test, explain_ci.test, explain_ck.test,
     explain_cmo_less_eq_greater_rck_a++default.test,
     explain_cmo_less_eq_greater_rck_i++default.test,
     explain_co_amper_rk_pk.test, explain_co_eq2_crk_b++default.test,
     explain_co_exclam_k_b.test, explain_co_less_i_b++default.test,
     explain_co_less_rck_i++default.test, explain_co_minus2_i_rk.test,
     explain_co_minus_rk_rk.test, explain_co_plus2_i_rk.test,
     explain_co_plus_rk_rk.test, explain_co_star_rk_rk.test,
     explain_co_tilde_k.test, explain_compl_dtor.test, explain_config_tdu.test,
     explain_const_cast_+pi.test, explain_const_cast_pi-c.test,
     explain_const_cast_pi.test, explain_cpa3cpa5i.test, explain_cpa3pa5i.test,
     explain_cpa9ci.test, explain_cpa9i.test, explain_cpbv_pi.test,
     explain_cpcpi.test, explain_cpfv_pi.test, explain_cpi.test,
     explain_cpmci.test, explain_cpmi.test, explain_cppi.test,
     explain_crf_v.test, explain_cri.test, explain_csi.test,
     explain_ctor++default.test, explain_ctor_2i++default.test,
     explain_ctor_i.test, explain_cu.test, explain_cvf_v.test,
     explain_cvpi.test, explain_cxd.test, explain_cxf.test,
     explain_digraphs_a9i-c89.test, explain_digraphs_a9i.test,
     explain_digraphs_nrfi_v-c++.test, explain_dtor++delete.test,
     explain_dtor.test, explain_dynamic_cast_p+c+.test,
     explain_dynamic_cast_pc-c.test, explain_dynamic_cast_pc.test,
     explain_ec_typedef_i.test, explain_ec_using_i.test,
     explain_ecf_v-Rstr-01.test, explain_ecf_v-Rstr-02.test,
     explain_ecf_v-Rstr-03.test, explain_ecf_v.test, explain_efd.test,
     explain_efi-c.test, explain_efi-itself.test, explain_efi.test,
     explain_efui.test, explain_efz.test, explain_en-knr.test, explain_en.test,
     explain_enc.test, explain_enk.test, explain_epctor_i.test,
     explain_epictor_i.test, explain_epnxctor_i.test, explain_eta2i.test,
     explain_etstf_v.test, explain_exf_i.test, explain_exi.test,
     explain_exsti.test, explain_f+_v.test, explain_f+o_exclam__b.test,
     explain_f+udc_i.test, explain_f2i_v-redef.test, explain_f__pf__v.test,
     explain_f__pv.test, explain_f__v-c++03.test, explain_f__v.test,
     explain_f_ai.test, explain_f_cpmi.test, explain_f_k-knr.test,
     explain_f_pi.test, explain_f_pmi.test, explain_f_ppc.test,
     explain_f_rpii-c89.test, explain_f_typedef_ai.test,
     explain_f_v++default.test, explain_f_v++delete.test, explain_f_v__v.test,
     explain_fa_cd_i_i.test, explain_fa_dep_i_v.test, explain_fa_mu_i_v.test,
     explain_fa_nd_i_v.test, explain_fa_v-c++17.test, explain_fa_v.test,
     explain_fac3_v-c++.test, explain_fac_v-1.test, explain_fac_v.test,
     explain_facst3_v.test, explain_facv_v.test, explain_fast3_v-c++.test,
     explain_fast3_v.test, explain_fastc3_v.test, explain_fastv_v.test,
     explain_fav_v-c++.test, explain_fav_v.test, explain_fccel_v.test,
     explain_fctor_i.test, explain_fcv_v.test, explain_fd_i-cknr.test,
     explain_fel_v.test, explain_felcc_v.test, explain_felel_v.test,
     explain_felv_v.test, explain_ff_i_v-01.test, explain_ff_i_v-02.test,
     explain_ff_v-c.test, explain_ff_v.test, explain_fid_v.test,
     explain_fiiv_v.test, explain_fipfi_v_pfi_v.test, explain_fiv_v.test,
     explain_fixiy_v.test, explain_fkr_i-cknr.test, explain_fkr_pi-c17.test,
     explain_fkr_pi.test, explain_fkr_v.test, explain_fkrel_i.test,
     explain_fn.test, explain_fo_eq2_2crk_b++default.test,
     explain_fo_eq2_2k_b++default.test, explain_fo_eq2_crki_b++default.test,
     explain_fo_eq2_crkk_b++default.test, explain_fo_eq2_crkrk_b++default.test,
     explain_fo_eq2_icrk_b++default.test, explain_fo_eq2_ik_b++default.test,
     explain_fo_eq2_kcrk_b++default.test, explain_fo_eq2_ki_b++default.test,
     explain_fo_eq2_rkcrk_b++default.test, explain_fo_exclam__b.test,
     explain_fo_less_eq_greater_2rck_i++default.test,
     explain_fo_plus_2crk_b++default.test, explain_fpa5d_v.test,
     explain_fpc_pi.test, explain_fpcf_i_v.test, explain_fpci_pi.test,
     explain_fpf_pac_i.test, explain_fpf_v_i.test, explain_fpfc_i_d.test,
     explain_frg_v-c89.test, explain_frg_v.test, explain_frgi_v.test,
     explain_frri_v-c++03.test, explain_frri_v.test, explain_fstf_v.test,
     explain_fsti_v.test, explain_fudc_i.test, explain_fuw3_v.test,
     explain_fv_pa3a5i.test, explain_fv_pa3a5pi.test, explain_fv_pa3i.test,
     explain_fv_pa3pi.test, explain_fv_pi.test, explain_fv_v.test,
     explain_fvel_v.test, explain_fvi_v.test, explain_fvv_v.test,
     explain_fvx_v.test, explain_gat_c_gat_vpi.test, explain_gat_cpi.test,
     explain_gat_i-01.test, explain_gat_i-02.test, explain_gat_i-03.test,
     explain_gat_i-04.test, explain_gat_i-05.test, explain_gat_i-06.test,
     explain_gat_i-07.test, explain_gat_i-08.test, explain_gat_i-09.test,
     explain_gau.test, explain_gif_v.test, explain_grtpi.test,
     explain_grtri.test, explain_grtrri.test, explain_hb.test, explain_hc.test,
     explain_hc16.test, explain_hc32.test, explain_hc8.test, explain_hd.test,
     explain_hf.test, explain_hl.test, explain_hll.test, explain_hv.test,
     explain_hwt.test, explain_i+.test, explain_i+w3.test,
     explain_i-itself.test, explain_i-reserved-c++.test,
     explain_i-reserved-c.test, explain_i2+.test, explain_i_i.test,
     explain_i_msds.test, explain_i_pfd_i.test, explain_i_pi.test,
     explain_i_typedef.test, explain_ic.test, explain_ictor_i.test,
     explain_if_v.test, explain_ii-c++.test, explain_ii.test, explain_imd.test,
     explain_imf.test, explain_inx+ctor.test, explain_inx+dtor.test,
     explain_ipi-redef.test, explain_irg.test, explain_ist.test,
     explain_k-itself.test, explain_k.test, explain_k_msds.test,
     explain_kc.test, explain_keywords.test, explain_ki+.test,
     explain_ktnk.test, explain_lb.test, explain_lc.test, explain_lc16.test,
     explain_lc32.test, explain_lc8.test, explain_ld-knr.test, explain_ld.test,
     explain_lf-c.test, explain_lf.test, explain_ll-c89.test,
     explain_ll-knr.test, explain_ll.test, explain_lll.test, explain_lv.test,
     explain_lwt.test, explain_main_f2c_i.test, explain_main_f4i_i.test,
     explain_main_f_i.test, explain_main_f_si.test, explain_main_f_v.test,
     explain_main_fi2apc_i.test, explain_main_fi2ppc_i.test,
     explain_main_fi_i.test, explain_main_fiapc_hi.test,
     explain_main_fiapc_i.test, explain_main_fiapcc_i.test,
     explain_main_fiapci_i.test, explain_main_fic_i.test,
     explain_main_fipc_i.test, explain_main_fippc_i.test,
     explain_main_fippcc_i.test, explain_main_fippi_i.test,
     explain_main_fkr_i.test, explain_main_fv_i.test,
     explain_main_stf_i-c.test, explain_main_vf_h.test, explain_mi.test,
     explain_mo_less_eq_greater_rck_a.test, explain_mscc_f_v.test,
     explain_mscd_f_v.test, explain_msds_i.test, explain_msds_k.test,
     explain_msfc_f_v.test, explain_mssc_f_v.test, explain_mstc_f_v.test,
     explain_msvc_f_v.test, explain_mswa_f_v.test, explain_n.test,
     explain_na4i.test, explain_nfi_c.test, explain_ni.test,
     explain_npii-c89.test, explain_npiii-c89.test,
     explain_nrfi_v-c++-error.test, explain_nrfi_v-c++.test,
     explain_nrfi_v-c17.test, explain_nrfi_v.test, explain_nsc_typedef.test,
     explain_nxf_v.test, explain_nxff_v.test, explain_nxtf_v.test,
     explain_o_amper2_2rck_b.test, explain_o_amper2_rck_b.test,
     explain_o_amper_2rck_k.test, explain_o_amper_eq_i_rk.test,
     explain_o_amper_eq_rki_rk.test, explain_o_amper_i_i.test,
     explain_o_amper_i_rk.test, explain_o_amper_pk.test,
     explain_o_amper_rcki_k.test, explain_o_amper_rk_pk.test,
     explain_o_arrow_i.test, explain_o_arrow_pk.test,
     explain_o_arrow_star_i_rk.test, explain_o_arrow_star_rki_rk.test,
     explain_o_brackets_2i_i-c++20.test, explain_o_brackets_2i_i.test,
     explain_o_brackets_i_i.test, explain_o_circ_eq_i_rk.test,
     explain_o_circ_eq_rki_rk.test, explain_o_circ_rcki_k.test,
     explain_o_comma_i_rk.test, explain_o_comma_rcki_k.test,
     explain_o_comma_rki_rk.test, explain_o_delete__v.test,
     explain_o_delete_a_pv_v.test, explain_o_delete_i_v.test,
     explain_o_delete_pv_i.test, explain_o_delete_pv_v.test,
     explain_o_eq2_i_b.test, explain_o_eq2_ki_b.test,
     explain_o_eq_rck_v++default.test, explain_o_exclam_2i.test,
     explain_o_exclam__b++delete.test, explain_o_exclam_b.test,
     explain_o_exclam_eq_i_b.test, explain_o_exclam_eq_ki_b.test,
     explain_o_exclam_rck_b.test, explain_o_greater2_eq_i_rk.test,
     explain_o_greater2_eq_rki_rk.test, explain_o_greater2_i_k.test,
     explain_o_greater2_i_rk.test, explain_o_greater2_rcki_k.test,
     explain_o_greater2_rki_rk.test, explain_o_greater_eq_rcki_b.test,
     explain_o_greater_rcki_b.test, explain_o_less2_eq_i_rk.test,
     explain_o_less2_eq_rki_rk.test, explain_o_less2_i_k.test,
     explain_o_less2_i_rk.test, explain_o_less2_rcki_k.test,
     explain_o_less2_rki_rk.test, explain_o_less_2rck_b++default.test,
     explain_o_less_eq_greater_2rck_a.test,
     explain_o_less_eq_greater_2rck_i.test,
     explain_o_less_eq_greater_2rck_std_partial_ordering.test,
     explain_o_less_eq_greater_2rck_std_strong_ordering.test,
     explain_o_less_eq_greater_2rck_std_weak_ordering.test,
     explain_o_less_eq_rcki_b.test, explain_o_less_rck_b++default.test,
     explain_o_less_rcki_b.test, explain_o_minus2_d_rk.test,
     explain_o_minus2_rkd_rk.test, explain_o_minus2_rki_rk.test,
     explain_o_minus_2rck_k.test, explain_o_minus_eq_i_rk.test,
     explain_o_minus_eq_rki_rk.test, explain_o_minus_i_k.test,
     explain_o_minus_iel_i.test, explain_o_minus_rcki_k.test,
     explain_o_new_a_z_pv.test, explain_o_new_i_pv.test,
     explain_o_new_z_pv.test, explain_o_new_z_z.test,
     explain_o_new_zrrk_pv.test, explain_o_parens_2i_v.test,
     explain_o_parens_3i_v.test, explain_o_parens_i_v.test,
     explain_o_parens_v.test, explain_o_percent_2rck_k.test,
     explain_o_percent_eq_i_rk.test, explain_o_percent_eq_rki_rk.test,
     explain_o_percent_i_k.test, explain_o_percent_rcki_k.test,
     explain_o_pipe2_2rck_b.test, explain_o_pipe2_rck_b.test,
     explain_o_pipe_2rck_k.test, explain_o_pipe_eq_i_rk.test,
     explain_o_pipe_eq_rki_rk.test, explain_o_pipe_i_rk.test,
     explain_o_plus2__rk.test, explain_o_plus2_d_rk.test,
     explain_o_plus2_rk_rk.test, explain_o_plus2_rkd_rk.test,
     explain_o_plus2_rki_rk.test, explain_o_plus_2rck_k.test,
     explain_o_plus_eq_i_rk.test, explain_o_plus_eq_rki_rk.test,
     explain_o_plus_i_k.test, explain_o_plus_iel_i.test,
     explain_o_plus_kel.test, explain_o_plus_rcki_k.test,
     explain_o_qmark_colon_k2i_i.test, explain_o_slash_2rck_k.test,
     explain_o_slash_eq_i_rk.test, explain_o_slash_eq_rki_rk.test,
     explain_o_slash_rcki_k.test, explain_o_star_2rck_k.test,
     explain_o_star_eq_i_rk.test, explain_o_star_eq_rki_rk.test,
     explain_o_star_i_rk.test, explain_o_star_rck_k.test,
     explain_o_star_rcki_k.test, explain_o_star_rk.test,
     explain_o_tilde_k.test, explain_o_tilde_rck_k.test, explain_oi.test,
     explain_ov_o_exclam_k_b.test, explain_ovc_udc_i.test,
     explain_ovo_amper_rk_pk.test, explain_ovo_minus2_i_rk.test,
     explain_ovo_minus_rk_rk.test, explain_ovo_plus2_i_rk.test,
     explain_ovo_plus_rk_rk.test, explain_ovo_star_rk_rk.test,
     explain_ovyf.test, explain_p_cdecl_v.test, explain_p_mscd_f.test,
     explain_p_msds_i.test, explain_p_mssc_f_v.test, explain_p_typedef_ri.test,
     explain_pa3a5i.test, explain_pa3cpa5i.test, explain_pa3pa5i.test,
     explain_pa9i.test, explain_pati-01.test, explain_pati-02.test,
     explain_pbv_pi.test, explain_pcf_i.test, explain_pcpi.test,
     explain_pfv_pi.test, explain_pi.test, explain_pii-c89.test,
     explain_piii-c89.test, explain_pmf_i.test, explain_pmf_pc.test,
     explain_pmfii_pk.test, explain_pmi-c.test, explain_pmi.test,
     explain_pmrgi.test, explain_pp_mssc_f_v.test, explain_ppi.test,
     explain_pri.test, explain_prri.test, explain_ptdv.test, explain_puw3.test,
     explain_pv-knr.test, explain_ra3i.test,
     explain_reinterpret_cast_pv-c.test, explain_reinterpret_cast_pv.test,
     explain_rf_i.test, explain_rf_v-c++03.test, explain_rf_v.test,
     explain_rgf_v.test, explain_rgi-c++11.test, explain_rgi.test,
     explain_rgk.test, explain_ri-c.test, explain_ri.test,
     explain_ro_amper_rk_pk.test, explain_ro_exclam_k_b.test,
     explain_ro_minus2_i_rk.test, explain_ro_minus_rk_rk.test,
     explain_ro_plus2_i_rk.test, explain_ro_plus_rk_rk.test,
     explain_ro_star_rk_rk.test, explain_rr.test, explain_rrf_v-c++03.test,
     explain_rrf_v.test, explain_rrgi.test, explain_rro_amper_rk_pk.test,
     explain_rro_exclam_k_b.test, explain_rro_minus2_i_rk.test,
     explain_rro_minus_rk_rk.test, explain_rro_plus2_i_rk.test,
     explain_rro_plus_rk_rk.test, explain_rro_star_rk_rk.test,
     explain_rrr-1.test, explain_rrr-2.test, explain_rrrr.test,
     explain_rtf_v-error.test, explain_rtpf_v.test,
     explain_rtpi-c++-error.test, explain_rtpi.test, explain_rttdi.test,
     explain_rttdpi.test, explain_rv.test, explain_sib.test,
     explain_sic-knr.test, explain_sic.test, explain_sic16.test,
     explain_sic32.test, explain_sic8.test, explain_sii-knr.test,
     explain_sil-knr.test, explain_siv.test, explain_siwt.test,
     explain_sta2i.test, explain_static_cast_i+.test,
     explain_static_cast_i-c.test, explain_static_cast_i.test,
     explain_stcf_v.test, explain_stf__i.test, explain_stf_v.test,
     explain_sti.test, explain_stmi.test, explain_sto_delete_pv_v.test,
     explain_sto_new_z_pv.test, explain_strf_v.test, explain_strrf_v.test,
     explain_studc_i.test, explain_stxxi.test, explain_th_f_v-c++14.test,
     explain_th_f_v.test, explain_tli-c99.test, explain_tli.test,
     explain_trigraphs_a9i-c++.test, explain_trigraphs_a9i.test,
     explain_trigraphs_nrfi_v-c++11.test,
     explain_trigraphs_o_circ_eq_i_rk.test,
     explain_trigraphs_o_circ_rcki_k.test,
     explain_trigraphs_o_pipe2_2rck_b.test,
     explain_trigraphs_o_pipe_2rck_k.test,
     explain_trigraphs_o_pipe_eq_i_rk.test, explain_trigraphs_o_tilde_k.test,
     explain_type_i.test, explain_typedef_ci32.test, explain_typedef_i.test,
     explain_typedef_ii32.test, explain_typedef_pfc_i.test,
     explain_typedef_ulz.test, explain_ub.test, explain_uc.test,
     explain_uc16.test, explain_uc32.test, explain_uc8.test, explain_ud.test,
     explain_udc_a4i.test, explain_udc_i.test, explain_udc_rcc.test,
     explain_udl_2c_i.test, explain_udl_3c_i.test, explain_udl__i.test,
     explain_udl_c16_i.test, explain_udl_c32_i.test, explain_udl_c8_i.test,
     explain_udl_c_i-01.test, explain_udl_c_i-c.test, explain_udl_c_i.test,
     explain_udl_ld_i.test, explain_udl_pcc16ul_i.test,
     explain_udl_pcc16z_i.test, explain_udl_pcc32ul_i.test,
     explain_udl_pcc32z_i.test, explain_udl_pcc8ul_i.test,
     explain_udl_pcc8z_i.test, explain_udl_pcc_i.test,
     explain_udl_pccul_i.test, explain_udl_pccz_i.test,
     explain_udl_pccz_ul.test, explain_udl_pcwtul_i.test,
     explain_udl_pcwtz_i.test, explain_udl_piul_i.test, explain_udl_ul_i.test,
     explain_udl_ull_i.test, explain_udl_wt_i.test, explain_uf.test,
     explain_ull.test, explain_unknown_attribute.test, explain_using_a3i.test,
     explain_using_a_mu_i.test, explain_using_pfi_v-c.test,
     explain_using_pfi_v.test, explain_uv.test, explain_uw3.test,
     explain_uwt.test, explain_v+f_v.test, explain_v.test,
     explain_vcompl_dtor.test, explain_vcpi.test, explain_vdtor.test,
     explain_vf_v-c.test, explain_vf_v.test, explain_vi-knr.test,
     explain_vo_amper_rk_pk.test, explain_vo_exclam_k_b.test,
     explain_vo_minus2_i_rk.test, explain_vo_minus_rk_rk.test,
     explain_vo_plus2_i_rk.test, explain_vo_plus_rk_rk.test,
     explain_vo_star_rk_rk.test, explain_vovyf-c.test, explain_vovyf.test,
     explain_vpi.test, explain_vv_o_new_z.test, explain_wt-c89.test,
     explain_wt.test, explain_xif_i.test, explain_xxctor.test,
     explain_xxf_v-c++11.test, explain_xxi-c.test, explain_xxi.test,
     explain_ydtor.test, explain_yf.test, explain_yi.test,
     explain_yo_amper_rk_pk.test, explain_yo_exclam_k_b.test,
     explain_yo_minus2_i_rk.test, explain_yo_minus_rk_rk.test,
     explain_yo_plus2_i_rk.test, explain_yo_plus_rk_rk.test,
     explain_yo_star_rk_rk.test, explain_z.test, explain_zw3.test,
     explain_zz.test, file-cast_i.test, file-cast_x.test, file-declare_i.test,
     file-declare_x.test, file-explain_i.test, file-explain_x.test,
     help-c++.test, help-c.test, help_command-c++.test,
     help_command-c++03.test, help_command-c.test, help_commands-c++.test,
     help_commands-c.test, help_english-c++.test, help_english-c++03.test,
     help_english-c.test, help_english-c89.test, help_english-knr.test,
     help_options.test, i.test, ins_ns_typedef_i.test, ins_typedef_i.test,
     k_declare_i.test, k_explain_ai.test, k_explain_b_i.test,
     k_explain_f_i.test, k_explain_i.test, k_ns_typedef_i.test,
     k_typedef_i-c.test, k_typedef_i_explain_i.test,
     k_typedef_i_typedef_tn_i.test, ns_+typedef_i-c++14.test,
     ns_+typedef_i.test, ns_c_ns_+e.test, ns_c_ns_c.test, ns_c_typedef_i.test,
     ns_ins_ns_typedef_i.test, ns_ins_typedef_i.test, ns_k_typedef_i.test,
     ns_n_typedef_i.test, ns_ns_typedef_i-c++14.test, ns_ns_typedef_i.test,
     ns_typedef_i.test, ns_using_i.test, reinterpret_cast_+pv.test,
     reinterpret_cast_pv-c.test, reinterpret_cast_pv.test,
     reinterpret_cast_v.test, retypedef-01.test, set.test, set_-e-a--st-.test,
     set_alt-tokens.test, set_bison-debug.test, set_c++.test, set_c++03.test,
     set_c++11.test, set_c++14.test, set_c++17.test, set_c++20.test,
     set_c++23.test, set_c++98.test, set_c.test, set_c11.test, set_c17.test,
     set_c18.test, set_c89.test, set_c90.test, set_c95.test, set_c99.test,
     set_cknr.test, set_debug.test, set_digraphs-c89.test, set_digraphs.test,
     set_digraphs_c89.test, set_ea.test, set_east-const.test, set_east.test,
     set_eastconst.test, set_expl.test, set_explain-by-default.test,
     set_explain.test, set_expli.test, set_explicit-ecsu.test,
     set_explicit-ecsu_ecsu.test, set_explicit-ecsu_x.test,
     set_explicit-int.test, set_explicit-int_i.test, set_explicit-int_u.test,
     set_explicit-int_x.test, set_graphs.test, set_knr.test, set_knrc.test,
     set_lang_c++.test, set_lang_xxx.test, set_nobison-debug.test,
     set_nodebug.test, set_nodigraphs.test, set_noexplain-by-default.test,
     set_noexplain.test, set_noexplicit-int.test, set_noexplicit-int_u.test,
     set_nographs.test, set_noprompt.test, set_nosemicolon.test,
     set_nousing-c++.test, set_options.test, set_prompt.test,
     set_prompt_x.test, set_semicolon.test, set_trigraphs-c++.test,
     set_trigraphs-c++17.test, set_trigraphs-cknr.test, set_trigraphs.test,
     set_xxx.test, show_all-c++.test, show_all.test,
     show_all_predefined-c++.test, show_all_predefined.test,
     show_all_predefined_glob-01.test, show_all_predefined_glob-02.test,
     show_all_predefined_glob-03.test, show_all_predefined_glob-04.test,
     show_all_predefined_typedef-c++.test, show_all_typedef.test,
     show_cpf_cpcc_v_using.test, show_cpi_using.test, show_cpmki_using.test,
     show_foo.test, show_int8_t.test, show_int8_t_typedef.test,
     show_predefined-c++.test, show_predefined.test,
     show_predefined_typedef.test, show_predefined_using.test, show_user.test,
     show_user_typedef.test, show_using-c++03.test, static_cast_+i.test,
     static_cast_i-c.test, static_cast_i.test, typedef_ai.test,
     typedef_c_int_least32_t.test, typedef_cv_explain_ftd_v.test,
     typedef_eti.test, typedef_fi_v_show.test, typedef_i+.test, typedef_i.test,
     typedef_i_declare_i.test, typedef_i_explain_i.test,
     typedef_i_int_least32_t.test, typedef_i_pi.test, typedef_iw3.test,
     typedef_pfi_v_show.test, typedef_rgi.test, typedef_sti.test,
     typedef_tni.test, typedef_v.test, typedef_v_explain_v.test, using_ai.test,
     using_c_int_least32_t.test, using_config_i.test, using_eti.test,
     using_f-name_v.test, using_i-c.test, using_i.test, using_i_declare_i.test,
     using_i_explain_i.test, using_i_int_least32_t.test,
     using_pfi_v_show_f.test, using_rgi.test, using_sti.test,
     xec_explain_a.test, xec_explain_ha.test, xec_explain_hr.test,
     xec_explain_la.test, xec_explain_lla.test, xec_explain_llr.test,
     xec_explain_lr.test, xec_explain_r.test, xec_explain_t.test,
     xec_explain_ta.test, xec_explain_ti.test, xec_explain_tr.test,
     xec_explain_tua.test, xec_explain_ua.test, xec_explain_uhta.test,
     xec_explain_uhtr.test, xec_explain_ur.test, xec_explain_uta.test,
     xupc_declare_a2di.test, xupc_declare_dpi.test, xupc_declare_pdi.test,
     xupc_declare_ptdi.test, xupc_declare_rdi.test, xupc_declare_rdpi.test,
     xupc_declare_tdi.test, xupc_explain_da2i.test, xupc_explain_dpi.test,
     xupc_explain_dq+a4i.test, xupc_explain_pdi.test, xupc_explain_ptdi.test,
     xupc_explain_rdi.test, xupc_explain_rdpi.test, xupc_explain_ri.test,
     xupc_explain_tdi.test, update_test.sh: Changed tests to shell "here"
     documents for more flexibility.
   * color.c, lexer.l, util.c, util.h: Now checking for plain file.
   * lexer.l, include-err-01.out, include-too_many_files.out,
     include-unquoted.out: Now including path in error message.

2022-07-02  Paul J. Lucas <paul@lucasmail.org>

   * test/Makefile.am: Test renaming.
   * red_black.c: Sorted functions.
   * red_black.c: Fixed NDEBUG build.
   * red_black.c: s/surrogate->parent/RB_ROOT(tree)/
   * red_black.c: Renaming.
   * red_black.c: s/rb_tree_repair_node/rb_tree_repair/
   * red_black.c, red_black_test.c: Removed rb_tree_check() from
     rb_node_rotate(); more tests.
   * red_black.c: s/rb_tree_rotate_node/rb_node_rotate/
   * red_black.c: Added is_full().
   * red_black.c: s/rb_tree_node_successor/rb_node_next/
   * red_black.c, red_black.h, red_black_test.c: Put nil inside each rb_tree
     the way the original code had it.

2022-07-01  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Now allowing no space between include and ".
   * c_typedef.c, red_black.c, red_black.h, red_black_test.c: Added
     rb_insert_rv_t.
   * red_black.c: Removed assert( rb_nil.color == RB_BLACK );
   * red_black.c, red_black_test.c: Fixed bug from original code that altered
     the nil node.
   * red_black.c: Added assert( rb_nil_is_nil() );

2022-06-29  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Renaming.
   * cdecl.1: s/supported//
   * cdecl.1: Mentioned lambdas as not being supported.

2022-06-28  Paul J. Lucas <paul@lucasmail.org>

   * util.h: s/uint64_t/uintmax_t/
   * lexer.l: Now using include_path_stack.

2022-06-27  Paul J. Lucas <paul@lucasmail.org>

   * test/Makefile.am, include_1.cdeclrc, include_2.cdeclrc,
     include-nested.out, include-nested.test: Nested include test.
   * lexer.l: Added asserts.
   * cdecl_command.c, lexer.l, literals.c, literals.h: Added push_file() and
     pop_file().
   * cdecl.1: Updated man page.
   * lexer.l, test/Makefile.am, include-unquoted.out, include-unquoted.test:
     More tests.
   * test/Makefile.am, include-ok.out, include-too_many_files.out,
     include-ok.test, include-too_many_files.test: More tests.
   * help.c, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c++03.out, help_command-c.out, help_commands-c++.out,
     help_commands-c.out: Updated help.
   * test/Makefile.am, declare_config_tdu.test, explain_config_tdu.test: Test
     renaming.

2022-06-26  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Added "include" command.

2022-06-21  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, src/Makefile.am: Added `--enable-msan` and `--enable-ubsan`;
     renamed `--enable-address-sanitizer` to `--enable-asan`.

2022-06-19  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c: Fixed undefined behavior bug.

2022-06-14  Paul J. Lucas <paul@lucasmail.org>

   * strbuf.c: Removed new_len.
   * strbuf.c: Added args_len.
   * strbuf.c: Made strbuf_paths() slightly more efficient by reserving space
     for '/' and comp_len.

2022-06-13  Paul J. Lucas <paul@lucasmail.org>

   * strbuf.c: Avoid undefined behavior of adding an offset to NULL.

2022-06-12  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, cdecl-d-cmo_exclam__b.out: Reworked the way C++ operators are
     parsed so as not to set oper_id on the type's AST.
   * c_ast_util.h: s/type/kind/
   * c_ast_check.c, c_ast_util.c, c_ast_util.h: Added
     c_ast_is_ref_to_kind_any().
   * c_ast.c, c_sname.c, c_type.c, c_type.h, english.c, gibberish.c:
     s/c_type_equal/c_type_equiv/

2022-06-11  Paul J. Lucas <paul@lucasmail.org>

   * test/Makefile.am, declare_en-c++.out, declare_en-c++.test: New enum test.
   * c_type.c, c_type.h, gibberish.c, declare_enc.out, declare_enk.out: The
     `explicit-ecsu` option for enums is fixed.

2022-06-10  Paul J. Lucas <paul@lucasmail.org>

   * test/Makefile.am: Replaced "=" in filenames with either "++" or "_" since
     it caused problems on some versions of Make.

2022-06-09  Paul J. Lucas <paul@lucasmail.org>

   * test/Makefile.am: Renamed 's' files to 'si' for signed.
   * test/Makefile.am: Renamed 's' files to 'st' for static.
   * c_ast_check.c, c_ast_util.c, c_sname.h, english.c, slist.c, util.c,
     util.h: Split REINTERPRET_CAST into INTEGER_CAST and POINTER_CAST because
     it's not possible to implement C++'s `reinterpret_cast` as a single macro
     in C.

2022-06-05  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Added suggestions to error messages in certain cases when a
     keyword is expected.
   * did_you_mean.c: No longer offering a suggestion for an exact match.

2022-06-03  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c: Reworked loop in is_command() to use `continue`.

2022-06-02  Paul J. Lucas <paul@lucasmail.org>

   * print.c: Reworked asserts.

2022-06-01  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, help.c, help_english-c++.out, help_english-c++03.out: Added
     `explicit` to the help.
   * autocomplete.c: The `show` command now has command-specific
     autocompletion.

2022-05-31  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Added temporary variable.
   * print.c: Don't need assert here.
   * print.c: Now turning off only C_GIB_USING bit.
   * cdecl.c, read_line.c, util.c, util.h: Added null_if_empty();
     s/str_is_blank()/str_is_empty()/

2022-05-30  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c, cli_options.c: Moved setting of "me" to main().
   * c_ast_check.c, gibberish.c, strbuf.c: Added PJL_WARN_UNUSED_RESULT.
   * gibberish.c: s/cdecl_fout/gout/
   * cdecl.1, color.c: TERM is no longer used when determining whether to print
     in color.

2022-05-29  Paul J. Lucas <paul@lucasmail.org>

   * util.h: Removed (uint64_t) from CONST_CAST.
   * cli_options.c, set_options.c, cdecl-Ix.out, cdecl-Sx.out, cdecl-kxxx.out,
     cdecl-xx.out, set_explicit-ecsu=x.out, set_explicit-int=x.out: Normalized
     printing of invalid value for option.

2022-05-28  Paul J. Lucas <paul@lucasmail.org>

   * util.h: Removed PUTC() -- not used.
   * cli_options.c: Now printing non-error usage message to cdecl_fout.
   * cli_options.c: Whitespace.
   * cli_options.c: Now printing the version to cdecl_fout.

2022-05-27  Paul J. Lucas <paul@lucasmail.org>

   * util.c: home_dir() now checks for whitespace-only values.

2022-05-26  Paul J. Lucas <paul@lucasmail.org>

   * util.c: Now defensively checking "home" for empty string.
   * c_ast.c, c_ast_check.c, c_ast_util.c, c_kind.c, c_lang.c, c_lang.h,
     c_type.c, c_typedef.c, english.c, gibberish.c, parser.y, util.h: Reworked
     bit functions and tightened asserts.

2022-05-23  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c: Simplified assert().
   * parser.y: Simplification in type_modifier_c_type re: LEXER_FIND_TYPES.
   * lexer.h, lexer.l, parser.y: s/LEXER_FIND_TYPEDEFS/LEXER_FIND_TYPES/
   * lexer.h, lexer.l: s/LEXER_FIND_ALL/LEXER_FIND_ANY/

2022-05-22  Paul J. Lucas <paul@lucasmail.org>

   * help.c, help_options.out: Help for options types was added.
   * util.c: Simlification.
   * print.c: Now incrementing *ppelt only if dym->token != NULL.
   * print.c, util.c: Renaming.
   * set_options.c: print_options() now takes FILE*.
   * c_typedef.c, c_typedef.h, parser.y: Added "is_" prefix to some bool
     variables.
   * c_ast_check.c, english.c: s/C_MAX(17)/KNR_FUNC_DEFINITION/
   * c_ast_check.c, english.c: More use of OPT_LANG_IS().
   * c_ast_check.c, test/Makefile.am, explain_nrfi_v-c17.out,
     explain_nrfi_v.out, declare_nrfi_v-01-c17.test,
     declare_nrfi_v-02-c17.test, declare_nrfi_v-03-c17.test,
     explain_nrfi_v-c17.test: _Noreturn is now deprecated in C2X.

2022-05-20  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, print.h, set_options.h, slist.h, types.h: Moved typedefs.

2022-05-19  Paul J. Lucas <paul@lucasmail.org>

   * set_options.c: Got rid of DECLARE_SET_OPTION_FN().
   * autocomplete.c, did_you_mean.c, set_options.c, set_options.h:
     s/SET_OPT_/SET_OPTION_/
   * autocomplete.c, did_you_mean.c, set_options.c, set_options.h:
     s/set_option_type/set_option_kind/
   * parser.y, set_options.c, set_options.h: s/option_set/set_option/

2022-05-17  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c, strbuf.c, strbuf.h, util.c, util.h: Added strbuf_paths().
   * cdecl.c: Added conf_init().

2022-05-16  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, test/Makefile.am, k_declare_i.out, k_declare_i.test: Now
     checking that previously declared types in pseudo-English are not being
     used as objects.
   * parser.y: s/$4/decl_ast/

2022-05-15  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, c_sname.c, c_typedef.c, c_typedef.h, english.h, gibberish.h,
     parser.y, print.c, print.h, define_c_int_least32_t.out,
     explain_typedef_ci32.out, typedef_c_int_least32_t.out,
     using_c_int_least32_t.out: Now printing types in error messages as they
     were originally defined (pseudo-English vs. gibberish) in more cases.

2022-05-14  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_ast_util.h, parser.y: Moved c_ast_is_typename_ok() and
     c_ast_join_type_decl() to parser.y.
   * c_ast_util.c, c_ast_util.h, parser.y: c_ast_join_type_decl() now
     duplicates decl_ast if necessary.
   * c_ast_check.c, c_kind.h, gibberish.c, parser.y:
     s/K_ENUM_CLASS_STRUCT_UNION/K_ANY_ENUM_CLASS_STRUCT_UNION/ to connote that
     it's not a single kind so == should not be used for comparison.

2022-05-13  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c, config_using_i.cdeclrc: No longer temporarily setting language to
     latest C++ while reading configuration file.
   * cdecl.1: Added missing langauge feature support.

2022-05-12  Paul J. Lucas <paul@lucasmail.org>

   * Makefile.am, src/Makefile.am: Fixed distclean and distclean-coverage
     rules.
   * Makefile.am: Added to .PHONY.

2022-05-11  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, c_ast_check.c, c_ast_util.c, c_kind.c, c_kind.h,
     c_lang.h, dump.c, english.c, gibberish.c, parser.y, types.h,
     test/Makefile.am, cdecl-d-cmo_exclam__b.out, cdecl-d-eni.out,
     declare_en_al4.out, declare_en_al4.test: Split K_ENUM_CLASS_STRUCT_UNION
     into K_ENUM and K_CLASS_STRUCT_UNION; now allow _Alignas for enums in C.
   * c_ast_check.c: OPT_LANG_IS() clean-up.
   * gibberish.c, gibberish.h, parser.y: Made c_ast_gibberish() use
     C_GIB_FINAL_SEMI as well.
   * gibberish.c: Added assert().
   * c_ast_check.c: Removed unecessary uses of c_kind_name().

2022-05-10  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, cdecl.c: Now can use the CDECLRC environment variable.
   * cdecl.c, cdecl.h, cli_options.c, options.c, options.h, print.c, print.h:
     s/opt_conf_file/opt_conf_path/; added print_params.conf_path;
     read_conf_file() now takes a path; CONF_FILE_NAME_DEFAULT no longer
     includes the '.'.

2022-05-09  Paul J. Lucas <paul@lucasmail.org>

   * cdefs.h, libc-config.h, stdlib.in.h, string.in.h, verify.h, wchar.in.h,
     gnulib-common.m4: Updated GnuLib.
   * parser.y, test/Makefile.am, k_explain_ai.out, k_explain_b_i.out,
     k_explain_f_i.out, k_explain_i.out, k_explain_ai.test, k_explain_b_i.test,
     k_explain_f_i.test, k_explain_i.test: Now checking that previously
     declared types are not being used as objects.
   * c_ast_util.c: s/for_ast/raw_ast/

2022-05-08  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Now correctly duplicating the type in typedef_type_decl_c_ast.
   * parser.y: Added decl_ast local variables.

2022-05-06  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, explain_typedef_ci32.out: Better error location when
     explaining a wrong existing typedef.
   * c_typedef.c, c_typedef.h, parser.y: Move type equivalence checking out of
     c_typedef_add().

2022-05-05  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Fixed sign conversion warning.
   * c_ast_util.c, gibberish.c, gibberish.h, parser.y, en_ns_c.out: Added
     C_GIB_FINAL_SEMI flag to simplify calling c_typedef_gibberish().
   * dump.c, cdecl--debug.out, cdecl-d-cmo_exclam__b.out, cdecl-d-f2i_pi.out:
     When dumping a location, no longer dumping last_column if it's the same as
     first_column.
   * parser.y: s/SHOW_USER_TYPES/SHOW_USER_DEFINED_TYPES/
   * c_sglob.h, parser.y: Added c_sglob_empty().

2022-05-04  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added "Creator of ...".
   * c_ast_check.c, cdecl.c, english.c, gibberish.c, parser.y,
     declare_pmri.out: Using fewer L_* constants.
   * c_sname.c, english.c, english.h, gibberish.h, parser.y:
     s/c_ast_english_type/c_typedef_english/

2022-05-03  Paul J. Lucas <paul@lucasmail.org>

   * english.c: s/cdecl_out/eout/
   * c_sname.c, english.c, english.h, parser.y: s/c_ast_explain/c_ast_english/
   * english.c, english.h, parser.y: Eliminated public c_ast_explain_cast().
   * english.c, english.h, parser.y: Now setting the cast_ast's sname so it no
     longer has to be passed as an argument.
   * gibberish.c: c_cast_gibberish() no longer accepts C_CAST_NONE nor C_CAST_C
     since those can never be emitted in gibberish.
   * c_type.c: Now using LANG_ATTRIBUTES.
   * c_kind.c: Now using LANG_ENUM.

2022-05-02  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: Reworked asserts.
   * gibberish.c: Added assert.
   * gibberish.c: Whitespace.
   * gibberish.c, parser.y: c_ast_gibberish() now prints casts itself.
   * c_ast_check.c, gibberish.c: s/LANG_C_KNR/PROTOTYPES/
   * options.c, options.h: s/btid/btids/
   * options.c, options.h: s/tid/btid/
   * c_ast_util.c: Now using c_tid_check().

2022-05-01  Paul J. Lucas <paul@lucasmail.org>

   * Doxyfile: s/WITH_TERM_COLUMNS/ENABLE_TERM_SIZE/ for docs.
   * Doxyfile, makedoc.sh: Eliminated "html" subdirectory in docs.

2022-04-30  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am, parser.y: Moved check.[ch] -> c_ast_check.[ch].
   * c_sname.c, c_sname.h, check.c, check.h: Moved c_sname_check() to
     c_sname.[ch].
   * c_type.c, c_type.h: Made c_type_get_tid_ptr() static.
   * c_lang.h: Removed cast.
   * c_type.c, c_type.h: Made c_tid_to_type() static.

2022-04-29  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c: Now using c_tid_check().
   * c_type.c: s/c_tid_simplify/c_tid_nosigned/
   * c_type.c: Missed uses of LANG_CONST and LANG_VOLATILE.

2022-04-28  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, check.c, types.h: s/c_ast_param_t/c_param_t/
   * set_options.c, set_explicit-ecsu.out, set_explicit-int.out: Made error
     messages consistent.

2022-04-26  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.h: Now using member designators.

2022-04-25  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.h, c_keyword.c, c_lang.h, c_type.c, c_type.h, cdecl_command.c,
     cdecl_keyword.c, check.c, gibberish.c, help.c, lexer.l, options.h,
     parser.y, set_options.c, test/Makefile.am, cast_pfx_i.out,
     declare_fkr_pi.out, declare_pfkr_i.out, declare_th_f_v.out,
     explain_fkr_pi.out, explain_fkr_v.out, explain_th_f_v-c++14.test: Now
     using LANG_feature macros rather than specific language version macros.

2022-04-22  Paul J. Lucas <paul@lucasmail.org>

   * check.c, gibberish.c, help.c, options.h: Added LANG_VLA plus other
     LAPG_OPT_* clean-up.

2022-04-21  Paul J. Lucas <paul@lucasmail.org>

   * check.c: Removed error_unknown_name().
   * check.c: s/fl_print_error_unknown_name/fl_print_error_unknown_name/
   * c_typedef.c: Now using "if...else".
   * c_ast_util.c, c_typedef.c, c_typedef.h, gibberish.c, parser.y:
     s/c_typedef::user_defined/predefined/; added C_TYPEDEF_AST_LIT().
   * c_typedef.c: Eliminated user_defined variable.

2022-04-20  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added some missing K&R C typedefs.

2022-04-18  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, c_ast_util.c, c_ast_util.h, check.c, test/Makefile.am,
     explain_attda2i.out, typedef_v_explain_v.out, explain_attda2i.test:
     _Atomic arrays are now correctly forbidden.
   * c_ast_util.c: Added PJL_WARN_UNUSED_RESULT.

2022-04-15  Paul J. Lucas <paul@lucasmail.org>

   * red_black_test.c, slist_test.c: Added #include <stdnoreturn.h>

2022-04-14  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c, cdecl.c: Added assert()s.

2022-04-11  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c: Removed unnecessary check.

2022-04-04  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c: Now using LANG_C_CPP_MAX() more.
   * c_type.c: s/.../LANG_IDS/

2022-04-03  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.c: s/c_sname_impl/c_sname_name_impl/
   * c_sname.c, c_sname.h, lexer.l: Folded c_sname_parse_dtor() into
     c_sname_parse_impl().
   * lexer.l: Added assert().

2022-04-02  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: Now using OPT_LANG_IS(RANGE(...)).
   * gibberish.c: Removed code that's no longer needd.

2022-04-01  Paul J. Lucas <paul@lucasmail.org>

   * cli_options.c: Now printing program name in usage message instead of
     always "cdecl".

2022-03-31  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Removed mostly pointless cast.

2022-03-27  Paul J. Lucas <paul@lucasmail.org>

   * c_sglob.c: Reworked assert().
   * c_kind.c, english.c, cdecl-d-pmki.out, explain_pmi-c.out,
     explain_pmrgi.out: Changed K_POINTER_TO_MEMBER's name to "pointer to
     member" (without '-').

2022-03-24  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, c_ast_util.h: Moved c_ast_parent_is_kind().

2022-03-21  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: Simplification.

2022-03-19  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c, cdecl.h, cli_options.c, print.c: Removed is_input_a_tty.

2022-03-18  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am, autocomplete.c, cdecl.c, cdecl.h, cdecl_command.c,
     cdecl_command.h, did_you_mean.c, literals.h, types.h: Split out
     cdecl_command.[ch].
   * dam_lev.c: Added PJL_WARN_UNUSED_RESULT.

2022-03-16  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c, c_type.h: Using c_tid_check() more.
   * c_type.h: Removed duplicate TS_TYPEDEF from TS_FUNC_LIKE_CPP.

2022-03-14  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: s/bitmask/flags/
   * gibberish.c, gibberish.h, parser.y, types.h: s/c_gib_flags_t/unsigned/
   * c_typedef.c, cdecl.c, strbuf.c, util.c, util.h: s/IF_EXIT/perror_exit_if/

2022-03-13  Paul J. Lucas <paul@lucasmail.org>

   * pjl_compile.m4: Updated copyright year to 2022.

2022-03-12  Paul J. Lucas <paul@lucasmail.org>

   * c_type.h: Silence "unused parameter 'tpid'" warning with --disable-assert.
   * red_black.c: Added rb_nil_is_nil().
   * red_black.c: Added assert().
   * red_black.c: Simplification.
   * red_black.c: Removed unnecessary check.
   * red_black.c: Added STATIC_CAST; clean-up.

2022-03-09  Paul J. Lucas <paul@lucasmail.org>

   * dump.c, english.c, gibberish.c, parser.y, util.h: s/print_sep/fprint_sep/
   * dump.c: s/dump_indent/fprint_spaces/

2022-03-08  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Removed c_qualifier.

2022-03-07  Paul J. Lucas <paul@lucasmail.org>

   * options.c, options.h, set_options.c: Added print_explicit_ecsu().
   * set_options.c: Print a warning if alt-tokens is set and the current
     language changes to one that doesn't support them.
   * c_lang.h, check.c, lexer.l, parser.y, set_options.c: Added C_LANG_WHICH().
   * options.h, set_options.c: Now prints a warning that neither alternative
     tokens nor digraphs are supported until C95; now prints a warning that
     `using` isn't supported until C++11.
   * set_options.c: Now prints a warning that `east-const` isn't supported
     until C89.
   * cdecl.1: Removed yet another remnant of file arguments.
   * cdecl.1: s/current/default/
   * cdefs.h, gnulib-common.m4: Updated Gnulib.

2022-03-06  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c, cdecl.c, cdecl.h: Made CDECL_COMMANDS static; added
     cdecl_command_next().
   * slist.c, util.h: s/intptr_t/int64_t/; s/uintptr_t/uint64_t/

2022-03-03  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am, cdecl.c, cli_options.c, cli_options.h, did_you_mean.c,
     options.c, options.h: Split CLI code from options.[ch] into
     cli_options.[ch].
   * options.c, options.h, set_options.c, cdecl-Ix.out: parse_explicit_ecsu()
     and parse_explicit_int() no longer print error messages; their callers do.

2022-02-28  Paul J. Lucas <paul@lucasmail.org>

   * options.c, cdecl-h.out: The old mention of `files...` was removed.
   * dump.c, english.c, gibberish.c, parser.y, util.h: Added print_sep().

2022-02-27  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, parser.y, test/Makefile.am, explain_fpf_v_i.out,
     explain_fpf_v_i.test: Finally fixed `explain void f(int())`.
   * c_ast_util.c: Now also checking placeholder_ast->parent_ast == NULL.

2022-02-25  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, c_ast_util.c, c_operator.h, check.c, dump.c: Got rid of
     C_FN_MASK_MEMBER and C_OP_MASK_OVERLOAD.

2022-02-23  Paul J. Lucas <paul@lucasmail.org>

   * dump.c, dump.h, parser.y: Added c_ast_dump_impl() and
     c_ast_list_dump_impl().

2022-02-22  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am: Updated Gnulib.
   * c_ast.h, parser.y: s/constructor/ctor/
   * parser.y, test/Makefile.am, explain_ff_i_v-02.out, explain_ff_i_v-02.test:
     Fixed function returning function parameter crash.
   * parser.y: s/type_ast/ret_ast/
   * dump.c, dump.h, parser.y, cdecl--debug.out, cdecl-d-alli.out,
     cdecl-d-cmo_exclam__b.out, cdecl-d-f2i_pi.out, cdecl-d-f_v.out,
     cdecl-d-faia4iaviacias6i_v.out, cdecl-d-udc_i.out, cdecl-d-z.out: AST
     debug output now always prints the key and prints "NULL" for null.

2022-02-20  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, c_ast_util.c, check.c, english.c, gibberish.c: Eliminated
     c_ast_is_kind_any().

2022-02-19  Paul J. Lucas <paul@lucasmail.org>

   * check.c, test/Makefile.am, declare_en_al4.out, declare_en_al4.test:
     Alignment of `enum`, `struct`, and `union` is now correctly forbidden in
     C.
   * cdecl_keyword.c, parser.y: `alignas` & `_Alignas` are now additionally
     allowed instead of `aligned [as|to]` in pseudo-English.
   * autocomplete.c, c_keyword.c, c_lang.h, cdecl_keyword.c, cdecl_keyword.h,
     lexer.l: Eliminated AC_CDECL_KEYWORDS; now _not_ completing English
     keywords when C/C++ is expected.
   * c_keyword.h, cdecl_keyword.h, lexer.l: s/yy_token_id/y_token_id/

2022-02-18  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Made is_command() more efficient by stripping leading
     whitespace once.

2022-02-17  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Now skipping leading spaces in is_command().
   * c_keyword.c: `new` is now autocompletable.  The following are now _not_
     autocompletable: `co_await`, `co_return`, `co_yield`, `concept`,
     `decltype`, and `requires`.
   * autocomplete.c: "variadic" is now autocompletable only in C89 and later.

2022-02-16  Paul J. Lucas <paul@lucasmail.org>

   * c_keyword.c: "default" is now auto-completable only in C++11 and later.
   * parser.y: New-style cast keyword synonyms for corresponding two-word
     English phrases.
   * parser.y: s/new_style_cast_c/new_style_cast_expr_c/ to remove duplicate
     name. (How did this ever work?)
   * c_lang.c: Made c_lang_literal() able to exit the loop.

2022-02-15  Paul J. Lucas <paul@lucasmail.org>

   * cdecl_keyword.c: Using LANG_C_CPP_MAX().
   * parser.y: `return` is now accepted as a shorthand for `returning` in
     pseudo-English.
   * color.c: Added color capability macros for names.
   * set_options.c: Now more simply using opt_prompt.

2022-02-14  Paul J. Lucas <paul@lucasmail.org>

   * c_type.h, parser.y: s/TS_NOT_CONSTRUCTOR/TS_FUNC_LIKE_NOT_CTOR/
   * c_type.h: TS_CONSTRUCTOR_DECL & TS_DESTRUCTOR_DECL clean-up.
   * c_ast_util.c, c_ast_util.h, c_sname.c, c_type.h, check.c, english.c,
     gibberish.c, parser.y: Eliminated c_type_is_tid_any().
   * check.c: Simplification.
   * check.c, gibberish.c, literals.h: s/alignas_lang/alignas_name/

2022-02-13  Paul J. Lucas <paul@lucasmail.org>

   * c_operator.c: Fixed a core dump when using the `--debug`/`-d` option for
     an operator.
   * c_ast_util.c, check.c, parser.y, declare_a_cd_i.out, declare_ac3i.out,
     declare_as3i.out, declare_avi.out, explain_a_cd_i.out,
     explain_udl_c_i-01.out: print_error() and print_warning() clean-up.
   * c_ast_util.c: Renaming.
   * configure.ac, c_ast_util.c, c_ast_util.h, check.c, test/Makefile.am,
     explain_rttdi.out, explain_rttdpi.out, explain_rttdi.test,
     explain_rttdpi.test: `restrict` is now correctly allowed on `typedef`s of
     pointer.

2022-02-11  Paul J. Lucas <paul@lucasmail.org>

   * string.in.h: Updated Gnulib.

2022-02-09  Paul J. Lucas <paul@lucasmail.org>

   * util.c: Now returning immediately if ncolumns == NULL and nlines == NULL.
   * util.h: FATAL_ERR now calls _Exit() insstead of exit() since functions
     called via atexit() must not call exit().
   * c_typedef.c, cdecl.c: Added '&'.
   * c_operator.c: s/OVER/OVR/

2022-02-07  Paul J. Lucas <paul@lucasmail.org>

   * print.c: Fixed interactive column number.

2022-02-06  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.h, util.h: Now using BITS_Lx macros in c_lang.h.
   * c_lang.h, check.c, lexer.l, parser.y, set_options.c, declare_th_f_v.out,
     set_trigraphs-c++.out, set_trigraphs_c++17.out: s/is no longer/not/; added
     LANG_RANGE() macro.

2022-02-04  Paul J. Lucas <paul@lucasmail.org>

   * check.c, explain_th_f_v-c++17.out: Now using c_lang_which() more.

2022-02-03  Paul J. Lucas <paul@lucasmail.org>

   * check.c, explain_c-02.out: Now checking opt_lang >= LANG_C_99 for implicit
     int.
   * c_ast.h, check.c: Got rid of VLA.
   * check.c: Added assert()s.
   * c_lang.c: Added if ( opt_lang == lang_ids ).
   * check.c: Moved K_VARIADIC.
   * parser.y: Revert "Bison %destructor clean-up."

2022-02-02  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Bison %destructor clean-up.
   * parser.y: Improved error messages for syntax errors after commas.
   * parser.y, test/Makefile.am: Can now parse dynamic exception
     specifications.
   * check.c, declare_thf_v.out: s/in/since/
   * parser.y: `noexcept` is now allowed for pointers to function parameter
     arguments.
   * c_typedef.c: Sorted PREDEFINED_KNR_C.
   * c_typedef.c, cdecl.c, cdecl.h: cdecl_parse_*() now return the exit status
     to use.

2022-02-01  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, c_typedef.h, cdecl.c: Made c_typedef_cleanup() static and
     called seperately.

2022-01-31  Paul J. Lucas <paul@lucasmail.org>

   * slist.c, slist.h: Added slist_at_nocheck_offset().

2022-01-25  Paul J. Lucas <paul@lucasmail.org>

   * util.c: Added PJL_IGNORE_RV().
   * cdecl.c: Added IF_EXIT() for atexit().

2022-01-24  Paul J. Lucas <paul@lucasmail.org>

   * read_line.c: Better WITH_READLINE code.
   * read_line.c: Added #ifndef WITH_READLINE.

2022-01-23  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, autocomplete.c, util.c, util.h: Now matching a command even
     when there's leading whitespace.

2022-01-22  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_type.h, check.c, gibberish.c:
     s/TS_MASK_STORAGE/TS_ANY_STORAGE/
   * c_type.h, check.c, gibberish.c: Type mask rework.
   * c_type.h, gibberish.c: Removed TS_MASK_REF_QUALIFIER.
   * c_type.h: Removed TS_CVR.
   * c_ast.c, c_ast.h, dump.c, english.c, gibberish.c, parser.y, types.h,
     cdecl--debug.out, cdecl-d-+i.out, cdecl-d-al8i.out, cdecl-d-alli.out,
     cdecl-d-f2i_pi.out, cdecl-d-f_v.out, cdecl-d-faia4iaviacias6i_v.out,
     cdecl-d-pmki.out, cdecl-d-z.out: Removed c_bit_width_t,
     PRId_C_BIT_WIDTH_T, c_ast_depth_t, and PRId_C_AST_DEPTH_T.
   * c_ast.c, c_sname.c, c_sname.h, parser.y, set_options.c, slist.c, slist.h,
     slist_test.c, util.c: Renamed slist functions to be more C++ STL-like.
   * c_ast.h, types.h: s/c_alignas_arg/c_alignas_kind/
   * extern-inline.m4: Updated Gnulib.

2022-01-21  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_ast_util.c, c_ast_util.h, check.c, english.c, english.h,
     gibberish.c, help.c, options.c, options.h, parser.y, set_options.c,
     test/Makefile.am, cdecl-h.out, declare_type_2i-c++.out,
     declare_type_i-c++.out, help_options.out, set.out, set_c++.out,
     set_c++03.out, set_c++11.out, set_c++14.out, set_c++17.out, set_c++20.out,
     set_c++23.out, set_c++98.out, set_c11.out, set_c17.out, set_c18.out,
     set_c89.out, set_c90.out, set_c95.out, set_c99.out, set_cknr.out,
     set_digraphs_c89.out, set_explicit-ecsu=ecsu.out, set_explicit-int=i.out,
     set_explicit-int=u.out, set_lang=c++.out, set_noexplicit-int.out,
     set_nousing-c++.out, set_options.out, set_trigraphs_c++17.out,
     declare_type_2i-c++.test, declare_type_i-c++.test, set_nousing-c++.test:
     Added --no-using/-u CLI options and `using` set option. Can now print
     types as `using` declarations in C++11 and later.
   * c_ast_util.c, red_black.c: Added struct designators.
   * parser.y: Now checking multi-declarations only once.

2022-01-20  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: s/ast->type/type/
   * c_ast.c, c_ast.h: c_ast_dup() and c_ast_new() now require a non-null
     ast_list.
   * parser.y, test/Makefile.am, cast_type_i.out, cast_typedef_i.out,
     declare_af.out, declare_fsi_v.out, define_ai.out, define_eti.out,
     define_si.out, explain_using_a_mu_i.out, explain_using_a_mu_i.test: Now
     supporting attributes for "using" declarations.

2022-01-18  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Added missing %destructor for param_decl_list_english_opt.
   * parser.y: Renamed *decl_list* to *param_decl_list*.

2022-01-16  Paul J. Lucas <paul@lucasmail.org>

   * dam_lev.c: Renaming.
   * dam_lev.c, dam_lev.h, did_you_mean.c, did_you_mean.h: Got rid of
     dam_lev_t.
   * lib/Makefile.am, _Noreturn.h, alloca.in.h, arg-nonnull.h, attribute.h,
     btowc.c, c++defs.h, cdefs.h, ctype.in.h, errno.in.h, flexmember.h,
     fnmatch.c, fnmatch.in.h, fnmatch_loop.c, getdelim.c, getline.c,
     getopt-cdefs.in.h, getopt-core.h, getopt-ext.h, getopt-pfx-core.h,
     getopt-pfx-ext.h, getopt.c, getopt.in.h, getopt1.c, getopt_int.h,
     gettext.h, hard-locale.c, hard-locale.h, idx.h, intprops.h, inttypes.in.h,
     isblank.c, lc-charset-dispatch.c, lc-charset-dispatch.h, libc-config.h,
     limits.in.h, localcharset.c, localcharset.h, locale.in.h,
     mbrtowc-impl-utf8.h, mbrtowc-impl.h, mbrtowc.c, mbsinit.c,
     mbsrtowcs-impl.h, mbsrtowcs-state.c, mbsrtowcs.c, mbtowc-impl.h,
     mbtowc-lock.c, mbtowc-lock.h, mbtowc.c, memchr.c, memchr.valgrind,
     mempcpy.c, setlocale-lock.c, setlocale_null.c, setlocale_null.h,
     stdarg.in.h, stdbool.in.h, stddef.in.h, stdint.in.h, stdio-read.c,
     stdio-write.c, stdio.in.h, stdlib.in.h, stdnoreturn.in.h, streq.h,
     string.in.h, strndup.c, strnlen.c, strnlen1.c, strnlen1.h, strsep.c,
     sys_types.in.h, sysexits.in.h, unistd.c, unistd.in.h, verify.h,
     warn-on-use.h, wchar.in.h, wctype-h.c, wctype.in.h, windows-initguard.h,
     wmemchr-impl.h, wmemchr.c, wmempcpy.c, 00gnulib.m4, __inline.m4,
     absolute-header.m4, alloca.m4, btowc.m4, builtin-expect.m4, codeset.m4,
     ctype_h.m4, errno_h.m4, extensions.m4, extern-inline.m4, flexmember.m4,
     fnmatch.m4, fnmatch_h.m4, getdelim.m4, getline.m4, getopt.m4,
     gnulib-cache.m4, gnulib-common.m4, gnulib-comp.m4, gnulib-tool.m4,
     include_next.m4, inttypes.m4, isblank.m4, limits-h.m4, localcharset.m4,
     locale-fr.m4, locale-ja.m4, locale-zh.m4, locale_h.m4, mbrtowc.m4,
     mbsinit.m4, mbsrtowcs.m4, mbstate_t.m4, mbtowc.m4, memchr.m4, mempcpy.m4,
     mmap-anon.m4, multiarch.m4, nocrash.m4, off_t.m4, pid_t.m4,
     setlocale_null.m4, ssize_t.m4, std-gnu11.m4, stdarg.m4, stdbool.m4,
     stddef_h.m4, stdint.m4, stdio_h.m4, stdlib_h.m4, stdnoreturn.m4,
     string_h.m4, strndup.m4, strnlen.m4, strsep.m4, sys_types_h.m4,
     sysexits.m4, threadlib.m4, unistd_h.m4, vararrays.m4, visibility.m4,
     warn-on-use.m4, wchar_h.m4, wchar_t.m4, wctype_h.m4, wint_t.m4,
     wmemchr.m4, wmempcpy.m4, zzgnulib.m4: Updated Gnulib.

2022-01-13  Paul J. Lucas <paul@lucasmail.org>

   * dam_lev.c: No longer using a VLA.
   * c_type.c, cdecl.c: Added "const" to some array parameter declarations.

2022-01-12  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.h, c_typedef.c, parser.y: Removed opt_lang_and_newer() and
     opt_lang_newer(): they were used only in one place.
   * c_lang.h: Moved macro.

2022-01-11  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.c, c_lang.h: Fixed c_lang_coarse_name() so it returns NULL for
     LANG_NONE.
   * c_lang.c, c_lang.h, check.c: Improved error message for types that are
     illegal in the current language.

2022-01-09  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, c_ast_util.c, c_typedef.c, check.c, did_you_mean.c,
     english.c: Visitor data struct renaming.
   * configure.ac, c_typedef.c, cdecl--debug.out, cdecl-d-+i.out,
     cdecl-d-al8i.out, cdecl-d-alli.out, cdecl-d-cmo_exclam__b.out,
     cdecl-d-eni.out, cdecl-d-f2i_pi.out, cdecl-d-f_v.out,
     cdecl-d-faia4iaviacias6i_v.out, cdecl-d-pmki.out, cdecl-d-udc_i.out,
     cdecl-d-z.out, show_all-c++.out, show_all.out,
     show_all_predefined-c++.out, show_all_predefined.out,
     show_all_predefined_typedef-c++.out, show_all_typedef.out,
     show_predefined-c++.out, show_predefined.out, show_predefined_typedef.out,
     show_predefined_using.out: The types `caaddr_t` and `daddr_t` were added;
     `jmp_buf` was moved from C89.

2022-01-07  Paul J. Lucas <paul@lucasmail.org>

   * check.c: Fixed function cast warning.
   * lexer.h, lexer.l: plen for lexer_input_line() must now not be NULL.

2022-01-06  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: parse_cleanup() comment renaming.
   * parser.y: Got rid of parse_init().
   * parser.y: Made ast_depth be a field of in_attr.

2022-01-05  Paul J. Lucas <paul@lucasmail.org>

   * dump.c: s/dump_comma/comma/

2022-01-04  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: s/no_except_bool_stid_exp/noexcept_bool_stid_exp/

2022-01-03  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: s/name/str_val/ for set_option_value_opt.
   * cdecl.1: Added note that arbitrary array sizes are not supported.

2022-01-02  Paul J. Lucas <paul@lucasmail.org>

   * check.c: s/ret_ast/raw_ret_ast/
   * parser.y, test/Makefile.am, explain_2pii-c89.out, explain_a4pii-c89.out,
     explain_f_rpii-c89.out, explain_npii-c89.out, explain_npiii-c89.out,
     explain_pii-c89.out, explain_piii-c89.out, explain_2pii-c89.test,
     explain_a4pii-c89.test, explain_f_rpii-c89.test, explain_npii-c89.test,
     explain_npiii-c89.test, explain_pii-c89.test, explain_piii-c89.test:
     Support for pre-C99 pointer to implicit int declarations.
   * parser.y: s/knr/pc99/

2022-01-01  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_ast_util.h, check.c, test/Makefile.am, declare_frg_v.out,
     declare_fvx_v.out, explain_fcv_v.out, explain_frg_v.out,
     explain_fvx_v.out, typedef_cv_explain_ftd_v.out, explain_fcv_v.test,
     typedef_cv_explain_ftd_v.test: Now flagging `void f(const void)` as an
     error.
   * c_ast_util.c: s/ast_stids/ast_tids/
   * c_ast_util.c: Renaming.
   * Doxyfile, Makefile.am, bootstrap, cdecl.css, configure.ac, lcovrc,
     makedoc.sh, man/Makefile.am, man/man1/c++decl.1, cdecl.1, src/Makefile.am,
     autocomplete.c, c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h, c_keyword.c,
     c_keyword.h, c_kind.c, c_kind.h, c_lang.c, c_lang.h, c_operator.c,
     c_operator.h, c_sglob.c, c_sglob.h, c_sname.c, c_sname.h, c_type.c,
     c_type.h, c_typedef.c, c_typedef.h, cdecl.c, cdecl.h, cdecl_keyword.c,
     cdecl_keyword.h, cdecl_lldb.py, cdecl_parser.h, check.c, check.h, color.c,
     color.h, dam_lev.c, dam_lev.h, did_you_mean.c, did_you_mean.h, dump.c,
     dump.h, english.c, english.h, gibberish.c, gibberish.h, help.c, help.h,
     lexer.h, lexer.l, literals.c, literals.h, options.c, options.h, parser.y,
     pjl_config.h, print.c, print.h, prompt.c, prompt.h, read_line.c,
     read_line.h, red_black.c, red_black.h, red_black_test.c, set_options.c,
     set_options.h, slist.c, slist.h, slist_test.c, strbuf.c, strbuf.h,
     types.h, unit_test.h, util.c, util.h, test/Makefile.am,
     not_in_Makefile.sh, run_test.sh, update_test.sh: s/2021/2022/

2021-12-30  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: s/__attribute/__attribute__/

2021-12-28  Paul J. Lucas <paul@lucasmail.org>

   * util.c: Removed incorrect "const".
   * set_options.c: Simplification.
   * print.c, set_options.c, util.c, set_expl.out, set_expli.out: Now using
     fprint_list() to print ambiguous set options.
   * util.c: Renaming.
   * parser.y, print.c, util.c, util.h: Eliminated fprint_list() elt_size
     parameter.

2021-12-27  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, define_c_int_least32_t.out, typedef_c_int_least32_t.out,
     using_c_int_least32_t.out: Eliminated type_loc parameter from add_type().
   * c_ast_util.c: Removed redundant asserts.

2021-12-26  Paul J. Lucas <paul@lucasmail.org>

   * run_test.sh: Added "ulimit -c 0" to prevent core files during automated
     tests.
   * util.c: s/str/s/
   * parser.y: s/slist_t/c_ast_list_t/
   * c_ast_util.c, c_ast_util.h, check.c, gibberish.c, test/Makefile.am,
     explain_rtpf_v.out, explain_rtpf_v.test: A restricted pointer to a
     non-object, e.g., function, is now correctly flagged as an error.

2021-12-25  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, parser.y, test/Makefile.am, explain_2i-redef-c++.out,
     explain_2i-redef.out, explain_2i-redef-c++.test, explain_2i-redef.test:
     Redefinition in C++ is always an error.
   * gibberish.c: s/_[bsa]tid/_[bsa]tids/
   * english.c, gibberish.c: Now using fputs_sp() more.

2021-12-24  Paul J. Lucas <paul@lucasmail.org>

   * english.c, english.h, parser.y: Replaced c_ast_english() with
     c_ast_explain_cast() to parallel c_ast_explain_declaration() and
     c_ast_explain_type().
   * english.c: s/data/v_data/

2021-12-22  Paul J. Lucas <paul@lucasmail.org>

   * read_line.c: Added assert().
   * file-cast_x.out: Fixed test.
   * read_line.c, read_line.h: Fixed reading from stdin when it's not a TTY.
   * src/Makefile.am: s/$</cdecl$(EXEEXT)/ since $< doesn't always work right.
   * run_test.sh: s/mv/cp/ to avoid user/group problem.
   * c_ast.c, c_ast.h, c_ast_util.c, check.c, english.c:
     s/c_ast_visitor_data_t/c_ast_visit_data_t/ plus cleaned-up visitor data
     handling.
   * slist.c, slist.h: s/slist_predicate_fn_t/slist_pred_fn_t/
   * red_black.c: s/succ/next/

2021-12-21  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_typedef.c, cdecl--debug.out, cdecl-d-+i.out, cdecl-d-al8i.out,
     cdecl-d-alli.out, cdecl-d-cmo_exclam__b.out, cdecl-d-eni.out,
     cdecl-d-f2i_pi.out, cdecl-d-f_v.out, cdecl-d-faia4iaviacias6i_v.out,
     cdecl-d-pmki.out, cdecl-d-udc_i.out, cdecl-d-z.out, show_all-c++.out,
     show_all.out, show_all_predefined-c++.out, show_all_predefined.out,
     show_all_predefined_typedef-c++.out, show_all_typedef.out,
     show_predefined-c++.out, show_predefined_using.out: Added the standard C++
     types std::ispanstream, std::stacktrace_entry, and std::wispanstream.
   * cdecl.1: Added "for command-line options".

2021-12-20  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c, options.c, options.h: s/opt_no_conf/opt_read_conf/
   * red_black.c, red_black.h: Renaming.
   * c_ast.c, c_sname.c, c_sname.h, check.c, dump.c, gibberish.c, lexer.l,
     options.c, parser.y, print.c, red_black_test.c, set_options.c, slist.h,
     slist_test.c: Added FOREACH_SNAME_SCOPE_UNTIL(); argument comments.
   * parser.y, test/Makefile.am, explain_ipi-redef.out, explain_ipi-redef.test:
     Names being redefined with a different type in the same declaration are
     now correctly forbidden.
   * configure.ac, check.c, test/Makefile.am, explain_f2i_v-redef.out,
     explain_f2i_v-redef.test: Now checking for function-like parameter
     redefinition.

2021-12-19  Paul J. Lucas <paul@lucasmail.org>

   * slist.c: Now avoiding repeated check in loop of slist_dup().
   * autocomplete.c, c_operator.c, c_sglob.c, c_sname.c, did_you_mean.c,
     dump.c, options.c, print.c, red_black_test.c, slist.c, strbuf.c, util.c:
     Using STATIC_CAST more.
   * parser.y: s/sti_free/sti_cleanup/
   * c_ast.c, c_ast.h, c_typedef.c, c_typedef.h, check.c, red_black.c,
     red_black.h: s/visitor/visit_fn/
   * c_ast.c, c_ast.h, c_ast_util.c, c_typedef.c: s/equiv/equal/
   * c_ast.h, c_operator.h, check.c, dump.c, parser.y: s/C_FUNC/C_FN/

2021-12-16  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: #include sort.
   * configure.ac, autocomplete.c: Simplified autocompletion code.

2021-12-15  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Function re-ordering.

2021-12-14  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, autocomplete.c, c_type.c, cdecl_keyword.c, literals.c,
     literals.h, parser.y, declare_a_cd_i.out, explain_a_cd_fa_cd_i_i.out,
     explain_a_cd_fi_i.out, explain_a_dep_a_mu_i-01.out,
     explain_a_dep_a_mu_i-02.out, explain_a_mu_f_v.out, explain_a_mu_i.out,
     explain_a_mu_k-01.out, explain_a_mu_k-02.out, explain_a_using_a_mu_i.out,
     explain_fa_cd_i_i.out, explain_fa_mu_i_v.out, explain_oi.out,
     explain_tli.out: Now allowing "carries dependency", "maybe unused", "no
     discard", "no except", "no return", "no unique address", and "thread
     local".
   * cdecl.c: The "no files as arguments" change broke reading of stdin; fixed.

2021-12-13  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added "constant evaluation", "constant expression", and "constant
     initialization".
   * configure.ac, cdecl.1, c_type.c, cdecl_keyword.c, literals.c, literals.h,
     parser.y, explain_sxxi.out, explain_xxctor.out, explain_xxi.out: Added
     pseudo-English keywords `evaluation` (plus `eval`), `expression` (plus
     `expr`), and `initialization` (plus `init`).

2021-12-11  Paul J. Lucas <paul@lucasmail.org>

   * did_you_mean.c: Put (double) back.
   * did_you_mean.c: Made SIMILAR_ENOUGH_PERCENT be double.
   * did_you_mean.c: Added assert()s; removed unnecessary = NULL.

2021-12-10  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am, c_keyword.c, c_keyword.h, cdecl_keyword.h,
     cdecl_parser.h, lexer.l: Added cdecl_parser.h.
   * print.h: Removed redundant declaration.
   * gettext.h, intprops.h: Updated Gnulib.
   * print.c, read_line.c, util.c, util.h: s/is_blank_line/str_is_blank/;
     s/ends_with_any_chr/str_rtrim_len/; removed ends_with_chr().
   * lcovrc, cdecl.c, options.c, options.h, util.c, util.h:
     s/PMESSAGE_EXIT/FATAL_ERR/

2021-12-09  Paul J. Lucas <paul@lucasmail.org>

   * util.c: s/fprintf/FPRINTF/
   * parser.y, util.c, util.h: fprint_list() now ignores the supplied elt_size
     when gets is NULL.
   * util.c: Removed duplicate #include <unistd.h>.

2021-12-08  Paul J. Lucas <paul@lucasmail.org>

   * set_options.c: Changed signature to print_options(void).
   * c_ast.c, c_ast.h, c_typedef.c, c_typedef.h, check.c, red_black.c,
     red_black.h: Named typedefs for pointers to function consistently.

2021-12-07  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am, cdecl.c, help.c, help.h, options.c, parser.y:
     Consolidated code that prints `; use --help or -h for help`.
   * options.c: Now using COPT(HELP) in "use --help ..." message.
   * cdecl.c: s/DYM_CLI_OPTIONS/DYM_COMMANDS/
   * cdecl.1, cdecl.c, read_line.c, read_line.h, file-cast_x.out,
     file-cast_i.test, file-cast_x.test, file-declare_i.test,
     file-declare_x.test, file-explain_i.test, file-explain_x.test: Removed
     reading command-line arguments as files; made file-reading code
     line-based.
   * cdecl.c, cdecl.h, color.c, help.c, options.c, parser.y, read_line.c,
     set_options.c: s/fin/cdecl_fin/; s/fout/cdecl_fout/
   * read_line.c: Removed unnecessary strbuf_init().
   * cdecl.c, read_line.c, read_line.h: Changed strbuf_read_line() to take a
     char const*[2].

2021-12-06  Paul J. Lucas <paul@lucasmail.org>

   * cdecl_keyword.h, lexer.l: s/allow_explain/always_find/; added
     lexer_cdecl_keyword_find().

2021-12-05  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.h: Whitespace.
   * strbuf.c: Sorted.
   * slist.h: Added "const" to SLIST_VAR_INIT().
   * c_lang.c, c_sname.c, c_type.c, cdecl.c, color.h, lexer.l, options.c,
     print.c, prompt.c, read_line.c, strbuf.c, strbuf.h: strbuf function
     renaming.
   * Doxyfile, Makefile.am, configure.ac, man/Makefile.am,
     man/man1/Makefile.am, src/Makefile.am, c_ast.c, c_ast.h, c_ast_util.c,
     c_ast_util.h, c_keyword.c, c_keyword.h, c_kind.c, c_kind.h, c_lang.c,
     c_lang.h, c_operator.c, c_operator.h, c_sglob.c, c_sglob.h, c_sname.c,
     c_sname.h, c_type.c, c_type.h, c_typedef.c, c_typedef.h, cdecl_keyword.c,
     cdecl_keyword.h, check.c, check.h, color.c, color.h, dam_lev.c, dam_lev.h,
     did_you_mean.c, did_you_mean.h, dump.c, dump.h, english.c, english.h,
     gibberish.c, gibberish.h, lexer.h, literals.c, literals.h, pjl_config.h,
     print.c, print.h, prompt.c, prompt.h, slist.c, slist.h, strbuf.c,
     strbuf.h, types.h, util.c, util.h, test/Makefile.am: Removed "et al" from
     files that are wholly new.

2021-12-04  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am, cdecl.c, read_line.c, read_line.h: Moved
     cdecl_read_line() to strbuf_read_line() and put in its own file.
   * autocomplete.c, cdecl.c, cdecl.h, did_you_mean.c:
     s/FOREACH_COMMAND/FOREACH_CDECL_COMMAND/
   * cdecl_keyword.c: C_SYN() simplification.
   * c_keyword.h: s/int/yytokentype/
   * check.c, test/Makefile.am, explain_a0i.out, explain_a0i.test: Zero-sized
     arrays are now correctly forbidden.
   * check.c, test/Makefile.am: `register` arrays are now correctly allowed.
   * gettext.h, gnulib-comp.m4, vararrays.m4: Updated Gnulib.
   * configure.ac, src/Makefile.am, cdecl_keyword.c, cdecl_keyword.h,
     did_you_mean.c, did_you_mean.h, lexer.l, parser.y, print.c, types.h,
     declare_rgf_v.out, explain_ac9i.out, explain_as9i.out,
     explain_fpcf_i_v.out: Now mentioning that an unknown name is a cdecl
     keyword and also offering cdecl keywords in suggestions.

2021-12-03  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.c: Simplified c_lang_literal().
   * autocomplete.c, c_keyword.h, did_you_mean.c:
     s/FOREACH_KEYWORD/FOREACH_C_KEYWORD/
   * configure.ac: Whitespace.
   * configure.ac: Reordering; removed "support for".

2021-12-02  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: "variadic" and "vector" are now autocompletable.
   * c_typedef.c, cdecl.c, cdecl.h: Renaming.

2021-12-01  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.c, c_sname.h, parser.y: Fixed memory leaks.
   * parser.y: Made '&' implicit in DUMP_TYPE().
   * src/Makefile.am: Added -fno-omit-frame-pointer for Address Sanitizer.
   * configure.ac, src/Makefile.am: Added support for using AddressSanitizer.
   * parser.y, util.c, util.h: Made fprint_list_gets() private to util.c.
   * print.c: s/p/elt/
   * parser.y, slist_test.c: Fixed address errors.

2021-11-29  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: Now using true_clear().
   * gibberish.c: Removed unnecessary {}.
   * gibberish.c: Removed unncessary ().
   * gibberish.c: Changed g_print_ast_func_params() to g_print_ast_list().

2021-11-28  Paul J. Lucas <paul@lucasmail.org>

   * c_operator.c, c_operator.h, test/Makefile.am,
     declare_o_brackets_2i_i-c++20.out, declare_o_brackets_2i_i.out,
     explain_o_brackets_2i_i-c++20.out, explain_o_brackets_2i_i.out,
     declare_o_brackets_2i_i-c++20.test, declare_o_brackets_2i_i.test,
     explain_o_brackets_2i_i-c++20.test, explain_o_brackets_2i_i.test: Now
     allowing `operator[]` to have zero or more arguments starting in C++23.
   * c_ast.c, c_typedef.c, lexer.l: Reformatted INTERNAL_ERR() messages.

2021-11-27  Paul J. Lucas <paul@lucasmail.org>

   * declare_o_brackets_2i_i.out, declare_o_brackets_2i_i.test: Fixed test.
   * configure.ac, lexer.l: The case-insensitive integer literal suffixes of
     `uz` and `zu` for `size_t` and `z` for `ssize_t` are now supported.

2021-11-26  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: Added more assert() cheks in gibberish.c.
   * typedef_fi_v_show.test: Removed unncessary ().
   * c_type.h, test/Makefile.am, typedef_fi_v_show.out, typedef_fi_v_show.test,
     typedef_pfi_v_show.test: typedefs of function are now correctly allowed.

2021-11-25  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c: Removed unnecessary depth assignment.

2021-11-24  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.c, c_sname.h, parser.y, slist.c, slist.h, slist_test.c: slist type
     renamings.
   * help.c: s/PUTC/FPUTC/

2021-11-22  Paul J. Lucas <paul@lucasmail.org>

   * check.c, english.c, util.c, util.h: Got rid of hacky SP_IF() macro.

2021-11-21  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, dump.c: Removed FOREACH_AST_LIST().
   * c_ast.h, c_sname.h, dump.c, parser.y, set_options.c, slist.c, slist.h:
     Added FOREACH_SLIST_NODE_UNTIL().
   * c_ast.c, c_ast.h, c_sname.c, c_sname.h, check.c, dump.c, english.c,
     gibberish.c, options.h, parser.y, set_options.c, set_options.h, slist.c,
     slist.h: FOREACH_* macro clean-up.

2021-11-19  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, c_ast_util.c, test/Makefile.am, explain_a5fd_i.out,
     explain_a5fd_pi.out, explain_a5fd_i.test, explain_a5fd_pi.test: Fixed bug
     with a declaration like int f[5](double).

2021-11-18  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Reworked "explain" rules.

2021-11-17  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, cdecl-d-eni.out: Added DUMP_AST( "decl_list_c_opt", type_ast )
     to decl_list_c_opt.
   * c_ast.c, c_ast.h, c_sglob.c, c_sglob.h, c_sname.c, c_sname.h, c_typedef.c,
     cdecl.c, gibberish.c, lexer.l, parser.y, red_black.c, red_black.h,
     red_black_test.c, set_options.c, slist.c, slist.h, slist_test.c, strbuf.c,
     strbuf.h, util.c: Renamed *_free() functions to *_cleanup() for those that
     don't free the object itself.
   * parser.y: Sorted Bison destructors.

2021-11-16  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, check.c, english.c, gibberish.c:
     s/FOREACH_PARAM/FOREACH_FUNC_PARAM/
   * english.c: Renaming.

2021-11-15  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_sname.c, c_sname.h, parser.y, set_options.c, slist.c, slist.h,
     slist_test.c, util.c: Got rid of slist data -- never used.

2021-11-11  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c: Added cast_kind to c_ast_equiv() and c_ast_dup().

2021-11-10  Paul J. Lucas <paul@lucasmail.org>

   * cdefs.h, string.in.h, wchar.in.h: Updated Gnulib.

2021-11-09  Paul J. Lucas <paul@lucasmail.org>

   * c_type.h: Reworked TA_ANY_MSC_CALL.

2021-11-08  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: s/(unsigned)/(c_bit_width_t)/
   * parser.y: s/Y_NAME/name_exp/

2021-11-07  Paul J. Lucas <paul@lucasmail.org>

   * check.c, parser.y, const_cast_pi-c.out, declare_cri.out,
     declare_fco_exclam_b.out, declare_fmo_star_rk_rk.out,
     declare_o_less_eq_greater_2rck_a-c++17.out, declare_vri.out,
     explain_+co_eq2_rck_b=default-cpp17.out, explain_2gat_cpi.out,
     explain_a_using_a_mu_i.out, explain_af-c++11.out, explain_c_gat_pi.out,
     explain_c_gat_vpi.out, explain_efi-c.out, explain_f__v-c++03.out,
     explain_f_k-knr.out, explain_fkrel_i.out, explain_frri_v-c++03.out,
     explain_gat_c_gat_vpi.out, explain_gat_cpi.out, explain_gat_i-01.out,
     explain_gat_i-02.out, explain_gat_i-03.out, explain_gat_i-04.out,
     explain_gat_i-05.out, explain_gat_i-06.out, explain_gat_i-07.out,
     explain_gat_i-08.out, explain_gat_i-09.out, explain_i_msds.out,
     explain_k_msds.out, explain_msds_i.out, explain_msds_k.out,
     explain_p_msds_i.out, explain_pmi-c.out, explain_pmrgi.out,
     explain_ri-c.out, explain_rr.out, explain_rrgi.out, explain_rrr-1.out,
     explain_rrr-2.out, explain_rrrr.out, explain_rtpi-c++-error.out,
     reinterpret_cast_pv-c.out, show_using-c++03.out, static_cast_i-c.out: s/is
     not supported/not supported/
   * parser.y, test/Makefile.am, show_using-c++03.out, show_using-c++03.test: A
     `show using` before C++11 now prints an error.
   * check.c: Properly calling c_ast_check_errors().
   * lexer.l: Added unlikely().
   * lexer.l: Moved lexer_update_loc().
   * check.c, english.c, gibberish.c, parser.y, test/Makefile.am,
     cast_pfi_i-cknr.out, cast_pfkr_i-cknr.out, declare_fkr_pi-c17.out,
     declare_fkr_pi-cknr.out, declare_pfkr_i-c17.out, explain_fkr_i-cknr.out,
     explain_fkr_pi-c17.out, cast_pfi_i-cknr.test, cast_pfkr_i-cknr.test,
     declare_fkr_pi-c17.test, declare_fkr_pi-cknr.test: For functions having
     K&R C typeless parameters, `int` is now printed in C89 and later since
     such parameters are implicitly `int`.

2021-11-06  Paul J. Lucas <paul@lucasmail.org>

   * check.c, declare_rrgi.out: A deprecated warning is now printed for a
     `register` array, enum, class, struct, union, pointer, pointer to member,
     reference, and rvalue reference between C++11 and C++14.  (Previously, a
     warning was printed only for built-in types and typedefs.)
   * c_ast.c: Removed unncessary special-case code for K_TYPEDEF.
   * c_ast.c, c_ast.h, c_kind.h: Added K_ANY_REFERRER, c_ast_is_referrer().

2021-11-05  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, c_ast_util.c, c_sname.h, c_typedef.c, check.c,
     did_you_mean.c, english.c, gibberish.c, parser.y: Removed unnecessary
     c_ast_*_name() functions.
   * c_ast.c, cdecl-d-pmki.out: Removed c_ast_set_local_type_if_is_any_scope()
     -- not needed.

2021-11-04  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Sorted rules.
   * parser.y: DUMP whitespace fix.
   * c_kind.h: s/it's/its/
   * parser.y: Moved parser_cleanup().

2021-11-03  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_ast_util.h: Made c_ast_root() not be static.

2021-11-02  Paul J. Lucas <paul@lucasmail.org>

   * check.c: s/assert/UNEXPECTED_INT_VALUE/

2021-11-01  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_ast_util.h, parser.y: Reworked parameter order for
     c_ast_add_array(), c_ast_append_array_impl(), and c_ast_add_func().
   * cdecl.1: s/number error/number/

2021-10-29  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.c, c_sname.c, c_type.c, cdecl.c, lexer.l, print.c, prompt.c,
     strbuf.c, strbuf.h: Added strbuf_reset().
   * parser.y, print.c, util.c, util.h: Added fprint_list().
   * parser.y, show_foo.out: `show` now lists all commands for defining types.

2021-10-28  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.c: Whitespace.
   * c_sname.c, c_sname.h: c_sname_impl() clean-up.

2021-10-26  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Removed unused SET_TOKEN_TO_AND_RETURN(); moved "?".
   * src/Makefile.am: Fixed slist_test_SOURCES.

2021-10-25  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am: Fixed *_test dependencies.

2021-10-24  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am, c_ast.h, parser.y, red_black_test.c, slist.c, slist.h,
     slist_test.c, unit_test.h: Added slist_free_if() to free placeholder nodes
     when adding types.

2021-10-23  Paul J. Lucas <paul@lucasmail.org>

   * slist.c: Added: if ( i_list == j_list ).

2021-10-22  Paul J. Lucas <paul@lucasmail.org>

   * options.c: Previous explicit int for signed was a bad idea.
   * options.c: For explicit int, the special case of "unsigned" by itself
     meaning "unsigned int" has been extened to "signed" by itself to mean
     "signed int."

2021-10-19  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Formatting fixes.
   * cdecl.1: s/,/./
   * cdecl.1: Qualified commands with languages valid in.
   * help.c, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c++03.out, help_command-c.out, help_commands-c++.out,
     help_commands-c.out: s/typedef/type[def]/ in help.

2021-10-17  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_ast_util.h, parser.y, explain_typedef_ci32.out: Removed
     c_ast_join_type_decl() decl_loc parameter.
   * configure.ac, parser.y, cast_rgi.out, cdecl--debug.out,
     cdecl-d-f2i_pi.out, cdecl-d-pmki.out, declare_frg_v.out,
     declare_fvx_v.out, define_rgi.out, explain_+o_eq_rck_rk=default-02.out,
     explain_+o_eq_rck_rk=delete-02.out,
     explain_+o_exclam_eq_rck_rk=delete.out, explain_a4f_i.out,
     explain_a_cd_i.out, explain_alrgi.out, explain_ari.out,
     explain_ati-c++20.out, explain_cast_ai.out, explain_cast_eti.out,
     explain_cast_rgi.out, explain_cast_si.out, explain_cast_typedef_i.out,
     explain_exsi.out, explain_fo_less_eq_greater_2rck_i=default.out,
     explain_fsi_v.out, explain_hb.out, explain_hc.out, explain_hc16.out,
     explain_hc32.out, explain_hc8.out, explain_hd.out, explain_hf.out,
     explain_hv.out, explain_hwt.out, explain_ii.out, explain_lb.out,
     explain_lc.out, explain_lc16.out, explain_lc32.out, explain_lc8.out,
     explain_ld-knr.out, explain_lf-c.out, explain_lv.out, explain_lwt.out,
     explain_main_fiapc_hi.out, explain_p_cdecl_v.out, explain_pri.out,
     explain_prri.out, explain_rf_i.out, explain_rgi-c++11.out, explain_rr.out,
     explain_rrr-1.out, explain_rrr-2.out, explain_rrrr.out, explain_sb.out,
     explain_sc16.out, explain_sc32.out, explain_sc8.out, explain_smi.out,
     explain_sv.out, explain_swt.out, explain_ub.out, explain_uc16.out,
     explain_uc32.out, explain_uc8.out, explain_ud.out, explain_uf.out,
     explain_uv.out, explain_uwt.out, typedef_ai.out, typedef_eti.out,
     typedef_rgi.out, typedef_si.out, using_eti.out, using_f-name_v.out,
     using_rgi.out, using_si.out, xec_explain_lla.out, xec_explain_llr.out,
     xec_explain_ti.out, xupc_explain_ri.out: Better error/warning locations.
   * run_test.sh: Now using diff -u for better diffs.
   * test/Makefile.am: Removed unnecessary test.

2021-10-16  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, cdecl--debug.out, cdecl-d-+i.out, cdecl-d-al8i.out,
     cdecl-d-alli.out, cdecl-d-cmo_exclam__b.out, cdecl-d-f2i_pi.out,
     cdecl-d-f_v.out, cdecl-d-faia4iaviacias6i_v.out, cdecl-d-pmki.out,
     cdecl-d-udc_i.out, cdecl-d-z.out: Fixed DUMP_AST() in
     east_modified_type_c_ast.

2021-10-15  Paul J. Lucas <paul@lucasmail.org>

   * man/man1/c++decl.1: Added -2021.
   * man/man1/Makefile.am: s/cdecl.1/$</
   * cdecl.1: s/no semantic/only some semantic/

2021-10-13  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, c_ast_util.c, check.c, english.c, test/Makefile.am,
     explain_ptdv.out, explain_ptdv.test: Fixed pointer to a `typedef` of
     `void`.

2021-10-12  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, cdecl-d-faia4iaviacias6i_v.out: Fixed DUMP_START for
     array_cast_c_astp.
   * parser.y, cdecl--debug.out, cdecl-d-+i.out, cdecl-d-al8i.out,
     cdecl-d-alli.out, cdecl-d-cmo_exclam__b.out, cdecl-d-eni.out,
     cdecl-d-f2i_pi.out, cdecl-d-f_v.out, cdecl-d-faia4iaviacias6i_v.out,
     cdecl-d-pmki.out, cdecl-d-udc_i.out, cdecl-d-z.out: Rewrote parts of the
     grammar to lower the shift-reduce conflicts from 33 to 17.
   * c_type.c: Removed redundant condition.
   * parser.y: Fix for ancient gcc that didn't like the previous static
     declaration.
   * parser.y: Rewrote parts of the grammar to lower the shift-reduce conflicts
     from 48 to 33.

2021-10-11  Paul J. Lucas <paul@lucasmail.org>

   * parser.y:
     s/type_qualifier_list_english_stid_opt/ref_qualifier_english_stid_opt/
   * parser.y: Split out type_qualifier_english_stid; eliminated
     qualifier_stack.

2021-10-10  Paul J. Lucas <paul@lucasmail.org>

   * check.c, parser.y, test/Makefile.am, cdecl-d-z.out, explain_2+n.out,
     explain_2+n.test: Now assume an unknown scoped name is a type when used as
     one.
   * src/Makefile.am: Added parser.output to clean rule.

2021-10-09  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, test/Makefile.am, xupc_explain_dq+a4i.out,
     xupc_explain_dq+a4i.test: Added %prec rule to eliminate a shift/reduce
     conflict. Also added UPC shared test with layout qualifier.
   * parser.y: Removed Y_TYPES.
   * cdecl.1: Added "[, gibberish]*" to explain.
   * cdecl.1: Added mention of _Atomic in C++23.
   * dump.c, english.c, gibberish.c, types.h: Added c_ast_sid_t,
     PRId_C_BIT_WIDTH_T, PRId_C_ARRAY_SIZE_T, PRId_C_AST_DEPTH_T,
     PRId_C_AST_ID_T, and PRId_C_AST_SID_T.
   * parser.y, explain_atci.out: Now checking for any storage or attribute
     qualified _Atomic type.

2021-10-08  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, c_ast_util.c, c_keyword.c, c_type.c, c_type.h, check.c,
     gibberish.c, parser.y, test/Makefile.am, declare_ati-c++20.out,
     explain_atci.out, explain_ati-c++20.out,
     show_all_predefined_typedef-c++.out, show_predefined_using.out,
     declare_ati-c++20.test, explain_atci.test, explain_ati-c++20.test: Now
     allowing _Atomic(T) in C++23 but forbidding cvr-qualified types.

2021-10-07  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c, cdecl.h, color.c, options.c, options.h: Moved fin, fout to
     cdecl.[hc].
   * parser.y: Now doing this more: c_ast_t *const type_ast =
     ia_type_ast_peek();
   * c_ast_util.c, c_ast_util.h, parser.y, test/Makefile.am,
     cdecl-d-faia4iaviacias6i_v.out, explain_na4i.out, explain_na4i.test: Fixed
     nested array declarations, e.g.: int (a)[4].
   * c_ast_util.c: s/c_ast_is_parent( ast->parent_ast )/ast->parent_ast !=
     NULL/
   * c_ast.c: s/unsigned/size_t/

2021-10-06  Paul J. Lucas <paul@lucasmail.org>

   * check.h, dam_lev.h, did_you_mean.h, options.h: Added
     PJL_WARN_UNUSED_RESULT.
   * lcovrc: s/CASE_K_NONE_OR_PLACEHOLDER/CASE_K_PLACEHOLDER/
   * help.c, help_options.out: Added <lang> to help for options.
   * help.c, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c++03.out, help_command-c.out, help_commands-c++.out,
     help_commands-c.out: Added [, <sibberish>]* to help for explain.
   * help.c, help_options.out: Added missing explicit-ecsu to options help.
   * configure.ac, cdecl.1, c_type.c, c_type.h, gibberish.c, options.c,
     options.h, set_options.c, test/Makefile.am, cdecl-Ix.out, cdecl-Sx.out,
     cdecl-h.out, declare_c.out, declare_pmf_pc.out, declare_pmf_pk.out,
     dynamic_cast_+pc.out, dynamic_cast_pc.out, dynamic_cast_pk.out, set.out,
     set_c++.out, set_c++03.out, set_c++11.out, set_c++14.out, set_c++17.out,
     set_c++20.out, set_c++23.out, set_c++98.out, set_c11.out, set_c17.out,
     set_c18.out, set_c89.out, set_c89_digraphs.out, set_c90.out, set_c95.out,
     set_c99.out, set_cknr.out, set_digraphs_c89.out, set_expl.out,
     set_expli.out, set_explicit-ecsu.out, set_explicit-ecsu=ecsu.out,
     set_explicit-ecsu=x.out, set_explicit-int=i.out, set_explicit-int=u.out,
     set_explicit-int=x.out, set_lang=c++.out, set_noexplicit-int.out,
     set_options.out, set_trigraphs_c++17.out, cdecl-Sx.test,
     declare_pmf_pk.test, dynamic_cast_pk.test, set_expli.test,
     set_explicit-ecsu.test, set_explicit-ecsu=ecsu.test,
     set_explicit-ecsu=x.test: Added explicit-ecsu option.

2021-10-05  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: s/Ovtober/October/
   * cdecl.1: Removed "to standard error".

2021-10-04  Paul J. Lucas <paul@lucasmail.org>

   * dump.c, cdecl--debug.out, cdecl-d-+i.out, cdecl-d-al8i.out,
     cdecl-d-alli.out, cdecl-d-cmo_exclam__b.out, cdecl-d-eni.out,
     cdecl-d-f2i_pi.out, cdecl-d-f_v.out, cdecl-d-faia4iaviacias6i_v.out,
     cdecl-d-pmki.out, cdecl-d-udc_i.out, cdecl-d-z.out: Now printing "none"
     when the type is none.
   * dump.c, cdecl-d-cmo_exclam__b.out: Reworked dumping of C++ operators.
   * dump.c: s/FPRINTF/FPUTS/
   * options.c: If the exit status is 0, the usage message is now printed to
     stdout.
   * options.c: s/printf/puts/
   * options.c: If there are more CLI options after either -h or --help, the
     exit status is now 64.
   * options.c: s/OPT_/SOPT_/

2021-10-03  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Reverted AC_INIT change.
   * help.c, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c++03.out, help_command-c.out, help_commands-c++.out,
     help_commands-c.out: Added "name" to commands help.
   * autocomplete.c: Fixed help command completion crash.
   * configure.ac: Expanded AC_INIT.
   * slist.c: Split the loop for efficiency.
   * configure.ac: Updated to 11.2 and fixed NEWS.

2021-10-02  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h, c_kind.c, c_kind.h, check.c,
     dump.c, english.c, gibberish.c, parser.y, types.h:
     s/c_kind_id_t/c_ast_kind_t/; s/kind_id/kind/
   * c_ast.h, c_ast_util.c, check.c, check.h, dump.c, english.c, english.h,
     gibberish.c, gibberish.h, parser.y, types.h, test/Makefile.am,
     cdecl--debug.out, cdecl-d-+i.out, cdecl-d-al8i.out, cdecl-d-alli.out,
     cdecl-d-cmo_exclam__b.out, cdecl-d-eni.out, cdecl-d-f2i_pi.out,
     cdecl-d-f_v.out, cdecl-d-faia4iaviacias6i_v.out, cdecl-d-pmki.out,
     cdecl-d-udc_i.out, cdecl-d-z.out, const_cast_i-c++03.out,
     const_cast_i.out, dynamic_cast_i.out, dynamic_cast_pi.out,
     reinterpret_cast_v.out, const_cast_i-c++03.test, const_cast_i.test,
     dynamic_cast_i.test, dynamic_cast_pi.test, reinterpret_cast_v.test:
     const_cast, dynamic_cast, and reinterpret_cast now perform additional
     checks.
   * dump.c, dump.h, parser.y: Added bool_dump().

2021-10-01  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c, c_keyword.c, c_keyword.h, lexer.l, literals.h: Moved
     auto-completion information for C/C++ keywords to C_KEYWORDS.
   * autocomplete.c: Now autocompletable: bits, bytes, const, enum.

2021-09-30  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h: Added missing PJL_WARN_UNUSED_RESULT.
   * parser.y: s/func/constructor/
   * parser.y: Rearranged decl_list_english.
   * parser.y: No longer printing odd "operator expected" message.
   * parser.y: Better error message for invalid help option.
   * autocomplete.c: Now autocompletes for "help" command.
   * slist.c: Reworked slist_free() to be more efficient.
   * c_ast.c, c_ast.h, c_ast_util.c: Moved c_ast_root() to c_ast_util.c.
   * c_ast.h, c_ast_util.c, c_typedef.c, check.c, english.c, gibberish.c,
     parser.y: s/c_ast_empty_name()/c_ast_name_empty()/
   * c_ast.c, c_ast.h, parser.y: s/c_ast_dup_name()/c_ast_name_dup()/
   * c_ast.h, check.c, gibberish.c, parser.y:
     s/c_ast_count_name()/c_ast_name_count()/
   * cdecl.c, util.c: FILE renaming.
   * lexer.l: s/strndup/check_strndup/
   * lexer.l: s/rv/rv_loc/
   * parser.y: Removed error_newlined.

2021-09-29  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_sname.c, c_sname.h, dump.c, dump.h, gibberish.c, gibberish.h,
     help.c, parser.y, types.h, test/Makefile.am, declare_2a4i.out,
     declare_2i.out, declare_2pfid_pc.out, declare_2pfid_pcc.out,
     declare_2pfid_v.out, declare_2pi.out, help-c++.out, help-c.out,
     help_command-c++.out, help_command-c++03.out, help_command-c.out,
     help_commands-c++.out, help_commands-c.out, declare_2a4i.test,
     declare_2i.test, declare_2pfid_pc.test, declare_2pfid_pcc.test,
     declare_2pfid_v.test, declare_2pi.test: Added ability to declare multiple
     things in the same "declare" command.
   * parser.y, test/Makefile.am, cdecl--debug.out, cdecl-d-+i.out,
     cdecl-d-al8i.out, cdecl-d-alli.out, cdecl-d-cmo_exclam__b.out,
     cdecl-d-f2i_pi.out, cdecl-d-f_v.out, cdecl-d-faia4iaviacias6i_v.out,
     cdecl-d-pmki.out, cdecl-d-z.out, explain_2npi.out, explain_2npi.test:
     Fixed multiple nested declarations crash.
   * configure.ac, cdecl.1, gibberish.c, help.c, lexer.l, literals.c,
     literals.h, parser.y, types.h, test/Makefile.am,
     declare_trigraphs_nrfi_v-c++.out, declare_trigraphs_nrfi_v-c++14.out,
     help-c++.out, help-c.out, help_command-c++.out, help_command-c++03.out,
     help_command-c.out, help_commands-c++.out, help_commands-c.out,
     help_options.out, declare_trigraphs_nrfi_v-c++14.test, help_options.test:
     Help for options is now on a separate page. Digraphs & trigraphs are no
     longer printed in unsupported languages.
   * lexer.l: Fixed comment.
   * c_ast.c, c_ast.h, c_ast_util.c, c_kind.c, c_kind.h, check.c, dump.c,
     english.c, gibberish.c: Removed K_NONE.

2021-09-28  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Fixed dump text for sname_english_ast.
   * c_ast.c, c_ast.h, c_sname.c, c_sname.h, strbuf.c, strbuf.h: Moved all
     *_free() functions out-of-line.

2021-09-27  Paul J. Lucas <paul@lucasmail.org>

   * Makefile.am: Now using coverage.info per convention.
   * Makefile.am: Added "Code coverage not enabled" message.
   * lexer.l: Removd PJL_WARN_UNUSED_RESULT from yywrap().
   * src/Makefile.am: "make clean" now removes BUILT_SOURCES.
   * configure.ac, src/Makefile.am: s/ENABLE_CODE_COVERAGE/ENABLE_COVERAGE/
   * lib/Makefile.am, intprops.h, string.in.h, wchar.in.h, extern-inline.m4,
     string_h.m4, threadlib.m4, wchar_h.m4: Updated Gnulib.
   * AUTHORS, Makefile.am, configure.ac, lcovrc, src/Makefile.am, c_ast.c,
     c_ast.h, c_ast_util.c, c_ast_util.h, c_kind.c, c_sglob.c, c_type.c,
     c_type.h, check.c, dump.c, lexer.l, options.c, options.h, parser.y,
     red_black_test.c, set_options.c, set_options.h, util.c, test/Makefile.am,
     cdecl--kolor.out, cdecl-9.out, cdecl-d-+i.out, cdecl-d-al8i.out,
     cdecl-d-alli.out, cdecl-d-cmo_exclam__b.out, cdecl-d-eni.out,
     cdecl-d-f_v.out, cdecl-d-faia4iaviacias6i_v.out, cdecl-d-pmki.out,
     cdecl-d-udc_i.out, cdecl-d-z.out, cdecl-h.out, cdecl-k.out,
     cdecl-knever.out, cdecl-kxxx.out, declare_=i-c.out,
     declare_alttokens_dtor.out, declare_alttokens_o_pipe2_rck_b.out,
     declare_alttokens_rri.out, declare_ari.out, declare_cf_v-c.out,
     declare_cnmf_v-c.out, declare_cnmf_v.out, declare_efi.out, declare_ii.out,
     declare_o_minus2_d_rk.out, declare_o_plus2_d_rk.out, declare_prgi.out,
     declare_rrgi.out, declare_rtf_v-c.out, declare_rti.out, declare_sctor.out,
     declare_thf_v.out, declare_udl_pcci_i.out, declare_xvi.out,
     explain_+compl_dtor.out, explain_+i-c.out, explain_0f_v-03.out,
     explain_a4f_i.out, explain_a4v.out, explain_a_nd_f_v.out,
     explain_af-c++11.out, explain_al8ty_i.out, explain_alf_i.out,
     explain_alrgi.out, explain_c-02.out, explain_cf_v-c.out, explain_cfi.out,
     explain_co_less_i_b=default.out, explain_co_less_rck_i=default.out,
     explain_cri.out, explain_ctor=default.out, explain_ctor_2i=default.out,
     explain_digraphs_a9i-c89.out, explain_f+o_exclam__b.out,
     explain_f_k-knr.out, explain_f_v=default.out, explain_f_v=delete.out,
     explain_fac3_v-c++.out, explain_fas3_v-c++.out, explain_fav_v-c++.out,
     explain_fd_i-cknr.out, explain_fkrel_i.out, explain_fo_exclam__b.out,
     explain_fudc_i.out, explain_i+w3.out, explain_i-reserved-c++.out,
     explain_i-reserved-c.out, explain_ii.out, explain_ktnk.out,
     explain_main_f4i_i.out, explain_main_fiapci_i.out, explain_main_fkr_i.out,
     explain_main_sf_i-c.out, explain_o_delete__v.out,
     explain_o_delete_i_v.out, explain_o_delete_pv_i.out,
     explain_o_eq_rck_v=default.out, explain_o_exclam__b=delete.out,
     explain_o_less_2rck_b=default.out, explain_o_less_rck_b=default.out,
     explain_o_minus2_d_rk.out, explain_o_new_i_pv.out,
     explain_o_new_zrrk_pv.out, explain_o_plus2__rk.out,
     explain_o_plus2_d_rk.out, explain_o_plus2_rk_rk.out,
     explain_o_plus_kel.out, explain_rf_i.out, explain_rf_v-c++03.out,
     explain_rga4i.out, explain_rgi-c++11.out, explain_rrf_v-c++03.out,
     explain_scf_v.out, explain_sudc_i.out, explain_trigraphs_a9i-c++.out,
     explain_udl__i.out, explain_udl_c_i-01.out, explain_vv_o_new_z.out,
     explain_xxf_v-c++11.out, help_english-c++03.out, k_typedef_i-c.out,
     ns_+typedef_i-c++14.out, set_alt-tokens.out, set_c89_digraphs.out,
     set_digraphs-c89.out, set_digraphs_c89.out, set_expl.out,
     set_explicit-int.out, set_explicit-int=i.out, set_explicit-int=u.out,
     set_explicit-int=x.out, set_graphs.out, set_lang=c++.out,
     set_lang=xxx.out, set_nodigraphs.out, set_noexplicit-int.out,
     set_noexplicit-int=u.out, set_prompt=x.out, set_trigraphs-c++.out,
     set_trigraphs-cknr.out, set_trigraphs_c++17.out, set_xxx.out,
     show_all_predefined_glob-04.out, cdecl--kolor.test, cdecl-9.test,
     cdecl-d-+i.test, cdecl-d-al8i.test, cdecl-d-alli.test,
     cdecl-d-cmo_exclam__b.test, cdecl-d-eni.test, cdecl-d-f_v.test,
     cdecl-d-faia4iaviacias6i_v.test, cdecl-d-pmki.test, cdecl-d-udc_i.test,
     cdecl-d-z.test, cdecl-h.test, cdecl-k.test, cdecl-knever.test,
     cdecl-kxxx.test, declare_alttokens_dtor.test,
     declare_alttokens_o_pipe2_rck_b.test, declare_alttokens_rri.test,
     declare_ari.test, declare_cnmf_v-c.test, declare_cnmf_v.test,
     declare_efi.test, declare_prgi.test, declare_rrgi.test, declare_rti.test,
     declare_sctor.test, declare_thf_v.test, declare_udl_pcci_i.test,
     declare_xvi.test, explain_+compl_dtor.test, explain_0dtor.test,
     explain_0f_v-03.test, explain_a4f_i.test, explain_a4v.test,
     explain_a_nd_f_v.test, explain_af-c++11.test, explain_al8ty_i.test,
     explain_alf_i.test, explain_alrgi.test, explain_c-02.test,
     explain_cfi.test, explain_co_less_i_b=default.test,
     explain_co_less_rck_i=default.test, explain_cri.test,
     explain_ctor=default.test, explain_ctor_2i=default.test,
     explain_digraphs_a9i-c89.test, explain_f+o_exclam__b.test,
     explain_f_v=default.test, explain_f_v=delete.test, explain_fd_i-cknr.test,
     explain_fkrel_i.test, explain_fo_exclam__b.test, explain_fudc_i.test,
     explain_i+w3.test, explain_i-reserved-c++.test, explain_i-reserved-c.test,
     explain_ktnk.test, explain_main_f4i_i.test, explain_main_fiapci_i.test,
     explain_main_fkr_i.test, explain_main_sf_i-c.test,
     explain_o_delete__v.test, explain_o_delete_i_v.test,
     explain_o_delete_pv_i.test, explain_o_eq_rck_v=default.test,
     explain_o_exclam__b=delete.test, explain_o_less_2rck_b=default.test,
     explain_o_less_rck_b=default.test, explain_o_new_i_pv.test,
     explain_o_new_zrrk_pv.test, explain_o_plus2__rk.test,
     explain_o_plus2_rk_rk.test, explain_o_plus_kel.test, explain_rf_i.test,
     explain_rga4i.test, explain_rgi-c++11.test, explain_sudc_i.test,
     explain_trigraphs_a9i-c++.test, explain_udl_c_i-01.test,
     explain_vv_o_new_z.test, explain_xxf_v-c++11.test,
     help_english-c++03.test, set_alt-tokens.test, set_digraphs-c89.test,
     set_digraphs_c89.test, set_expl.test, set_explicit-int.test,
     set_explicit-int=i.test, set_explicit-int=u.test, set_explicit-int=x.test,
     set_graphs.test, set_lang=c++.test, set_lang=xxx.test,
     set_nodigraphs.test, set_noexplicit-int.test, set_noexplicit-int=u.test,
     set_prompt=x.test, set_trigraphs-c++.test, set_trigraphs-cknr.test,
     set_trigraphs_c++17.test, set_xxx.test, show_all_predefined_glob-04.test:
     Added code-coverage and many more tests to cover previously uncovered
     code.
   * prompt.c, set_options.c: Reworked prompt handling to eliminate two
     pointers.

2021-09-26  Paul J. Lucas <paul@lucasmail.org>

   * test/Makefile.am, set_c++.out, set_c++03.out, set_c++11.out,
     set_c++14.out, set_c++17.out, set_c++20.out, set_c++23.out, set_c++98.out,
     set_c11.out, set_c17.out, set_c18.out, set_c89.out, set_c90.out,
     set_c95.out, set_c99.out, set_cknr.out, set_c++.test, set_c++03.test,
     set_c++11.test, set_c++14.test, set_c++17.test, set_c++20.test,
     set_c++23.test, set_c++98.test, set_c11.test, set_c17.test, set_c18.test,
     set_c89.test, set_c90.test, set_c95.test, set_c99.test, set_cknr.test:
     Added set c++23 test; updated set language tests to include expected
     output.

2021-09-24  Paul J. Lucas <paul@lucasmail.org>

   * test/Makefile.am: Renamed tests.

2021-09-22  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: s/scope_declaration_c/scoped_declaration_c/
   * parser.y: Better error message for missing fixed enum type.
   * parser.y: Grammar reorganization.

2021-09-21  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: s/IS_NESTED_TYPE_OK/CHECK_NESTED_TYPE_OK/
   * parser.y: Rule reordering.
   * parser.y: Moved c_sname_check() later.
   * c_type.c, parser.y: Now using c_tid_is_any() more.

2021-09-20  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Grammar rework.
   * parser.y: Renamed some grammar productions to be *_command.
   * parser.y: Better error message for in-scope declarations.
   * parser.y: Added typed_declaration_c production.
   * AUTHORS: Added C++23.

2021-09-19  Paul J. Lucas <paul@lucasmail.org>

   * check.c: Added assert().
   * check.c: Better error message for using ... in K&R C.
   * gibberish.c: Now using c_ast_is_ptr_to_kind().
   * AUTHORS, cdecl.1: Added mentions of inline and nested inline namespaces.
   * c_typedef.c: s/td_rb_visitor_data/tdef_rb_visitor_data/
   * parser.y: Added assert().
   * travis.sh: Added MAKE_OPTS.
   * c_sname.c, c_sname.h, check.c, gibberish.c, parser.y, strbuf.c, strbuf.h,
     test/Makefile.am, define_ins_ns_i.out, ins_ns_typedef_i.out,
     ns_ins_ns_typedef_i.out, ns_ins_typedef_i.out, define_ins_ns_i.test,
     ins_ns_typedef_i.test, ns_ins_ns_typedef_i.test, ns_ins_typedef_i.test:
     Added support for C++20's nested inline namespaces.

2021-09-18  Paul J. Lucas <paul@lucasmail.org>

   * test/Makefile.am: Namespace test renaming.
   * test/Makefile.am: Removed duplicate test.
   * cdecl.1, autocomplete.c, cdecl.c: `inline` is now a command in C++11 and
     later (presumed to be followed by `namespace`) and `namespace` is
     auto-completable.
   * autocomplete.c: Added "typedef" and "using" to autocomplete for "set"
     command.
   * test/Makefile.am, inamespace_typedef_i.out, inamespace_typedef_i.test:
     Added inline namespace test.

2021-09-17  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Moved comment.
   * check.c, define_namespace_c_namespace_c.out, en_ns_c.out,
     namespace_c_namespace_c.out: Removed "a" from error message.
   * c_sname.c: Eliminated is_match local variable.
   * c_sname.c: Fixed crash for any-scope matches.
   * configure.ac: Changed version to 11.0.
   * lexer.l, set_options.c: Either using a digraph or setting the digraphs
     option in a language before C95 now prints a warning that digraphs are not
     supported until C95.
   * literals.c, literals.h: Reordering.

2021-09-16  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, lexer.l, literals.c, literals.h: Added "floating-point".
   * cdecl.1, lexer.l, literals.c, literals.h: Added "double-precision".

2021-09-15  Paul J. Lucas <paul@lucasmail.org>

   * travis.sh: Switch to sh.
   * .travis.yml, travis.sh: Added own Travis CI build script.
   * .travis.yml: Added --disable-term-size.
   * cdecl.1: Added exit status code of 69.
   * run_test.sh: Now including exit status.
   * .travis.yml: Fixed ppc64le.
   * red_black_test.c: Silence -Wunused-value.
   * .travis.yml: Now using && in script; added after_success.
   * .travis.yml: Travis CI Linux + FreeBSD, multiple architectures.
   * .travis.yml: Travis-CI integration.
   * cdecl.1, c_lang.c, c_lang.h, help.c, cdecl-xx.out, help-c++.out,
     help-c.out, help_command-c++.out, help_command-c++03.out,
     help_command-c.out, help_commands-c++.out, help_commands-c.out: Now allow
     and default to C++23 for C++.
   * print.c: More print clean-up.
   * run_test.sh: Fixed columns-dependent tests.
   * autocomplete.c, c_keyword.c, c_type.c, c_type.h, c_typedef.c, cdecl.c,
     cdecl.h, check.c, help.c, parser.y, print.h, types.h: Renaming.

2021-09-13  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c: Decided to remove the MEM_ZERO() completely.
   * c_ast.c: Moved MEM_ZERO() _before_ free().
   * util.h: Removed UNEXPECTED_STR_VALUE -- not used.

2021-09-12  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, dump.c: Now calling UNEXPECTED_INT_VALUE() for K_NONE.
   * c_ast.h: Using c_ast_is_kind_any() more.
   * check.c, gibberish.c: Using c_ast_is_kind_any() more.
   * c_ast_util.c, check.c: Using c_ast_is_kind_any() more.
   * c_kind.h, check.c, english.c, gibberish.c: Added
     CASE_K_NONE_OR_PLACEHOLDER.
   * c_ast.h, c_ast_util.c, c_ast_util.h, check.c, english.c, gibberish.c: More
     explicit with cases in some switches; now untypedefing more types before
     checks.
   * gibberish.c: Made kind switch cases explicit.
   * check.c, test/Makefile.am, explain_ari.out, explain_ari.test: An array of
     reference (or rvalue reference) is now correctly flagged as an error.
   * c_sname.c, c_sname.h: c_name_local_name() and c_name_full_name() now allow
     NULL.
   * cdecl.1: Removed ancient K&R C examples.
   * cdecl.1: Added "See PREDEFINED TYPES".
   * cdecl.1: Added mention of [file:line] in debug output.
   * cdecl.1: Proper way to indent.
   * cdecl.1: Now only 1 section in ~/.editrc.
   * cdecl.1: Added https://github.com/paul-j-lucas/cdecl/issues.

2021-09-11  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, test/Makefile.am, explain_fpf_pac_i.out, explain_fpf_pac_i.test:
     Fixed "pointer to function returning pointer to array" function argument.
   * check.c, test/Makefile.am, typedef_v.out, typedef_v_explain_v.out,
     typedef_v.test, typedef_v_explain_v.test: `typedef void V` is now
     correctly allowed and `V p` is now correctly flagged as an error.
   * check.c, test/Makefile.am, explain_p_typedef_ri.out,
     explain_p_typedef_ri.test: Declarations like "typedef int &RI; explain RI
     *p" are now correctly flagged as illegal.
   * check.c, test/Makefile.am, explain_f_typedef_ai.out,
     explain_f_typedef_ai.test: Functions returning a typdef of an array are
     now flagged as illegal.

2021-09-10  Paul J. Lucas <paul@lucasmail.org>

   * print.c: Test results are now consistent regardless of whether term-size
     is enabled or disabled.
   * print.c: Made comparison explicit.
   * print.c: Setting term_columns = 0 only when !defined(ENABLE_TERM_SIZE).
   * lib/Makefile.am, attribute.h, idx.h, stdlib.in.h, string.in.h, wchar.in.h,
     gnulib-common.m4: Updated GnuLib.
   * cdecl.1, c_keyword.c, literals.c, literals.h: Added partial support for
     Microsoft's __forceinline.

2021-09-09  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l, set_options.c, test/Makefile.am,
     declare_trigraphs_o_circ_eq_i_rk.test,
     declare_trigraphs_o_circ_rcki_k.test,
     declare_trigraphs_o_pipe2_2rck_b.test,
     declare_trigraphs_o_pipe_2rck_k.test,
     declare_trigraphs_o_pipe_eq_i_rk.test, declare_trigraphs_o_tilde_k.test,
     explain_trigraphs_nrfi_v-c++11.test,
     explain_trigraphs_o_circ_eq_i_rk.test,
     explain_trigraphs_o_circ_rcki_k.test,
     explain_trigraphs_o_pipe2_2rck_b.test,
     explain_trigraphs_o_pipe_2rck_k.test,
     explain_trigraphs_o_pipe_eq_i_rk.test, explain_trigraphs_o_tilde_k.test:
     More trigraph warnings.
   * cdecl.1, c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all-c++.out,
     show_all.out, show_all_predefined-c++.out, show_all_predefined.out,
     show_all_predefined_typedef-c++.out, show_all_typedef.out,
     show_predefined-c++.out, show_predefined.out, show_predefined_typedef.out,
     show_predefined_using.out: More POSIX/standard-ish types.
   * cdecl.1, c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all-c++.out,
     show_all.out, show_all_predefined-c++.out, show_all_predefined.out,
     show_all_predefined_typedef-c++.out, show_all_typedef.out,
     show_predefined-c++.out, show_predefined.out, show_predefined_typedef.out,
     show_predefined_using.out: Added sig_t and sighandler_t.
   * c_sglob.c: Made c_sglob_parse() more robust.
   * parser.y: Added MEM_ZERO().
   * c_ast.c: Added MEM_ZERO( ast ).
   * AUTHORS: Added mention of Microsoft calling conventions.

2021-09-08  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Removed unnecessary ().
   * lexer.l: Variable renaming.
   * parser.y, test/Makefile.am, explain_mscc_f_v.out, explain_mscd_f_v.out,
     explain_msfc_f_v.out, explain_mssc_f_v.out, explain_mstc_f_v.out,
     explain_msvc_f_v.out, explain_mswa_f_v.out, explain_p_mssc_f_v.out,
     explain_pp_mssc_f_v.out, explain_mscc_f_v.test, explain_mscd_f_v.test,
     explain_msfc_f_v.test, explain_mssc_f_v.test, explain_mstc_f_v.test,
     explain_msvc_f_v.test, explain_mswa_f_v.test, explain_p_mssc_f_v.test,
     explain_pp_mssc_f_v.test: Fixed declarations like: explain int (__stdcall
     **f)()

2021-09-07  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.h, check.c: Removed c_lang_oldest_name() -- used in only 1 place.

2021-09-06  Paul J. Lucas <paul@lucasmail.org>

   * c_sglob.c: s/C_SGLOB/C_SGLOB_INLINE/

2021-09-05  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: Added g_print_ast_bit_width().
   * gibberish.c: Made "if"s slightly more efficient by added "else"s where
     possible.

2021-09-04  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h, c_sname.c, c_type.c,
     c_type.h, check.c, dump.c, english.c, gibberish.c, parser.y: s/tid/tids/
     where appropriate.
   * cdecl.h: Added #include <stddef.h>.
   * c_typedef.c, cdecl.c, cdecl.h: Added parse_cdecl_string() to cdecl.h.
   * c_typedef.c: s/c_typedef_parse_predefined/parse_predefined_types/
   * cdecl.1: s/earlier/later/
   * cdecl.1, help.c, parser.y, help_english-c++.out: Declaring a destructor in
     English now optionally allows `()`.

2021-09-03  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Reworked scope commands; added DIR.
   * parser.y: Better error message when missing '{' after namespace.
   * cdecl.1: s/pfi_rv/pfi_v/

2021-09-02  Paul J. Lucas <paul@lucasmail.org>

   * util.c: Added missing IF_EXIT( dup_s == NULL, EX_OSERR ).
   * util.c: Added PJL_IGNORE_RV().
   * c_sglob.c, c_sname.c, prompt.c, red_black.c: Added missing #include
     <stdlib.h>.
   * c_type.h: Added missing PJL_WARN_UNUSED_RESULT.
   * src/Makefile.am, c_sglob.c, c_sglob.h, c_sname.c, c_sname.h, parser.y,
     types.h: Made showing types more efficient by parsing glob only once.

2021-09-01  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l, test/Makefile.am, explain_ecf_v-Rstr-03.out,
     explain_ecf_v-Rstr-03.test: Fixed parsing of C++ raw string literals.
   * c_type.c: Sorted functions.

2021-08-31  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c: s/PREDEFINED_STD_C89/PREDEFINED_STD_C_89/
   * lexer.l: In K&R C, now printing a warning that trigraphs are not
     supported.
   * c_type.c, c_type.h: Split off functionality for "de-signed"-ing into
     c_tid_simplify() and now calling it from c_type_name().  Made
     c_tid_normalize() now also add `int` explicitly if it's implicit.
   * c_type.c: s/C2/E2/

2021-08-30  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all-c++.out,
     show_all.out, show_all_predefined-c++.out, show_all_predefined.out,
     show_all_predefined_typedef-c++.out, show_all_typedef.out,
     show_predefined-c++.out, show_predefined.out, show_predefined_typedef.out,
     show_predefined_using.out: Added the missing standard `DIR` type.
   * configure.ac, check.c, test/Makefile.am, explain_f_k-knr.out,
     explain_f_k-knr.test: Now correctly forbidding functions returning
     `struct` in K&R C.

2021-08-27  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_keyword.c, c_typedef.c, literals.c, literals.h,
     cdecl--debug.out, cdecl-d.out, show_all-c++.out, show_all.out,
     show_all_predefined-c++.out, show_all_predefined.out,
     show_all_predefined_typedef-c++.out, show_all_typedef.out,
     show_predefined-c++.out, show_predefined.out, show_predefined_typedef.out,
     show_predefined_using.out: Added single-underscore equivalents for
     Microsoft's extensions.

2021-08-26  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all-c++.out,
     show_all.out, show_all_predefined-c++.out, show_all_predefined.out,
     show_all_predefined_typedef-c++.out, show_all_typedef.out,
     show_predefined-c++.out, show_predefined.out, show_predefined_typedef.out,
     show_predefined_using.out: Added Microsoft types `__m128`, `__m128d`,
     `__m128i`, and `__m64`.
   * c_typedef.c: Added "Microsoft".
   * c_keyword.c, literals.c, literals.h: Added partial support for Microsoft's
     __asm.

2021-08-24  Paul J. Lucas <paul@lucasmail.org>

   * c_keyword.c: s/LANG_MIN(C_89)/LANG_ANY/ for __attribute__ and __declspec
     -- why not?
   * configure.ac: Added AC_TYPE_UINT64_T.
   * cdecl.1, c_keyword.c, literals.c, literals.h, parser.y, test/Makefile.am,
     explain_i_msds.out, explain_k_msds.out, explain_msds_i.out,
     explain_msds_k.out, explain_p_msds_i.out, explain_i_msds.test,
     explain_k_msds.test, explain_msds_i.test, explain_msds_k.test,
     explain_p_msds_i.test: Added partial support for Microsoft's __declspec.

2021-08-22  Paul J. Lucas <paul@lucasmail.org>

   * getopt.c, stdio.in.h, stdlib.in.h, string.in.h, gnulib-common.m4: Updated
     GnuLib.
   * configure.ac, cdecl.1, c_ast.h, c_ast_util.c, c_ast_util.h, c_keyword.c,
     c_type.c, c_type.h, check.c, gibberish.c, lexer.l, literals.c, literals.h,
     parser.y, test/Makefile.am, declare_cdecl_f.out, declare_p_cdecl_f.out,
     explain_cdecl_f.out, explain_p_cdecl_f.out, explain_p_cdecl_v.out,
     declare_cdecl_f.test, declare_p_cdecl_f.test, explain_cdecl_f.test,
     explain_p_cdecl_f.test, explain_p_cdecl_v.test: Support for Microsoft
     calling conventions.

2021-08-21  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added "in cdecl".

2021-08-19  Paul J. Lucas <paul@lucasmail.org>

   * bootstrap: Now pre-checking for autoreconf, automake, and m4.
   * pjl_config.h: s/HAVE___TYPEOF__/PJL_IGNORE_RV/

2021-08-18  Paul J. Lucas <paul@lucasmail.org>

   * c_keyword.c, c_keyword.h, c_sname.c, check.c, lexer.l, parser.y, print.c:
     s/C_KW_CTX_ALL/C_KW_CTX_DEFAULT/
   * parser.y: Moved C99 check earlier.

2021-08-15  Paul J. Lucas <paul@lucasmail.org>

   * red_black.c, red_black.h: Made rb_tree_find() take pointer-to-const
     rb_tree.
   * _Noreturn.h, cdefs.h, libc-config.h, stdio.in.h, stdlib.in.h, string.in.h,
     wchar.in.h, gnulib-common.m4: Updated GnuLib.

2021-08-08  Paul J. Lucas <paul@lucasmail.org>

   * red_black.c: Changed rb_tree_visit_node() to use iteration rather than
     recursion.

2021-08-07  Paul J. Lucas <paul@lucasmail.org>

   * attribute.h, limits.in.h, stdlib.in.h, string.in.h, verify.h, wchar.in.h,
     gnulib-common.m4, limits-h.m4: Updated Gnulib.
   * cdecl.1: Put when-to-colorize value synonyms on the same line.

2021-08-06  Paul J. Lucas <paul@lucasmail.org>

   * run_test.sh: Test script can now count ERRORs.

2021-08-05  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c, c_type.h, check.c, parser.y, print.c, test/Makefile.am,
     2k_typedef_i.out, c_namespace_c.out, cast_a3i.out, cast_f_i.out,
     cast_pfx_i.out, cast_rgi.out, cast_type_i.out, cast_typedef_i.out,
     cdecl-23.out, cdecl-Ix.out, cdecl-xx.out, const_cast_pi-c.out,
     declare_+ctor-error.out, declare_+o_eq_rck_rk=default-c++03.out,
     declare_+o_eq_rck_rk=delete-c++03.out, declare_0f_v-c.out,
     declare_=i-c.out, declare_a_cd_i.out, declare_a_nua_f.out,
     declare_ac3i.out, declare_af.out, declare_ai-c++11.out, declare_as3i.out,
     declare_avi.out, declare_b-c89.out, declare_b_ai.out, declare_b_f_i.out,
     declare_c-c.out, declare_c16-c++03.out, declare_c16-c99.out,
     declare_c32-c++03.out, declare_c32-c99.out, declare_c8-c++17.out,
     declare_cf_v-c.out, declare_cnmf_v.out, declare_co_exclam_k_b.out,
     declare_cri.out, declare_en-knr.out, declare_enc-c.out, declare_epf.out,
     declare_etsf_v.out, declare_exsi.out, declare_f_ai.out, declare_f_f_i.out,
     declare_fcf.out, declare_fco_exclam_b.out, declare_ff_v-c.out,
     declare_fiiv_v.out, declare_fiv_v.out, declare_fkr_pi.out,
     declare_fmf_v.out, declare_fmo_star_rk_rk.out, declare_fn.out,
     declare_frg_v.out, declare_fsi_v.out, declare_fuw3_v.out,
     declare_fvx_v.out, declare_hb.out, declare_hc.out, declare_hc16.out,
     declare_hc32.out, declare_hc8.out, declare_hd.out, declare_hf.out,
     declare_hl.out, declare_hll.out, declare_hv.out, declare_hwt.out,
     declare_ii.out, declare_ji.out, declare_lb.out, declare_lc.out,
     declare_lc16.out, declare_lc32.out, declare_lc8.out, declare_ld-knr.out,
     declare_lf-c.out, declare_ll-c89.out, declare_ll-knr.out, declare_lll.out,
     declare_lv.out, declare_lwt.out, declare_mo_arrow_i.out,
     declare_nmo_amper_i_i.out, declare_nmo_arrow_rk_pk.out,
     declare_nmo_brackets_rcki_v.out, declare_nmo_eq_rki_rk.out,
     declare_nmo_parens_rck_v.out, declare_nrfi_v-01-c++.out, declare_nri.out,
     declare_o_arrow_i.out, declare_o_arrow_rk_pk.out,
     declare_o_brackets_2i_i.out, declare_o_colon2_rk_rk.out,
     declare_o_dot_k.out, declare_o_dot_star_rk_rk.out,
     declare_o_exclam_2i.out, declare_o_less_eq_greater_2rck_a-c++17.out,
     declare_o_minus2_d_rk.out, declare_o_minus2_rkd_rk.out,
     declare_o_minus_iel_i.out, declare_o_oexclam_k_b.out,
     declare_o_plus2_d_rk.out, declare_o_plus2_rkd_rk.out,
     declare_o_plus_iel_i.out, declare_o_qmark_colon_k2i_i.out,
     declare_pfkr_i.out, declare_pk.out, declare_pmri.out, declare_pri.out,
     declare_puw3.out, declare_pv-knr.out, declare_rgf_v.out,
     declare_ro_exclam_k_b.out, declare_rrgi.out, declare_rro_exclam_k_b.out,
     declare_rtf_v-c.out, declare_rv.out, declare_sb.out, declare_sc-knr.out,
     declare_sc16.out, declare_sc32.out, declare_sc8.out, declare_si-knr.out,
     declare_sl-knr.out, declare_smi.out, declare_sv.out, declare_swt.out,
     declare_t.out, declare_typedef_i_al8.out, declare_ub.out,
     declare_uc16.out, declare_uc32.out, declare_uc8.out, declare_ud.out,
     declare_udc_a4i.out, declare_uf.out, declare_uv.out, declare_uwt.out,
     declare_uz.out, declare_v+f_v.out, declare_v.out, declare_vf_v-c.out,
     declare_vo_exclam_k_b.out, declare_vri.out, declare_wt-c89.out,
     declare_xxi-c.out, declare_yo_exclam_k_b.out, define_=sc_i.out,
     define_ai.out, define_c_int_least32_t.out, define_eti.out,
     define_namespace_=c_i.out, define_namespace_c_namespace_c.out,
     define_rgi.out, define_si.out, dynamic_cast_pc-c.out, en_ns_c.out,
     explain_+co_eq2_rck_b=default-cpp17.out, explain_+ctor-error.out,
     explain_+dtor-error.out, explain_+i-c.out,
     explain_+o_eq_rck_rk=default-02.out, explain_+o_eq_rck_rk=delete-02.out,
     explain_+o_exclam_eq_rck_rk=delete.out, explain_0f_v-02.out,
     explain_0f_v-c.out, explain_a_cd_i.out, explain_a_nua_f.out,
     explain_ac9i.out, explain_af.out, explain_ai-c++11.out, explain_al3_c.out,
     explain_as9i.out, explain_b-c89.out, explain_b_ai.out, explain_c-c.out,
     explain_c16-c++03.out, explain_c16-c99.out, explain_c32-c++03.out,
     explain_c32-c99.out, explain_c8-c++17.out, explain_c_al3.out,
     explain_cast_a3a5a7i.out, explain_cast_a3a5i.out, explain_cast_a3i.out,
     explain_cast_ai.out, explain_cast_eti.out, explain_cast_lll.out,
     explain_cast_rgi.out, explain_cast_si.out, explain_cast_typedef_i.out,
     explain_cepctor_i.out, explain_cf_v-c.out, explain_ci-knr.out,
     explain_cmo_less_eq_greater_rck_i=default.out, explain_co_exclam_k_b.out,
     explain_const_cast_pi-c.out, explain_dynamic_cast_pc-c.out,
     explain_efd.out, explain_efi-c.out, explain_en-knr.out, explain_enc.out,
     explain_enk.out, explain_etsf_v.out, explain_exsi.out, explain_f+_v.out,
     explain_f__v-c++03.out, explain_f_ai.out, explain_f_v__v.out,
     explain_fa_v-c++17.out, explain_fac3_v-c++.out, explain_fas3_v-c++.out,
     explain_fasv_v.out, explain_fav_v-c++.out, explain_fel_v.out,
     explain_felcc_v.out, explain_felel_v.out, explain_felv_v.out,
     explain_ff_v-c.out, explain_fiiv_v.out, explain_fiv_v.out,
     explain_fkr_pi.out, explain_fkr_v.out, explain_fn.out,
     explain_fo_eq2_crki_b=default.out, explain_fo_eq2_crkk_b=default.out,
     explain_fo_eq2_crkrk_b=default.out, explain_fo_eq2_icrk_b=default.out,
     explain_fo_eq2_ik_b=default.out, explain_fo_eq2_kcrk_b=default.out,
     explain_fo_eq2_ki_b=default.out, explain_fo_eq2_rkcrk_b=default.out,
     explain_fo_less_eq_greater_2rck_i=default.out,
     explain_fo_plus_2crk_b=default.out, explain_fpcf_i_v.out,
     explain_frg_v.out, explain_frri_v-c++03.out, explain_fsf_v.out,
     explain_fsi_v.out, explain_fuw3_v.out, explain_fvel_v.out,
     explain_fvi_v.out, explain_fvv_v.out, explain_fvx_v.out, explain_hb.out,
     explain_hc.out, explain_hc16.out, explain_hc32.out, explain_hc8.out,
     explain_hd.out, explain_hf.out, explain_hl.out, explain_hll.out,
     explain_hv.out, explain_hwt.out, explain_i-itself.out, explain_ii.out,
     explain_lb.out, explain_lc.out, explain_lc16.out, explain_lc32.out,
     explain_lc8.out, explain_ld-knr.out, explain_lf-c.out, explain_ll-c89.out,
     explain_ll-knr.out, explain_lll.out, explain_lv.out, explain_lwt.out,
     explain_main_f2c_i.out, explain_main_f_v.out, explain_main_fi_i.out,
     explain_main_fiapc_hi.out, explain_main_fic_i.out,
     explain_main_fipc_i.out, explain_main_fippi_i.out,
     explain_nrfi_v-c++-error.out, explain_o_arrow_i.out,
     explain_o_brackets_2i_i.out, explain_o_exclam_2i.out,
     explain_o_minus2_d_rk.out, explain_o_minus2_rkd_rk.out,
     explain_o_minus_iel_i.out, explain_o_new_z_z.out,
     explain_o_plus2_d_rk.out, explain_o_plus2_rkd_rk.out,
     explain_o_plus_iel_i.out, explain_o_qmark_colon_k2i_i.out,
     explain_ov_o_exclam_k_b.out, explain_pcf_i.out, explain_pmi-c.out,
     explain_pmrgi.out, explain_pmri.out, explain_pri.out, explain_prri.out,
     explain_puw3.out, explain_pv-knr.out, explain_reinterpret_cast_pv-c.out,
     explain_rf_v-c++03.out, explain_rgf_v.out, explain_ri-c.out,
     explain_ro_exclam_k_b.out, explain_rr.out, explain_rrf_v-c++03.out,
     explain_rrgi.out, explain_rro_exclam_k_b.out, explain_rrr-1.out,
     explain_rrr-2.out, explain_rrrr.out, explain_rtf_v-error.out,
     explain_rtpi-c++-error.out, explain_rv.out, explain_sb.out,
     explain_sc-knr.out, explain_sc16.out, explain_sc32.out, explain_sc8.out,
     explain_scf_v.out, explain_si-knr.out, explain_sl-knr.out,
     explain_smi.out, explain_srf_v.out, explain_srrf_v.out,
     explain_static_cast_i-c.out, explain_sv.out, explain_swt.out,
     explain_thf_v.out, explain_tli-c99.out, explain_type_i.out,
     explain_typedef_ci32.out, explain_ub.out, explain_uc16.out,
     explain_uc32.out, explain_uc8.out, explain_ud.out, explain_udc_a4i.out,
     explain_udl_2c_i.out, explain_udl_3c_i.out, explain_udl__i.out,
     explain_udl_c_i-c.out, explain_udl_piul_i.out, explain_udl_ul_i.out,
     explain_uf.out, explain_using_pfi_v-c.out, explain_uv.out,
     explain_uwt.out, explain_v+f_v.out, explain_v.out, explain_vf_v-c.out,
     explain_vi-knr.out, explain_vo_exclam_k_b.out, explain_vovyf-c.out,
     explain_wt-c89.out, explain_xif_i.out, explain_xxi-c.out,
     explain_yo_exclam_k_b.out, file-cast_x.out, file-declare_x.out,
     file-explain_x.out, k_namespace_typedef_i.out, k_ns_typedef_i.out,
     k_typedef_i-c.out, namespace_+typedef_i-c++14.out,
     namespace_c_namespace_c.out, reinterpret_cast_pv-c.out, show_foo.out,
     static_cast_i-c.out, typedef_ai.out, typedef_c_int_least32_t.out,
     typedef_eti.out, typedef_i+.out, typedef_iw3.out, typedef_rgi.out,
     typedef_si.out, typedef_tni.out, using_ai.out, using_c_int_least32_t.out,
     using_eti.out, using_f-name_v.out, using_i-c.out, using_rgi.out,
     using_si.out, xec_explain_lla.out, xec_explain_llr.out, xec_explain_t.out,
     xec_explain_ti.out, xupc_explain_ri.out, run_test.sh,
     explain_fo_plus_2crk_b=default.test, update_test.sh: Now diff'ing error
     test output during "make check"; improved several error messages.

2021-08-01  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Better error message when attempting to overload operators in C.
   * check.c, parser.y: s/c_lang_which( LANG_CPP_11 )/c_lang_which(
     LANG_CPP_MIN(11) )/ and similar so error messages print " until C++XX"
     rather than " unless C++XX".

2021-07-29  Paul J. Lucas <paul@lucasmail.org>

   * threadlib.m4: Updated Gnulib.
   * c_lang.h: Fixed printing of "(with XXXXX extensions)".
   * c_kind.h, c_type.h, types.h: s/0/0u/

2021-07-28  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.c: Now in error messages, if there is only a single language that's
     relevant, prints "unless <lang>".

2021-07-16  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, check.c: Marking functions and conversion operators `=
     delete` is now supported.

2021-07-12  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.c, lexer.l, util.c, util.h: Simplified parse_identifier().

2021-07-08  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Clarification that ~/.editrc doesn't _need_ to be present.
   * cdecl.1: Added "or even the platform on which cdecl is running.
   * cdecl.1: Added less(1).

2021-07-05  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Now setting lexer_keyword_ctx = C_KW_CTX_MBR_FUNC only in C++.
   * gibberish.c: Completed set of digraphs and trigraphs even though they're
     not used in cdecl.
   * c_typedef.c: Moved mbstate_t to C95.

2021-07-03  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Added free_later().

2021-07-02  Paul J. Lucas <paul@lucasmail.org>

   * check.c: s/identifier/name/

2021-07-01  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, cdecl.c, did_you_mean.c, lexer.l: Fixed
     PJL_WARN_UNUSED_RESULT and PJL_NOWARN_UNUSED_RESULT in various locations.

2021-06-30  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: s/CONFIGURATION FILE/CONFIGURATION FILES/
   * cdecl.1: Added section on ~/.editrc.
   * cdecl.1: Added .editrc entry.
   * c_ast_util.c: Added asserts.

2021-06-29  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_kind.c: Added assert().
   * c_ast_util.c: s/kind_id/kind_ids/

2021-06-28  Paul J. Lucas <paul@lucasmail.org>

   * stdio.in.h, unistd.in.h: Updated GnuLib.
   * autocomplete.c, c_lang.c, c_lang.h, c_type.c, did_you_mean.c, gibberish.c,
     parser.y: Added opt_lang_is_any().
   * cdecl.c, types.h: s/C_COMMAND_ANY/C_COMMAND_ANYWHERE/
   * cdecl.c, cdecl.h, print.c, print.h: Moved command_line, command_line_len,
     and inserted_len into new print_params struct.

2021-06-27  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c: c_ast_set_name() is now also setting the local scope-type if
     necessary.
   * c_kind.h: Reworked c_kind to use (1u << n).
   * c_kind.h: Simplified K_ANY_OBJECT and K_ANY_PARENT.

2021-06-24  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.h: Fixed comment capitalization.

2021-06-19  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Pointers to union members are now allowed.
   * c_ast.h, types.h: Moved c_visit_dir to c_ast.h.

2021-06-17  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c, cdecl.h, print.c: Moved extern variables into cdecl.h.
   * c_type.h, english.c: s/c_tid_name_eng/c_tid_name_english/
   * english.c: s/non_type_name/c_type_print_not_base/

2021-06-14  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added missing "on".

2021-06-13  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, libc-config.h, string.in.h, unistd.in.h,
     gnulib-common.m4, gnulib-comp.m4, unistd_h.m4: Updated Gnulib.
   * help.c, help_english-c++.out, help_english-c.out, help_english-c89.out,
     help_english-knr.out: `typedef` has been added to the "store" section of
     English help.
   * c_keyword.c, c_lang.c, options.c, set_options.c: Simplified *_next()
     functions.
   * c_keyword.c, c_lang.c, set_options.c: Simplified *_next() functions.
   * options.c, options.h, set_options.c: Swapped parameter order for
     parse_explicit_int().
   * util.h: s/long long/unsigned long long/
   * c_kind.c, c_kind.h: Removed INLINE stuff -- no longer needed.
   * configure.ac, c_ast.c, c_ast.h, c_ast_util.c, c_kind.h, check.c,
     english.c: Changed visitor data type to uint64_t so it's always 64 bits
     and so can always hold that or a pointer, even on 32-bit platforms.
   * c_ast_util.c: No longer using "data" parameter of c_ast_visitor_name().
   * c_ast_util.c: Now using c_type_or_eq().
   * c_type.c: Optimized calls to c_tid_normalize().
   * c_type.c: c_type_equal() now normalizes the base tids.

2021-06-12  Paul J. Lucas <paul@lucasmail.org>

   * c_type.h: Added TB_COMPLEX and TB_INT to TB_ANY_MODIFIEE.
   * c_type.c, c_type.h, check.c, gibberish.c: More uses of TS_CONST_VOLATILE.
   * c_type.h: Simplification of c_tid_is_size_t().
   * c_type.c, c_type.h: s/TX_MASK_PART_ID/TX_MASK_TPID/
   * c_type.h: Renaming.
   * c_type.c, check.c, gibberish.c, options.c: Now using c_tid_is_any() more.
   * dump.c: s/_/./
   * dump.c, dump.h, parser.y: s/kv_dump/str_dump/
   * parser.y: Sorted macros.

2021-06-11  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, test/Makefile.am, using_f-name_v.test: `using` declarations now
     correctly forbid names in the types on the right-hand side.
   * cdecl.1: Added (missing) mention of `constexpr` to C++11.

2021-06-10  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, c_type.c, gibberish.c, declare_ovc_udc_i.out,
     declare_ovyf.out, declare_vovyf.out: In C++, at most one of `virtual`,
     `final`, or `override` is now printed.
   * c_type.c: Simplified c_type_name() a bit.
   * c_type.c: Simplified c_tid_normalize().

2021-06-08  Paul J. Lucas <paul@lucasmail.org>

   * dump.c, cdecl--debug.out, cdecl-d.out: s/base/btid/; s/store/stid/;
     s/attr/atid/
   * parser.y, cdecl--debug.out, cdecl-d.out: Renamed grammar rules *_tid* to
     *_[bsa]tid*.
   * c_ast_util.c, c_type.c, c_type.h, check.c, parser.y: s/_tid/_tids/ (when
     plural)/; s/_tid/_stid/ (when appropriate)
   * c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h, c_sname.c, c_type.c,
     c_type.h, check.c, dump.c, english.c, gibberish.c, parser.y:
     s/base_tid/btid/; s/store_tid/stid/; s/attr_tid/atid/
   * c_ast.h, c_ast_util.c, c_ast_util.h, c_keyword.h, c_sname.c, c_type.c,
     c_type.h, check.c, did_you_mean.c, dump.c, dump.h, english.c, gibberish.c,
     lexer.l, options.c, options.h, parser.y, print.c, types.h:
     s/c_type_id/c_tid/; s/c_type_part_id/c_tpid/

2021-06-07  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, cdecl.c: /parse_/parse_cdecl_/
   * c_typedef.c: Added "const".
   * c_sname.c, lexer.l: Made c_sname_parse() more robust and not return false
     positives.

2021-06-06  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.h: Simplified SNAME_VAR_INIT().
   * parser.y: Didn't need c_type_is_none() check before setting TB_SCOPE.
   * parser.y: Now using c_sname_check() in of_scope_list_english.
   * alloca.in.h, attribute.h, btowc.c, ctype.in.h, errno.in.h, fnmatch.in.h,
     getdelim.c, getline.c, getopt-cdefs.in.h, getopt-pfx-core.h,
     getopt-pfx-ext.h, getopt.in.h, gettext.h, hard-locale.c, hard-locale.h,
     inttypes.in.h, isblank.c, lc-charset-dispatch.c, lc-charset-dispatch.h,
     limits.in.h, localcharset.c, localcharset.h, locale.in.h,
     mbrtowc-impl-utf8.h, mbrtowc-impl.h, mbrtowc.c, mbsinit.c,
     mbsrtowcs-impl.h, mbsrtowcs-state.c, mbsrtowcs.c, mbtowc-impl.h,
     mbtowc-lock.c, mbtowc-lock.h, mbtowc.c, memchr.c, memchr.valgrind,
     mempcpy.c, setlocale-lock.c, setlocale_null.c, setlocale_null.h,
     stdarg.in.h, stdbool.in.h, stddef.in.h, stdint.in.h, stdio.in.h,
     stdlib.in.h, stdnoreturn.in.h, streq.h, string.in.h, strndup.c, strnlen.c,
     strnlen1.c, strnlen1.h, strsep.c, sys_types.in.h, sysexits.in.h, unistd.c,
     unistd.in.h, verify.h, wchar.in.h, wctype-h.c, wctype.in.h,
     windows-initguard.h, wmemchr-impl.h, wmemchr.c, wmempcpy.c, visibility.m4:
     Updated GnuLib.

2021-06-05  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, c_sname.h, c_type.h, lexer.l, parser.y: s/scope
     type/scope-type/
   * src/Makefile.am, c_ast_util.h, check.c, check.h, parser.y: Added check.h;
     moved c_sname_check() into it (and .c).
   * test/Makefile.am: Test renaming.
   * c_type.c, c_type.h, parser.y, test/Makefile.am, en_ns_c.test: Fixed
     checking of enum scope types.
   * c_type.c, c_type.h: Adde TB_ANY_MODIFIEE.
   * c_sname.c, c_sname.h, c_type.c, c_type.h, parser.y: Moved functions
     around.

2021-06-04  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_typedef.c, c_typedef.h, parser.y: When attempting to use
     an sname with a scope-type that doesn't match a previously declared type,
     the previously declared type is printed.
   * c_type.h, parser.y, test/Makefile.am, define_namespace_c_namespace_c.test:
     Now also checking the scope-types of English snames.
   * parser.y: Fixed "previosuly declared as <type>".
   * parser.y: Renaming.

2021-06-03  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Fixed printing of previously declared type.
   * parser.y: Renaming.
   * parser.y: Added c_typedef_find_scope().
   * parser.y: Removed redundant code.
   * configure.ac, c_type.h, c_typedef.c, parser.y, test/Makefile.am,
     cdecl--debug.out, cdecl-d.out, namespace_c_namespace_+e.out,
     c_namespace_c.test, namespace_c_namespace_+e.test,
     namespace_c_namespace_c.test: Fixed setting of snames' scope types and
     checking for clashes with previous declarations.
   * c_ast_util.c, c_ast_util.h, c_type.h, check.c: Fixed incorrect using of
     loc of untypedef'd AST.

2021-06-02  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.c, c_sname.h, english.c: c_sname_local_type() now always returns
     the type of the inner-most scope.
   * slist.h: Made FOREACH_SLIST() cast away const so it can iterate over const
     and non-const.

2021-06-01  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.h: Fixed comment.
   * c_typedef.c, cdecl--debug.out, cdecl-d.out: Now using abbreviated type
     declaration syntax for more predefined types.
   * parser.y: Now setting intermediate scopes to TB_NAMESPACE if they don't
     already have a type.
   * cdecl.1, c_typedef.c, lexer.l, cdecl--debug.out, cdecl-d.out,
     show_all-c++.out, show_all.out, show_all_predefined-c++.out,
     show_all_predefined.out, show_all_predefined_typedef-c++.out,
     show_all_typedef.out, show_predefined-c++.out, show_predefined_using.out:
     Fixed lexer matching partial tokens; added regex_constants and other
     types.

2021-05-31  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Now checking for constructor sname first.
   * parser.y: No longer unnessarily changing TB_SCOPE to TB_NAMESPACE.

2021-05-30  Paul J. Lucas <paul@lucasmail.org>

   * print.c, util.h: Added WS.
   * print.c: Made whitespace order sorted.
   * lexer.l: Reformatting.
   * c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all-c++.out,
     show_all.out, show_all_predefined-c++.out, show_all_predefined.out,
     show_all_predefined_typedef-c++.out, show_all_typedef.out,
     show_predefined-c++.out, show_predefined_using.out: Added types
     `std::ios_base`, `std::ios_base::fmtflags`, `std::ios_base::iostate`,
     `std::ctype_base::mask`, `std::ios_base::openmode`, `std::launch`, and
     `std::chars_format`.

2021-05-29  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Now forbidding changing scope type of nested namespaces.
   * parser.y: For nested namespaces, now setting scope type only if they don't
     have one.
   * parser.y: s/any_sname_c/any_sname_c_exp; s/sname_c/any_sname_c_exp/
   * configure.ac, options.c: Fixed flex-debug build.

2021-05-27  Paul J. Lucas <paul@lucasmail.org>

   * did_you_mean.c: Removed unnecessary check.
   * autocomplete.c, cdecl.c, cdecl.h, did_you_mean.c: Added FOREACH_COMMAND().

2021-05-26  Paul J. Lucas <paul@lucasmail.org>

   * Makefile.am: Added bootstrap ane makedoc.sh to EXTRA_DIST.
   * configure.ac: Updated version to 10.0.
   * check.c: Formatting.
   * cdecl.1: Added NOTES section about main().
   * cdecl.1: Rewording.
   * cdecl.1: Added "constant".
   * check.c: Always do main() checks in C.
   * c_type.h, check.c, test/Makefile.am, explain_main_vf_h.out,
     explain_main_vf_h.test: If a function named "main" has any storage-like
     type that can't be used with the program's `main()`, assume it's just a
     member function named "main" and not the program's `main()`.
   * cdecl.1, c_ast_util.c, c_ast_util.h, c_type.c, c_type.h, c_typedef.c,
     check.c, test/Makefile.am, cdecl--debug.out, cdecl-d.out,
     explain_+co_eq2_rck_b=default.out,
     explain_cmo_less_eq_greater_rck_a=default.out,
     explain_co_eq2_crk_b=default.out, explain_fo_eq2_2crk_b=default.out,
     explain_fo_eq2_2k_b=default.out, explain_mo_less_eq_greater_rck_a.out,
     explain_o_less_eq_greater_2rck_i.out,
     explain_+co_eq2_rck_b=default-cpp17.test,
     explain_+co_eq2_rck_b=default.test,
     explain_cmo_less_eq_greater_rck_a=default.test,
     explain_cmo_less_eq_greater_rck_i=default.test,
     explain_co_eq2_crk_b=default.test, explain_fo_eq2_2crk_b=default.test,
     explain_fo_eq2_2k_b=default.test, explain_fo_eq2_crki_b=default.test,
     explain_fo_eq2_crkk_b=default.test, explain_fo_eq2_crkrk_b=default.test,
     explain_fo_eq2_icrk_b=default.test, explain_fo_eq2_ik_b=default.test,
     explain_fo_eq2_kcrk_b=default.test, explain_fo_eq2_ki_b=default.test,
     explain_fo_eq2_rkcrk_b=default.test,
     explain_fo_less_eq_greater_2rck_i=default.test,
     explain_fo_plus_2crk_b=default.test,
     explain_mo_less_eq_greater_rck_a.test,
     explain_o_less_eq_greater_2rck_i.test: Now support defaulting of
     relational operators in C++20.
   * c_ast_util.c, c_ast_util.h: Removed c_ast_is_ref_to_type_any() --
     shouldn't be here yet.
   * test/Makefile.am: Fixed test run.
   * c_ast_util.c, test/Makefile.am, explain_rgk.out, explain_rgk.test: The
     return type of `main()` is now correctly restricted to `int`. Declaring a
     `struct` as `register` is now legal.
   * test/Makefile.am: Fixed some duplicate/incorrect tests.

2021-05-25  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Made show_type_visitor() slightly more efficient.

2021-05-24  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.h, c_type.h, check.c: Added C_TYPE_LIT_x_ANY() macros.

2021-05-23  Paul J. Lucas <paul@lucasmail.org>

   * check.c: Simplification.
   * check.c: Added missing "const".
   * check.c: s/c_type_is_tid_any( &ast->type, TB_VOID )/c_ast_is_builtin_any(
     ast, TB_VOID )/
   * check.c: Simplified member vs. non-member operator string.
   * check.c: Fixed hidden bug with and cleaned-up operator member/non-member
     determination.
   * check.c: Moved call of c_ast_check_oper_params() to end of
     c_ast_check_oper().
   * c_ast_util.c, c_ast_util.h, c_operator.c, c_operator.h, english.c:
     s/c_oper_get_overload()/c_ast_oper_overload()/
   * c_operator.c, c_operator.h: Added C_OP_NOT_OVERLOADABLE into
     c_oper_get_overload(); changed C_OP_NOT_OVERLOADABLE to (1u<<2); changed
     C_OP_MASK_OVERLOAD to 0x7u.

2021-05-22  Paul J. Lucas <paul@lucasmail.org>

   * check.c: Changed if/else/if to switch.
   * check.c: Added overload_flags; s/is_user_non_member/is_non_member/

2021-05-21  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_ast_util.h, c_type.h: Overhaul of
     c_ast_is_ptr_to_tid_any() and c_ast_is_ref_to_tid_any() to better handle
     const/volatile.
   * c_type.c, c_type.h: Added c_type_get_tid().

2021-05-20  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c, c_type.h: Changed semantics of c_type_is_any() to check only
     non-NONE types.

2021-05-18  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c: Added c_type_id_normalize().
   * c_type.c: Simplified c_type_is_any().

2021-05-18  Marco Sirabella <marco@sirabella.org>

   * configure.ac: Search for the library containing: tigetnum (tinfo)

2021-05-17  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c: c_ast_is_ref_to_tid_any() now insists on a reference.
   * dump.c: For typedefs, now dumping entire for_ast.
   * c_ast_util.c, c_type.c, c_type.h: Made c_ast_is_ptr_to_tid_any() and
     c_ast_is_ref_to_tid_any() now accept any type part ID.
   * declare_+o_delete_a_pv_v.test, declare_+o_delete_pv_v.test,
     declare_+o_eq_rck_rk=default-c++03.test,
     declare_+o_eq_rck_rk=default.test, declare_+o_eq_rck_rk=delete-c++03.test,
     declare_+o_eq_rck_rk=delete.test, declare_+o_new_a_z_pv.test,
     declare_+o_new_z_pv.test, declare_alttokens_o_amper2_rck_b.test,
     declare_alttokens_o_amper_eq_rki_rk.test,
     declare_alttokens_o_amper_rcki_k.test,
     declare_alttokens_o_circ_eq_i_rk.test,
     declare_alttokens_o_circ_rcki_k.test,
     declare_alttokens_o_exclam_eq_rcki_b.test,
     declare_alttokens_o_exclam_rck_b.test,
     declare_alttokens_o_pipe_2rck_k.test,
     declare_alttokens_o_pipe_eq_i_rk.test, declare_alttokens_o_pipe_i_rk.test,
     declare_alttokens_o_tilde_k.test, declare_ck2-ec.test, declare_ck2.test,
     declare_co_exclam_k_b.test, declare_fmo_star_rk_rk.test,
     declare_mo_amper2_rck_b.test, declare_mo_amper_eq_i_rk.test,
     declare_mo_amper_i_rk.test, declare_mo_amper_pk.test,
     declare_mo_arrow_i.test, declare_mo_arrow_pk.test,
     declare_mo_arrow_star_i_rk.test, declare_mo_circ_eq_i_rk.test,
     declare_mo_comma_i_rk.test, declare_mo_greater2_eq_i_rk.test,
     declare_mo_greater2_i_k.test, declare_mo_greater_eq_rcki_b.test,
     declare_mo_less2_eq_i_rk.test, declare_mo_less2_i_k.test,
     declare_mo_less_eq_rcki_b.test, declare_mo_minus_eq_i_rk.test,
     declare_mo_minus_i_k.test, declare_mo_percent_eq_i_rk.test,
     declare_mo_percent_i_k.test, declare_mo_pipe2_rck_b.test,
     declare_mo_pipe_eq_i_rk.test, declare_mo_pipe_i_rk.test,
     declare_mo_plus_eq_i_rk.test, declare_mo_plus_i_k.test,
     declare_mo_slash_eq_i_rk.test, declare_mo_star_eq_i_rk.test,
     declare_mo_star_i_rk.test, declare_mo_star_rk.test,
     declare_mo_tilde_k.test, declare_nmo_amper2_2rck_b.test,
     declare_nmo_amper_eq_rki_rk.test, declare_nmo_amper_rcki_k.test,
     declare_nmo_amper_rk_pk.test, declare_nmo_arrow_rk_pk.test,
     declare_nmo_arrow_star_rki_rk.test, declare_nmo_brackets_rcki_v.test,
     declare_nmo_circ_rcki_k.test, declare_nmo_comma_rki_rk.test,
     declare_nmo_eq_rki_rk.test, declare_nmo_exclam_eq_ki_b.test,
     declare_nmo_exclam_rck_b.test, declare_nmo_greater2_rcki_k.test,
     declare_nmo_greater_eq_rcki_b.test, declare_nmo_greater_rcki_b.test,
     declare_nmo_less2_eq_rki_rk.test, declare_nmo_less2_rcki_k.test,
     declare_nmo_less_eq_rcki_b.test, declare_nmo_less_rcki_b.test,
     declare_nmo_minus2_rki_rk.test, declare_nmo_minus_eq_rki_rk.test,
     declare_nmo_minus_rcki_k.test, declare_nmo_parens_rck_v.test,
     declare_nmo_percent_eq_rki_rk.test, declare_nmo_percent_rcki_k.test,
     declare_nmo_pipe2_2rck_b.test, declare_nmo_pipe_eq_rki_rk.test,
     declare_nmo_plus2_rki_rk.test, declare_nmo_plus_eq_rki_rk.test,
     declare_nmo_plus_rcki_k.test, declare_nmo_slash_eq_rki_rk.test,
     declare_nmo_slash_rcki_k.test, declare_nmo_star_eq_rki_rk.test,
     declare_nmo_star_rck_k.test, declare_nmo_star_rcki_k.test,
     declare_nmo_tilde_rck_k.test, declare_o_amper2_2rck_b.test,
     declare_o_amper2_rck_b.test, declare_o_amper_2rck_k.test,
     declare_o_amper_eq_i_rk.test, declare_o_amper_eq_rki_rk.test,
     declare_o_amper_i_rk.test, declare_o_amper_pk.test,
     declare_o_amper_rcki_k.test, declare_o_arrow_i.test,
     declare_o_arrow_rk_pk.test, declare_o_arrow_star_i_rk.test,
     declare_o_arrow_star_rki_rk.test, declare_o_circ_eq_i_rk.test,
     declare_o_colon2_rk_rk.test, declare_o_comma_rki_rk.test,
     declare_o_dot_k.test, declare_o_dot_star_rk_rk.test,
     declare_o_eq2_ki_b.test, declare_o_exclam_eq_ki_b.test,
     declare_o_exclam_rck_b.test, declare_o_greater2_eq_i_rk.test,
     declare_o_greater2_i_k.test, declare_o_greater2_rcki_k.test,
     declare_o_greater_eq_rcki_b.test, declare_o_less2_eq_i_rk.test,
     declare_o_less2_i_k.test, declare_o_less2_rcki_k.test,
     declare_o_less_eq_greater_2rck_a-c++17.test,
     declare_o_less_eq_greater_2rck_a.test, declare_o_less_eq_rcki_b.test,
     declare_o_minus2_d_rk.test, declare_o_minus2_rkd_rk.test,
     declare_o_minus_i_k.test, declare_o_oexclam_k_b.test,
     declare_o_percent_eq_i_rk.test, declare_o_percent_eq_rki_rk.test,
     declare_o_percent_i_k.test, declare_o_percent_rcki_k.test,
     declare_o_pipe2_2rck_b.test, declare_o_pipe2_rck_b.test,
     declare_o_pipe_eq_i_rk.test, declare_o_pipe_eq_rki_rk.test,
     declare_o_pipe_i_rk.test, declare_o_plus2_d_rk.test,
     declare_o_plus2_rkd_rk.test, declare_o_plus_i_k.test,
     declare_o_qmark_colon_k2i_i.test, declare_o_slash_eq_i_rk.test,
     declare_o_star_eq_i_rk.test, declare_o_star_eq_rki_rk.test,
     declare_o_star_i_rk.test, declare_o_star_rck_k.test,
     declare_o_star_rcki_k.test, declare_o_star_rk.test,
     declare_o_tilde_k.test, declare_o_tilde_rck_k.test,
     declare_ro_exclam_k_b.test, declare_rro_exclam_k_b.test,
     declare_trigraphs_o_circ_eq_i_rk.test,
     declare_trigraphs_o_circ_rcki_k.test,
     declare_trigraphs_o_pipe2_2rck_b.test,
     declare_trigraphs_o_pipe_2rck_k.test,
     declare_trigraphs_o_pipe_eq_i_rk.test, declare_trigraphs_o_tilde_k.test,
     declare_udc_rcc.test, declare_vo_exclam_k_b.test,
     declare_yo_exclam_k_b.test, define_k_declare_k.test,
     define_k_define_k_explain_k+k.test, define_k_explain_pmki.test,
     explain_+o_delete_a_pv_v.test, explain_+o_delete_pv_v.test,
     explain_+o_eq2_rcki_b.test, explain_+o_eq_rck_rk.test,
     explain_+o_eq_rck_rk=default-01.test,
     explain_+o_eq_rck_rk=default-02.test, explain_+o_eq_rck_rk=delete-01.test,
     explain_+o_eq_rck_rk=delete-02.test,
     explain_+o_exclam_eq_rck_rk=default.test,
     explain_+o_exclam_eq_rck_rk=delete.test, explain_+o_new_a_z_pv.test,
     explain_+o_new_z_pv.test, explain_+udc_i.test,
     explain_0o_amper_rk_pk.test, explain_0o_minus2_i_rk.test,
     explain_0o_minus_rk_rk.test, explain_0o_plus2_i_rk.test,
     explain_0o_plus_rk_rk.test, explain_0o_star_rk_rk.test,
     explain_a_nua_k-2.test, explain_co_amper_rk_pk.test,
     explain_co_exclam_k_b.test, explain_co_minus2_i_rk.test,
     explain_co_minus_rk_rk.test, explain_co_plus2_i_rk.test,
     explain_co_plus_rk_rk.test, explain_co_star_rk_rk.test,
     explain_co_tilde_k.test, explain_ki+.test, explain_o_amper2_2rck_b.test,
     explain_o_amper2_rck_b.test, explain_o_amper_2rck_k.test,
     explain_o_amper_eq_i_rk.test, explain_o_amper_eq_rki_rk.test,
     explain_o_amper_i_rk.test, explain_o_amper_pk.test,
     explain_o_amper_rcki_k.test, explain_o_amper_rk_pk.test,
     explain_o_arrow_pk.test, explain_o_arrow_star_i_rk.test,
     explain_o_arrow_star_rki_rk.test, explain_o_circ_eq_i_rk.test,
     explain_o_circ_eq_rki_rk.test, explain_o_circ_rcki_k.test,
     explain_o_comma_i_rk.test, explain_o_comma_rcki_k.test,
     explain_o_comma_rki_rk.test, explain_o_eq2_ki_b.test,
     explain_o_exclam_eq_ki_b.test, explain_o_exclam_rck_b.test,
     explain_o_greater2_eq_i_rk.test, explain_o_greater2_eq_rki_rk.test,
     explain_o_greater2_i_k.test, explain_o_greater2_i_rk.test,
     explain_o_greater2_rcki_k.test, explain_o_greater2_rki_rk.test,
     explain_o_greater_eq_rcki_b.test, explain_o_greater_rcki_b.test,
     explain_o_less2_eq_i_rk.test, explain_o_less2_eq_rki_rk.test,
     explain_o_less2_i_k.test, explain_o_less2_i_rk.test,
     explain_o_less2_rcki_k.test, explain_o_less2_rki_rk.test,
     explain_o_less_eq_rcki_b.test, explain_o_less_rcki_b.test,
     explain_o_minus2_d_rk.test, explain_o_minus2_rkd_rk.test,
     explain_o_minus2_rki_rk.test, explain_o_minus_2rck_k.test,
     explain_o_minus_eq_i_rk.test, explain_o_minus_eq_rki_rk.test,
     explain_o_minus_i_k.test, explain_o_minus_rcki_k.test,
     explain_o_oexclam_k_b.test, explain_o_percent_2rck_k.test,
     explain_o_percent_eq_i_rk.test, explain_o_percent_eq_rki_rk.test,
     explain_o_percent_i_k.test, explain_o_percent_rcki_k.test,
     explain_o_pipe2_2rck_b.test, explain_o_pipe2_rck_b.test,
     explain_o_pipe_2rck_k.test, explain_o_pipe_eq_i_rk.test,
     explain_o_pipe_eq_rki_rk.test, explain_o_pipe_i_rk.test,
     explain_o_plus2_d_rk.test, explain_o_plus2_rkd_rk.test,
     explain_o_plus2_rki_rk.test, explain_o_plus_2rck_k.test,
     explain_o_plus_eq_i_rk.test, explain_o_plus_eq_rki_rk.test,
     explain_o_plus_i_k.test, explain_o_plus_rcki_k.test,
     explain_o_qmark_colon_k2i_i.test, explain_o_slash_2rck_k.test,
     explain_o_slash_eq_i_rk.test, explain_o_slash_eq_rki_rk.test,
     explain_o_slash_rcki_k.test, explain_o_star_2rck_k.test,
     explain_o_star_eq_i_rk.test, explain_o_star_eq_rki_rk.test,
     explain_o_star_i_rk.test, explain_o_star_rck_k.test,
     explain_o_star_rcki_k.test, explain_o_star_rk.test,
     explain_o_tilde_k.test, explain_o_tilde_rck_k.test,
     explain_oo_amper_rk_pk.test, explain_oo_minus2_i_rk.test,
     explain_oo_minus_rk_rk.test, explain_oo_plus2_i_rk.test,
     explain_oo_plus_rk_rk.test, explain_oo_star_rk_rk.test,
     explain_ro_amper_rk_pk.test, explain_ro_exclam_k_b.test,
     explain_ro_minus2_i_rk.test, explain_ro_minus_rk_rk.test,
     explain_ro_plus2_i_rk.test, explain_ro_plus_rk_rk.test,
     explain_ro_star_rk_rk.test, explain_rro_amper_rk_pk.test,
     explain_rro_exclam_k_b.test, explain_rro_minus2_i_rk.test,
     explain_rro_minus_rk_rk.test, explain_rro_plus2_i_rk.test,
     explain_rro_plus_rk_rk.test, explain_rro_star_rk_rk.test,
     explain_trigraphs_o_circ_eq_i_rk.test,
     explain_trigraphs_o_circ_rcki_k.test,
     explain_trigraphs_o_pipe2_2rck_b.test,
     explain_trigraphs_o_pipe_2rck_k.test,
     explain_trigraphs_o_pipe_eq_i_rk.test, explain_trigraphs_o_tilde_k.test,
     explain_udc_rcc.test, explain_vo_amper_rk_pk.test,
     explain_vo_exclam_k_b.test, explain_vo_minus2_i_rk.test,
     explain_vo_minus_rk_rk.test, explain_vo_plus2_i_rk.test,
     explain_vo_plus_rk_rk.test, explain_vo_star_rk_rk.test,
     explain_yo_amper_rk_pk.test, explain_yo_exclam_k_b.test,
     explain_yo_minus2_i_rk.test, explain_yo_minus_rk_rk.test,
     explain_yo_plus2_i_rk.test, explain_yo_plus_rk_rk.test,
     explain_yo_star_rk_rk.test: s/define S as struct S/struct S/
   * check.c, test/Makefile.am, explain_o_less_eq_greater_2rck_a.out,
     explain_o_less_eq_greater_2rck_std_partial_ordering.out,
     explain_o_less_eq_greater_2rck_std_strong_ordering.out,
     explain_o_less_eq_greater_2rck_std_weak_ordering.out,
     explain_o_less_eq_greater_2rck_a.test,
     explain_o_less_eq_greater_2rck_i.test,
     explain_o_less_eq_greater_2rck_std_partial_ordering.test,
     explain_o_less_eq_greater_2rck_std_strong_ordering.test,
     explain_o_less_eq_greater_2rck_std_weak_ordering.test: Now ensuring return
     type is one of auto, std::partial_ordering, std::strong_ordering, or
     std::weak_ordering; and that all parameters are a class or reference
     thereto.

2021-05-16  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, c_typedef.h, lexer.l, parser.y: Added c_typedef_find_name();
     s/c_typedef_find()/c_typedef_find_sname()/
   * c_sname.c, c_sname.h, lexer.l, util.c, util.h: Moved parse_identifier() to
     util.[hc]; moved c_sname_parse() to c_sname.[hc].

2021-05-14  Paul J. Lucas <paul@lucasmail.org>

   * bootstrap: Added "echo".

2021-05-13  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am, red_black_test.c: Added unit tests for red-black tree.

2021-05-12  Paul J. Lucas <paul@lucasmail.org>

   * check.c: Now using c_lang_name() more.
   * Makefile.am, makedoc.sh: Added makedoc.sh.
   * c_kind.h: Added K_TYPEDEF to K_ANY_OBJECT.
   * c_kind.h: Expanded K_ANY_FUNCTION_LIKE, K_ANY_OBJECT, and K_ANY_PARENT
     into bitwise-or of other K_* values; added K_TYPEDEF to K_ANY_OBJECT.

2021-05-11  Paul J. Lucas <paul@lucasmail.org>

   * red_black.c, red_black.h: Red-Black tree simplification by using child[2].
   * test/Makefile.am, explain_efi-c.test: Added in forgotten test.
   * lexer.l, parser.y: Added str_val.
   * lexer.l: Now calling strbuf_free() for unterminated strings.
   * parser.y: s/str_lit/literal/ (undid previous change).
   * parser.y: s/literal/str_lit/

2021-05-10  Paul J. Lucas <paul@lucasmail.org>

   * dump.c: s/print_indent/dump_indent/

2021-05-08  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Added ret_ast local variable.
   * parser.y: Now using struct literals.
   * lexer.l: Removed c == '\0' ||
   * bootstrap: Added a bootstrap script.

2021-05-07  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c, cdecl.h, options.c, parser.y, print.c, prompt.c: Added
     CDECL.
   * lexer.l: Now using strbuf_catf().
   * lexer.l, parser.y: When the lexer prints an error message, the parser no
     longer does.
   * lexer.l, test/Makefile.am, explain_ecf_v-Rstr-01.out,
     explain_ecf_v-Rstr-02.out, explain_ecf_v-Rstr-01.test,
     explain_ecf_v-Rstr-02.test: Now support C++ raw string literals.
   * lexer.l: Reordering.

2021-05-06  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, parser.y: Now recognizing "asm" just to say it's not
     supported.

2021-05-04  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: Replaced `if` by `?:`.

2021-04-30  Paul J. Lucas <paul@lucasmail.org>

   * slist.h, strbuf.h: s/deleting/freeing/
   * strbuf.h: Added PJL_PRINTF_LIKE_FUNC to strbuf_catf().

2021-04-29  Paul J. Lucas <paul@lucasmail.org>

   * c_keyword.h, c_sname.h, lexer.l, slist.h: s/null/NULL/

2021-04-27  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, cdefs.h, libc-config.h, stdlib.in.h, stdlib_h.m4: Updated
     Gnulib.

2021-04-21  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, stdint.in.h, wchar.in.h, wctype.in.h, fnmatch_h.m4,
     gnulib-common.m4, gnulib-comp.m4, inttypes.m4, locale_h.m4, memchr.m4,
     mempcpy.m4, stddef_h.m4, stdint.m4, stdio_h.m4, stdlib_h.m4, string_h.m4,
     strndup.m4, strnlen.m4, strsep.m4, sys_types_h.m4, unistd_h.m4,
     wchar_h.m4, wctype_h.m4, wint_t.m4: Updated Gnulib.
   * util.h: Macro clean-up.

2021-04-18  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Now recognizing "template" just to say it's not supported.

2021-04-16  Paul J. Lucas <paul@lucasmail.org>

   * print.c: No longer sometime print "null" when an unknown name is
     encountered.

2021-04-13  Paul J. Lucas <paul@lucasmail.org>

   * did_you_mean.c: Eliminated best_count.

2021-04-12  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, dump.c: Added FOREACH_AST_LIST().
   * dump.c, dump.h: kv_dump() now prints `null` only if the value is NULL (not
     empty).

2021-04-06  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.h: Added missing #include.
   * AUTHORS, configure.ac, lib/Makefile.am, alloca.in.h, attribute.h, btowc.c,
     cdefs.h, ctype.in.h, flexmember.h, fnmatch.c, fnmatch.in.h,
     fnmatch_loop.c, hard-locale.c, hard-locale.h, idx.h, intprops.h,
     inttypes.in.h, isblank.c, lc-charset-dispatch.c, lc-charset-dispatch.h,
     libc-config.h, localcharset.c, localcharset.h, locale.in.h,
     mbrtowc-impl-utf8.h, mbrtowc-impl.h, mbrtowc.c, mbsinit.c,
     mbsrtowcs-impl.h, mbsrtowcs-state.c, mbsrtowcs.c, mbtowc-impl.h,
     mbtowc-lock.c, mbtowc-lock.h, mbtowc.c, memchr.c, memchr.valgrind,
     mempcpy.c, setlocale-lock.c, setlocale_null.c, setlocale_null.h, streq.h,
     strnlen1.c, strnlen1.h, verify.h, wchar.in.h, wctype-h.c, wctype.in.h,
     windows-initguard.h, wmemchr-impl.h, wmemchr.c, wmempcpy.c, __inline.m4,
     alloca.m4, btowc.m4, builtin-expect.m4, codeset.m4, ctype.m4,
     flexmember.m4, fnmatch.m4, fnmatch_h.m4, gnulib-cache.m4, gnulib-comp.m4,
     inttypes.m4, isblank.m4, localcharset.m4, locale-fr.m4, locale-ja.m4,
     locale-zh.m4, locale_h.m4, mbrtowc.m4, mbsinit.m4, mbsrtowcs.m4,
     mbstate_t.m4, mbtowc.m4, memchr.m4, mempcpy.m4, mmap-anon.m4,
     setlocale_null.m4, std-gnu11.m4, threadlib.m4, visibility.m4, wchar_h.m4,
     wctype_h.m4, wmemchr.m4, wmempcpy.m4, cdecl.1, c_sname.c, c_sname.h,
     help.c, lexer.l, parser.y, util.c, util.h, test/Makefile.am, help-c++.out,
     help-c.out, help_command-c++.out, help_command-c++03.out,
     help_command-c.out, help_commands-c++.out, help_commands-c.out,
     show_all_predefined_glob-01.out, show_all_predefined_glob-02.out,
     show_all_predefined_glob-03.out, show_all_predefined_glob-01.test,
     show_all_predefined_glob-02.test, show_all_predefined_glob-03.test: The
     "show" command now accepts globs.
   * lexer.l: State renaming.
   * parser.y: s/FREE/free/

2021-04-05  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, stdlib.in.h, stdlib_h.m4: Updated Gnulib.

2021-04-04  Paul J. Lucas <paul@lucasmail.org>

   * did_you_mean.c: dym_size is now const.
   * autocomplete.c, did_you_mean.c, set_options.c, set_options.h:
     s/SET_/SET_OPT_/

2021-04-03  Paul J. Lucas <paul@lucasmail.org>

   * set_options.c: Simplification.
   * set_options.c, set_options.h: Now using set_option_fn_args_t.
   * set_options.c: Removed unnecessary cast to (void).
   * c_operator.c, c_operator.h, lexer.h, lexer.l, slist.c, slist.h, strbuf.c,
     strbuf.h: *_INLINE clean-up.

2021-04-01  Paul J. Lucas <paul@lucasmail.org>

   * print.c: Added assert.

2021-03-31  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c: Replaced use of malloc() with strbuf_t.
   * strbuf.c: Added call to strbuf_reserve().
   * cdecl.c: s/starts_with/starts_with_token/

2021-03-29  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, cdecl.c: parse_string() now takes size_t.
   * cdecl.c: cdecl_read_line() clean-up.

2021-03-27  Paul J. Lucas <paul@lucasmail.org>

   * util.h: Added \n to SKIP_WS.
   * cdecl.c, util.c, util.h: Made fmemopen() now return NULL on error.
   * cdecl.c, util.c: Renaming.

2021-03-26  Paul J. Lucas <paul@lucasmail.org>

   * help.c, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c++03.out, help_command-c.out, help_commands-c++.out,
     help_commands-c.out: Added C78 to help text.

2021-03-25  Paul J. Lucas <paul@lucasmail.org>

   * options.c: Added SOPT_NO_ARGUMENT and SOPT_REQUIRED_ARGUMENT.
   * options.c: Now checking that no arguments are specified with -v.
   * options.c, util.h: Added STRINGIFY().
   * util.h: Added '_' to CHARIFY.
   * options.c, util.h: Now only a single copy of short options; -h is now
     checked for exlusivity.
   * options.c: Got rid of set_opt_explicit_int().
   * options.c: Reworked opts_given.

2021-03-23  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, did_you_mean.c, did_you_mean.h, options.c, options.h,
     print.c, print.h, set_options.c, set_options.h: Added "did you mean ...?"
     suggestions for command-line options.
   * options.c: Renaming.
   * options.c: Added missing 'h' to SHORT_OPTS.
   * options.c: Added FOREACH_CLI_OPTION().

2021-03-22  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: autoupdate.
   * configure.ac: Updated version to 9.9.

2021-03-20  Paul J. Lucas <paul@lucasmail.org>

   * set_options.c: Fixed printing \n.
   * c_lang.c, c_operator.c, c_type.c, cdecl.c, english.c, gibberish.c: More
     assert()s.
   * print.c: Added assert().
   * print.c: Simplification.
   * c_typedef.c: s/for/do...while/

2021-03-19  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c: Whitespace.
   * autocomplete.c, cdecl.c: readline_init() now takes FILEs.
   * util.c: Got rid of local variable.
   * dump.c: Now using c_type_part_id_name() more.
   * c_ast.h, c_keyword.h, c_lang.h, c_sname.c, c_sname.h, check.c, dump.c,
     gibberish.c, parser.y, set_options.h, slist.c, slist.h: Added
     FOREACH_SLIST().

2021-03-18  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am: Added $(EXEEXT).
   * parser.y: Removed pointless language check.

2021-03-17  Paul J. Lucas <paul@lucasmail.org>

   * c_kind.c, c_type.c, parser.y: Now using OPT_LANG_IS() more.
   * parser.y: s/is_nested_type_ok/fl_is_nested_type_ok/

2021-03-16  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Added assert().
   * parser.y: Nested types are now not defined when flagged as an error in C.
   * parser.y, test/Makefile.am, k_typedef_i-c.test: Nested types are now
     correctly caught as an error in C.
   * cdecl.1: Added "C++ only" for nested types.
   * cdecl.1: Added mention of complete set of commands useful in .cdeclrc
     file.

2021-03-15  Paul J. Lucas <paul@lucasmail.org>

   * did_you_mean.c: Moved declaration of best_count inside the `if`.
   * sysexits.in.h: Updated Gnulib.
   * check.c, pjl_config.h, strbuf.h: s/argument/parameter/ where appropriate.
   * c_type.h, english.c, parser.y: s/c_type_name_eng/c_type_name_english/
   * check.c: A declaration having a storage class and a bit-field width is now
     correctly caught as an error.

2021-03-14  Paul J. Lucas <paul@lucasmail.org>

   * check.c: A scoped name having a bit-field width is now correctly caught as
     an error.
   * slist.c: Renaming.
   * slist.c, slist.h: Renaming.
   * slist.c: Added needed (intptr_t) cast.
   * c_sname.h, slist.h: Added missing CONST_CAST() to SLIST_VAR_INIT().
   * strbuf.c: Now using only a single va_list.

2021-03-12  Paul J. Lucas <paul@lucasmail.org>

   * options.c: Simplified SET_OPTION().
   * options.c: Now using macros to define command-line options exactly once.
   * autocomplete.c, did_you_mean.c, set_options.h:
     s/FOREACH_OPTION/FOREACH_SET_OPTION/

2021-03-11  Paul J. Lucas <paul@lucasmail.org>

   * did_you_mean.c, print.c: Added "Did you mean...?" suggestions for unknown
     name.
   * c_type.c, c_type.h, dump.c, print.c: Added C_TPID_NONE.
   * did_you_mean.c, did_you_mean.h, set_options.c: Added "Did you mean ...?"
     for `set` options.
   * c_typedef.c: Fixed warning.
   * help.c, help_english-c.out, help_english-c89.out: Changed order of long
     and unsigned in C help to match C++ help.
   * help.c, parser.y, print.h, types.h: print_help() now takes an enum; moved
     declaration to print.h.
   * c_ast_util.c, c_ast_util.h, parser.y: Moved c_ast_pointer() to
     c_ast_util.[ch].

2021-03-10  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c: Now correctly free'ing c_typedef_t data from red-black tree
     nodes.
   * c_typedef.c: s/C_TYPEDEF_VAR_INIT/C_TYPEDEF_LIT
   * c_ast_util.c: Renaming.
   * parser.y: Got rid of placeholder_c_ast.

2021-03-09  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all-c++.out,
     show_all.out, show_all_predefined-c++.out, show_all_predefined.out,
     show_all_predefined_typedef-c++.out, show_all_typedef.out,
     show_predefined-c++.out, show_predefined.out, show_predefined_typedef.out,
     show_predefined_using.out: Added `iconv_t`, `locale_t`,
     `posix_spawnattr_t`, `posix_spawn_file_actions_t`, `regex_t`,
     `regmatch_t`, and `regoff_t`.
   * cdecl.c, strbuf.c, strbuf.h: Renaming.
   * options.c, options.h, set_options.c: Added PJL_WARN_UNUSED_RESULT; changed
     print_explicit_int() to take FILE*.
   * help.c, help_english-c.out: s/thread_local/_Thread_local/ in C help.
   * help.c, help_english-c++.out, help_english-c.out: Joined char types in
     help.
   * check.c: s/error_kind_to_type/error_kind_to_tid/
   * check.c, test/Makefile.am, explain_fpcf_i_v.test, explain_pcf_i.test: A
     pointer to function with qualifiers is now correctly caught as an error.

2021-03-08  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.c, c_lang.h, c_type.c, set_options.c: Removed
     PJL_WARN_UNUSED_RESULT where not needed; added PJL_WARN_UNUSED_RESULT in
     one missing place.
   * c_lang.c: Moved "C" first so it prints first.
   * util.c: s/harcopy/hardcopy/
   * options.c: Removed more uses of fixed-size string buffers.

2021-03-07  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Merged C90 into C89 and C18 into C17.
   * cdecl.1: More specific about "auto" and "using" in docs.

2021-03-06  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c: Added _Thread_local spelling for C types.
   * cdecl.1, c_lang.c: C78 is now accepted as an alias for K&RC.
   * Makefile.am: Added (the missing) `Doxyfile` to the dist-generated tarball.

2021-03-05  Paul J. Lucas <paul@lucasmail.org>

   * color.h, prompt.c, strbuf.c, strbuf.h: Replaced last sprintf() with
     strbuf.
   * strbuf.h: Sorted functions.
   * stddef.in.h: Updated Gnulib.
   * configure.ac: Updated version to 9.8.

2021-03-04  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: s/Defines a type/Defines types/
   * help.c, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c++03.out, help_command-c.out, help_commands-c++.out,
     help_commands-c.out: s/or cast/or a cast/
   * cdecl.1, options.c: Added (the missing) `--explicit-int` to the help
     message.

2021-03-03  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c, cdecl.h, print.c: Moved some globals out of cdecl.h.
   * c_lang.h, util.c, util.h: Renaming.
   * parser.y: Now using c_lang_which() in another place.
   * c_lang.c: Now using strbuf in c_lang_which().

2021-03-02  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.c, c_lang.h, check.c, parser.y, print.c, util.c, util.h: Now
     printing "... since <lang>" when the current language > oldest language.
   * parser.y, test/Makefile.am, explain_ec_typedef_i.out,
     explain_ec_using_i.out, explain_ec_typedef_i.test,
     explain_ec_using_i.test: Now accepts extern "C" using declarations.
   * help.c, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c++03.out, help_command-c.out, help_commands-c++.out,
     help_commands-c.out: s/into|to/[in]to/
   * help.c: The help for pseudo-English now correctly includes `auto` as a
     storage class for C++98 and C++03.

2021-02-26  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.c: Always removing LANGX_MASK.
   * c_lang.h: Always removing LANGX_MASK.

2021-02-25  Paul J. Lucas <paul@lucasmail.org>

   * c_keyword.c, c_type.c, c_type.h, cdecl.c, cdecl.h, check.c, lexer.h,
     lexer.l, parser.y, types.h, show_all-c++.out, show_all.out,
     show_all_predefined-c++.out, show_all_predefined.out,
     show_predefined-c++.out, show_predefined.out: Brought c_mode back since it
     needs to maintain its state until after translation is complete unlike the
     lexer's state.
   * c_sname.c, c_type.c, cdecl.c, lexer.l, options.c, prompt.c, strbuf.c,
     strbuf.h: Reworked strbuf cat functions.
   * c_type.c, cdecl.c, strbuf.h: Added strbuf_catsepc().

2021-02-24  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c: Simplified c_ast_free().
   * src/Makefile.am, c_sname.c, c_type.c, cdecl.c, lexer.l, options.c,
     prompt.c, strbuf.c, strbuf.h, util.c, util.h: Split out strbuf.[ch].
   * gibberish.c, help.c, util.h: Added true_clear().
   * parser.y, util.c: More uses of false_set().
   * red_black.c: Fixed comment.
   * cdecl.1, lexer.l, literals.c, literals.h: Added new synonyms: conv, ctor,
     & dtor.
   * autocomplete.c: "linkage" is now auto-completable.

2021-02-23  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, parser.y: Moved c_ast_dup().
   * configure.ac: Updated version.
   * c_sname.c, c_type.c, cdecl.c, options.c, util.c, util.h: Added
     strbuf_catseps().
   * c_ast.c, help.c, parser.y, test/Makefile.am, cdecl--debug.out,
     cdecl-d.out, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c++03.out, help_command-c.out, help_commands-c++.out,
     help_commands-c.out, typedef_i_pi.out, typedef_i_pi.test: Can now define
     multiple types in a single typedef.
   * parser.y: s/ast_type_stack/type_ast_stack/
   * configure.ac, gibberish.c, show_all_predefined_typedef-c++.out,
     show_all_typedef.out, show_predefined_typedef.out: Fixed spacing for
     qualified pointers.

2021-02-21  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: s/ast_gc_list/gc_ast_list/; s/ast_typedef_list/typedef_ast_list/
   * parser.y: Made c_ast_new_gc()'s loc argument be const.
   * c_ast.c: Combined ecsu and ptr_mbr cases in c_ast_equiv().
   * cdecl.c, util.c, util.h: read_input_line() now returns bool.
   * cdecl.c, util.c, util.h: Removed strcpy_end() and STRCAT.

2021-02-20  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c: Simplified parse_string().
   * cdecl.c, util.c, util.h: read_input_line() now uses strbuf_t.
   * cdecl.c: Fixed call of parse_string().
   * cdecl.c, util.c, util.h: read_input_line() now returns char const*.
   * c_typedef.c, cdecl.c: parse_string() now takes -1 to mean calculate string
     length.
   * c_sname.c, c_type.c, cdecl.c, lexer.l, options.c, prompt.c, util.c,
     util.h: More uses of strbuf_t; removed chrcpy_end().
   * help.c, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c++03.out, help_command-c.out, help_commands-c++.out,
     help_commands-c.out, help_english-c++.out, help_english-c.out,
     help_english-c89.out, help_english-knr.out: Added | between all alternates
     in help.

2021-02-19  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Updated version to 9.6.
   * did_you_mean.c: Got rid of "may change value" warning.
   * print.c: Silence warnings.
   * did_you_mean.c: Extracted SIMILAR_ENOUGH_PERCENT.
   * c_keyword.c: `_Bool` is now recognized only in C99 and later and not in
     C++.
   * lexer.l: `imaginary` is now mapped only to `_Imaginary` in C99 and later
     and not in C++.
   * print.c: Simplified; now using c_lang_until().
   * c_keyword.c, c_keyword.h: s/context/kw_ctx/
   * c_type.c, c_type.h: Moved more code around.
   * c_type.c: Remove left-over pointless `if`.
   * c_type.c: Code reorganization.
   * c_type.c, c_type.h: Eliminated c_type_get_tid(); moved
     c_type_get_tid_ptr() into .c.

2021-02-18  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am, parser.y: Renamed debug.[ch] -> dump.[ch].
   * debug.c, cdecl--debug.out, cdecl-d.out: Types are now dumped more
     verbosely.
   * parser.y: DUMP_SNAME() now implicitly does &.
   * c_keyword.c: Allow "restrict" to be recognized in C++ so the parser can
     give a better error messsage.
   * c_ast_util.c, c_type.c, c_type.h, parser.y: s/T_TYPEDEF/T_TS_TYPEDEF/ for
     clarity.
   * c_type.c: Macro clean-up.
   * stddef.in.h: Updated Gnulib.

2021-02-17  Paul J. Lucas <paul@lucasmail.org>

   * check.c, test/Makefile.am, explain_fa_v.out, explain_fa_v-c++17.test,
     explain_fa_v.test: Function parameters in C++20 now allow auto.
   * c_ast_util.c: The type redefinition error message now includes the
     existing type, part 2.
   * c_ast.c: Fixed warning.
   * parser.y: The type redefinition error message now includes the existing
     type.
   * c_typedef.c, c_typedef.h, parser.y: c_typedef_add() now returns
     c_typedef_t*.
   * c_type.c, c_type.h, debug.c, english.c, gibberish.c, parser.y,
     k_typedef_i_typedef_tn_i.out, show_all-c++.out, show_all.out,
     show_all_predefined-c++.out, show_all_predefined.out,
     show_predefined-c++.out, show_predefined.out: Split out c_type_*name_c()
     and c_type_*name_eng().

2021-02-16  Paul J. Lucas <paul@lucasmail.org>

   * check.c: s/not supported/{is|are} not supported/
   * parser.y, explain_2gat_cpi.out, explain_a_using_a_mu_i.out,
     explain_c_gat_pi.out, explain_c_gat_vpi.out, explain_gat_c_gat_vpi.out,
     explain_gat_cpi.out, explain_gat_i-01.out, explain_gat_i-02.out,
     explain_gat_i-03.out, explain_gat_i-04.out, explain_gat_i-05.out,
     explain_gat_i-06.out, explain_gat_i-07.out, explain_gat_i-08.out,
     explain_gat_i-09.out: s/not supported/is not supported/.  If something is
     not supported by cdecl, it now says so explicitly (as opposed to it not
     being supported in the current language.
   * help.c, help_english-c++.out, help_english-c.out: Simplified help a bit.
   * help.c: Simplification.
   * help.c, help_english-c.out: Added char8_t to C2X help.
   * parser.y: Split out paren_decl_list_english and returning_english_ast.
   * help.c, help_english-c++.out, help_english-c.out, help_english-c89.out,
     help_english-knr.out: Added missing <cv-qual>* in places.
   * help.c, help_english-c.out: The help for `args` no longer prints `<name>`
     for when the current language is either C2X or C++.
   * c_ast.h, c_ast_util.c, check.c, english.c, parser.y: Function renaming.

2021-02-15  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Better comment.
   * lexer.l: Added comment.
   * c_type.c: Got rid of NUM_BUFS.
   * c_type.c: No longer using fixed-sized buffers.
   * c_sname.c, util.c, util.h: strbuf_cat() now accepts -1 for 3rd argument to
     call strlen().
   * c_sname.c, util.h: Switched to using strbuf_t.
   * c_sname.c, c_sname.h: c_sname_t clean-up.
   * c_lang.c: Fixed size of until_buf.
   * c_ast_util.c, c_ast_util.h: Minor clean-up.
   * cdecl.c: "enum" is a command only in C89 and later.
   * autocomplete.c: Fixed some autocompletions.

2021-02-14  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c, c_lang.c, c_lang.h, c_type.c, check.c, gibberish.c,
     help.c, literals.h, parser.y, print.c, prompt.c: Got rid of
     opt_lang_is_c() and opt_lang_is_cpp().
   * autocomplete.c, c_keyword.c, c_lang.h, c_operator.c, c_type.c, cdecl.c,
     check.c, gibberish.c, lexer.l, parser.y, print.c: s/LANG_*ALL/LANG_*ANY/
   * c_lang.h: Simplified opt_lang_is_c() and opt_lang_is_cpp().
   * lexer.h: s/()/( void )/
   * autocomplete.c, c_lang.c, c_lang.h, c_type.c, c_typedef.c, check.c,
     gibberish.c, help.c, literals.h, parser.y, print.c, prompt.c:
     s/C_LANG_/OPT_LANG/ and made some former macros into inline functions.
   * c_lang.h, check.c: Warnings are now given for names that are reserved
     identifiers.
   * lexer.l, test/Makefile.am, explain_tli.out, explain_tli-c99.test,
     explain_tli.test: thread_local is now correctly allowed only in C11 or
     C++11 or later.
   * test/Makefile.am: Test renaming.
   * test/Makefile.am, k_ns_typedef_i.test: Test renaming.

2021-02-13  Paul J. Lucas <paul@lucasmail.org>

   * did_you_mean.h, types.h: Moved did_you_mean_t.
   * src/Makefile.am: Added all-local and clean-local targets to make and
     remove c++decl.
   * c_lang.c, c_lang.h, c_type.c, check.c, parser.y, set_options.c,
     explain_tf_v-c++17.out: Improved error messages specifying when a feature
     becomes legal, if ever.
   * explain_tf_v-c++17.out: Fixed expected test result.
   * check.c: Constructors and destructors are now checked for `throw`. 
     Constructor parameters are now checked for warnings.
   * c_lang.c: Fixed comment.

2021-02-12  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_type.c, c_type.h: s/c_type_intersects()/c_type_is_any()/
   * c_type.h: Function reorder.
   * c_type.c, c_type.h: Made c_type_id_tpid() out-of-line;
     s/c_type_id_intersects/
   * c_ast_util.c, c_type.c, c_type.h, parser.y: Made T_TYPEDEF global.
   * parser.y: Added TYPEDEF_TYPE.
   * c_type.h: Made C_TYPE_LIT a true literal again.

2021-02-11  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c: Now checking bit-field width equivalence.
   * c_ast.c, c_ast.h: Now also checking for alignment equivalence.
   * set_options.c: s/strn_nohyphen_eq/strn_nohyphen_equal/
   * check.c: s/c_ast_name_eq/c_ast_name_equal/
   * check.c: Now using END_STR_LIT for newline printing.
   * check.c: Added hint to c_ast_check_pointer().
   * check.c: Function sorting.

2021-02-10  Paul J. Lucas <paul@lucasmail.org>

   * options.c, options.h, set_options.c: Renaming.
   * gibberish.c: s/C_GRAPH_NONE/C_GIB_NONE/
   * english.c, english.h, gibberish.c, parser.y: c_ast_english_type()
     clean-up.

2021-02-09  Paul J. Lucas <paul@lucasmail.org>

   * stddef.in.h: Updated Gnulib.
   * parser.y, test/Makefile.am, declare_ff_i_v.out, explain_ff_i_v.out,
     declare_ff_i_v.test, explain_ff_i_v.test: A function as a parameter is now
     automatically converted to a pointer to function per 6.3.2.1(4) of the C
     standard.
   * check.c: Added c_ast_check_udef_conv(); folded code into
     c_ast_check_udef_conv(); added assert()s; other clean-up.
   * check.c: c_ast_visitor_type() clean-up.
   * check.c: Simplified print_error() call.

2021-02-08  Paul J. Lucas <paul@lucasmail.org>

   * check.c: Added kind to type error messages.
   * lexer.l: Added -Wconversion warning.
   * lexer.l: Now setting only first_line & first_column of yylloc for str/char
     literals.
   * lexer.l: str_lit_buf clean-up.
   * util.h: Added missing PJL_WARN_UNUSED_RESULT.
   * c_keyword.c, c_type.c, cdecl.c, cdecl.h, check.c, lexer.h, lexer.l,
     parser.y, types.h: Folded c_mode into lexer_find.

2021-02-07  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: s/SET_TOKEN/SET_TOKEN_TO/ for "[".
   * lexer.l, parser.y: `[[` and `]]` "tokens" allow whitespace.

2021-02-06  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Minor additions.
   * cdecl.1: Added missing "enum" and "show" to set of first-argument
     commands.
   * configure.ac: Updated version to 9.5.1.
   * configure.ac: Now using AX_CHECK_COMPILE_FLAG instead of
     AX_CFLAGS_GCC_OPTION.

2021-02-05  Paul J. Lucas <paul@lucasmail.org>

   * c_type.h: C_TYPE_LIT() now calls c_type_id_check() for arguments.
   * parser.y, cdecl--debug.out, cdecl-d.out: Renamed rules: _ast -> _astp (for
     ast_pair), and others; added comments.

2021-02-04  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: ast_pair clean-up.
   * autocomplete.c: Added some completable keywords.
   * parser.y: If an error token is a keyword in the current language, says so.
   * cdecl.c: Added missing "enum" as cdecl command.
   * AUTHORS, cdecl.1, c_ast.h, c_kind.h, check.c, debug.c, english.c,
     gibberish.c, help.c, parser.y, test/Makefile.am, explain_efi-itself.out,
     explain_efi.out, explain_efui.out, explain_efz.out, help_english-c++.out,
     explain_efd.test, explain_efi-c.test, explain_efi-itself.test,
     explain_efi.test, explain_efui.test, explain_efz.test: Added support for
     enums having an underlying type.
   * c_type.h: Fixed comment.
   * c_ast_util.c, parser.y: Added missing calls to C_AST_CHECK_DECL().
   * check.c: Fixed register enum.

2021-02-03  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Converted many rules to <ast> from <ast_pair>.
   * parser.y: s/sname/any_sname_c/
   * parser.y: Added enum_class_struct_union_english_ast rule.
   * parser.y: Reformatting.
   * c_ast.h, parser.y: CLeaned up enum_tid.
   * parser.y: s/enum_class_struct_union_tid/enum_class_struct_union_c_tid/
   * parser.y: Moved a rule.
   * cdecl.1: Added mention that structured binding declarations are not
     supported.
   * parser.y: Undid yyerrok.
   * parser.y: Removed pointless assignments.
   * parser.y: Added yyerrok in places.
   * parser.y: Token clean-up.
   * parser.y: More operator clean-up.
   * parser.y: Fixed operators.

2021-02-02  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Removed shift/reduce conflict for "delete".
   * help.c: s/stdout/fout/
   * debug.c, debug.h, parser.y: s/slist_t/c_ast_list_t/
   * lexer.l: s/EPRINTF/print_error/
   * AUTHORS, cdecl.1, c_type.c, c_type.h, help.c, lexer.l, literals.c,
     literals.h, parser.y, util.c, util.h, test/Makefile.am, declare_ecf_v.out,
     explain_ecf_v.out, help_english-c++.out, declare_ecf_v.test,
     explain_ecf_v.test: Added support for extern "C" declarations.

2021-02-01  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, c_typedef.h, parser.y: s/TD_/TDEF_/
   * c_ast_util.c, test/Makefile.am, explain_sf__i.out, explain_sf__i.test:
     Fixed `auto` with storage class.

2021-01-31  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: oper_decl_c_ast clean-up.
   * parser.y: Removed unncessary c_ast_take_name().
   * parser.y: Bit-field width clean-up.
   * cdecl.1: Minor improvements.

2021-01-30  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Reorganization of some grammar rules.
   * parser.y: Unified "using" declarations.
   * parser.y: More "using" clean-up.
   * parser.y: "using" clean-up.

2021-01-29  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Renamed grammar rule.
   * c_ast_util.c, c_type.c, c_type.h, did_you_mean.c, options.c, parser.y,
     print.c: Renaming TPID.
   * parser.y: Added parsing support for attribute arguments.
   * parser.y, test/Makefile.am, explain_a_using_a_mu_i.out,
     explain_a_using_a_mu_i.test: Added suppport for [[using : ... ]].
   * c_type.h, parser.y: Added c_type_id_check() into ia_qual_push_tid().
   * c_type.h, parser.y: Added c_type_id_check().
   * c_type.h, cdecl--debug.out, cdecl-d.out: Type pard IDs are now distinct
     bits.
   * parser.y: Added missing dump of attribute_specifier_list_c_tid_opt.
   * test/Makefile.am: Test renaming.
   * parser.y: Attribues can now parse (but warn about) snames.
   * cdecl.1, c_keyword.c, lexer.h, lexer.l, literals.c, literals.h, parser.y,
     print.c, util.h, test/Makefile.am, cast_pfx_i-c17.out,
     declare_fkr_pi-c17.out, declare_pfkr_i-c17.out, declare_yi.out,
     explain_2gat_cpi.out, explain_c_gat_pi.out, explain_c_gat_vpi.out,
     explain_fkr_pi-c17.out, explain_gat_c_gat_vpi.out, explain_gat_cpi.out,
     explain_gat_i-01.out, explain_gat_i-02.out, explain_gat_i-03.out,
     explain_gat_i-04.out, explain_gat_i-05.out, explain_gat_i-06.out,
     explain_gat_i-07.out, explain_gat_i-08.out, explain_gat_i-09.out,
     explain_tf_v-c++17.out, explain_unknown_attribute.out, run_test.sh,
     explain_2gat_cpi.test, explain_c_gat_pi.test, explain_c_gat_vpi.test,
     explain_gat_c_gat_vpi.test, explain_gat_cpi.test, explain_gat_i-01.test,
     explain_gat_i-02.test, explain_gat_i-03.test, explain_gat_i-04.test,
     explain_gat_i-05.test, explain_gat_i-06.test, explain_gat_i-07.test,
     explain_gat_i-08.test, explain_gat_i-09.test: Added support for parsing
     GNU's __attribute__((...)) syntax.

2021-01-28  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l, parser.y, cdecl--debug.out, cdecl-d.out: Changed "number" to
     "int_val".
   * test/Makefile.am: Test renaming.
   * test/Makefile.am, declare_rgi.test, declare_rrgi.test, explain_rgi.test,
     explain_rrgi.test: Test renaming.

2021-01-27  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.h, c_typedef.c, check.c, did_you_mean.c, parser.y, print.c,
     print.h: When a name is unknown in the current language but exists in a
     later language, the type of name is now used in the error message.

2021-01-26  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Simplified attribute_english_tid.
   * did_you_mean.c, did_you_mean.h, parser.y: Added "Did you mean ...?" for
     attributes.
   * c_keyword.c, literals.c, literals.h: Added C2X `__attr__` aliases.

2021-01-25  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c: Special-cased _Noreturn for C.
   * c_keyword.c, c_keyword.h, lexer.l, parser.y: Added C_KW_CTX_ATTRIBUTE to
     handle attributes in a non-special-case way.
   * parser.y: s/decl_c_list/decl_list_c/ -- following my own naming
     convension.

2021-01-24  Paul J. Lucas <paul@lucasmail.org>

   * set_options.c: Added DECLARE_SET_OPTION_FN().
   * parser.y, test/Makefile.am, explain_uk-01.out, explain_uk-02.out,
     explain_uk-01.test, explain_uk-02.test: Added `enum`, `class`, `struct`,
     and `union` attribute specifier support.
   * configure.ac: Updated version.
   * red_black.c: s/rb_tree_free_impl/rb_node_free/g
   * c_ast.h, c_lang.h, c_sname.h, literals.h, options.h: #include clean-up.
   * slist.h: Added notes about big-O running time.
   * did_you_mean.h: Include-guard renaming.
   * lexer.h: Added PJL_WARN_UNUSED_RESULT for lexer_loc().
   * c_type.h, debug.c: s/PRIX_C_TYPE_T/PRIX_C_TYPE_ID_T/
   * src/Makefile.am: Added missing set_options.h.

2021-01-23  Paul J. Lucas <paul@lucasmail.org>

   * stddef.in.h, gnulib-common.m4: Updated GNUlib.
   * parser.y, set_options.c, set_options.h: s/set_option/option_set/
   * set_options.c: Now printing set options to fout.
   * cdecl.c: Remove old comment.
   * c_lang.c: Remove old comment.
   * c_ast_util.c, test/Makefile.am, explain_f_ppc.out, explain_f_ppc.test:
     Fixed crash with: explain char** f().
   * autocomplete.c: Fixed warning.
   * autocomplete.c: Fixed MALLOC() call.
   * autocomplete.c: Removed unnecessary ().
   * autocomplete.c: Got rid of warnings.
   * autocomplete.c: Fewer check_strdup()s.
   * autocomplete.c, parser.y, set_options.c, set_options.h, util.c, util.h:
     Eliminated duplicate SET_OPTIONS in autocomplete.c.
   * c_keyword.h, did_you_mean.c: Added FOREACH_KEYWORD().
   * c_lang.c, c_lang.h, options.c, types.h: Replaced c_lang_names() with
     c_lang_next().
   * src/Makefile.am: Renamed set.c to set_options.c.

2021-01-22  Paul J. Lucas <paul@lucasmail.org>

   * did_you_mean.c: Whitespace change.
   * did_you_mean.c: Combined copy & count functions.
   * autocomplete.c: Added c90, c17, c2x, lang, to autocomplete; fixed knr for
     autocomplete.
   * check.c, test/Makefile.am, typedef_iw3.test: Types having bit-field widths
     are now correctly reported as errors.
   * c_typedef.c: Sorted typedefs.
   * set.c: Added set_lang_impl() to factor out common code.
   * prompt.c: Simplified prompt_len calculation.

2021-01-21  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, cdecl--debug.out, cdecl-d.out: Grammar rule reorganization.
   * debug.c: Reworked "if".
   * gibberish.c: Eliminated param_ast.
   * gibberish.c: Fixed comment.
   * gibberish.c: s/g_print_func_params/g_print_ast_func_params/
   * gibberish.c: s/g_impl/g_print_ast/;
     s/g_print_array_size/g_print_ast_array_size/
   * gibberish.c: Moved alignas code.
   * gibberish.c: s/g_print_space/g_print_space_once/
   * gibberish.c: Simplification.

2021-01-20  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: Whitespace change.
   * gibberish.c: Removed root_ast -- turns out it's not needed.
   * gibberish.c: Removed leaf_ast -- turns out it's not needed.
   * english.c: Now taking AST for c_ast_english_func_params().
   * check.c: Now printing char8_t for user-defined literals only when lang >=
     C++20.
   * check.c: Added K_APPLE_BLOCK.
   * check.c: Split out c_ast_check_emc() and c_ast_check_upc().

2021-01-19  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.c, c_sname.h, check.c, debug.c, gibberish.c, parser.y: Added
     FOREACH_SCOPE() macro.
   * check.c: Converted error_kind_not_cast_into() into a macro.
   * parser.y: CLean-up.
   * parser.y, print.c, print.h: Now printing [file:line] first.
   * c_lang.h, c_typedef.c, parser.y, util.h: For an error token, now printing
     "not a keyword until <lang>" only if the oldest language the token is in
     is later than the current language.
   * parser.y, test/Makefile.am, explain_k-itself.out, explain_i-itself.test,
     explain_k-itself.test: Forward `enum`, `class`, `struct`, and `union`
     declarations are now supported.
   * lexer.h, lexer.l, parser.y: lexer_loc() now returns a c_loc_t.
   * c_typedef.c: Renaming.
   * gibberish.c: Function renaming.
   * gibberish.c: s/is_typedef/is_more_than_plain_typedef/ and added clarifying
     comment.
   * gibberish.c: Sorted declarations.
   * gibberish.c: Fixed incorrect comment.
   * autocomplete.c, c_type.c, check.c, debug.c, english.c, lexer.l,
     literals.c, literals.h, parser.y: s/L_..._H/H_.../ for hyphenated
     literals.
   * gibberish.c: Made != LANG_NONE explicit.
   * gibberish.c: Simplification.
   * gibberish.c, types.h, test/Makefile.am, show_cpf_cpcc_v_using.out,
     show_cpi_using.out, show_cpmki_using.out, show_predefined_using.out,
     show_cpf_cpcc_v_using.test, show_cpi_using.test, show_cpmki_using.test:
     Fixed showing of types having qualified pointers as `using` declarations.

2021-01-18  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all-c++.out,
     show_all.out, show_all_predefined-c++.out, show_all_predefined.out,
     show_all_predefined_typedef-c++.out, show_all_typedef.out,
     show_predefined-c++.out, show_predefined.out, show_predefined_typedef.out,
     show_predefined_using.out: Reworked languages when predefining types so
     opt_lang only ever has 1 bit set; also now setting opt_lang to latest
     C/C++ seperately so `restrict` that is not valid in C++ is available in C;
     added constraint_handler_t.
   * c_keyword.c: s/LANG_MIN(C_11)/LANG_C_MIN(11)/ for _Atomic.
   * cdecl--debug.out, cdecl-d.out, show_all-c++.out, show_all.out,
     show_all_predefined-c++.out, show_all_predefined.out,
     show_all_predefined_typedef-c++.out, show_all_typedef.out,
     show_predefined-c++.out, show_predefined.out, show_predefined_typedef.out,
     show_predefined_using.out: Updated expected tests for lconv.
   * cdecl.1, c_typedef.c: Added lconv typedef.
   * lexer.l: Added %warn.

2021-01-17  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am: s/errors.c/check.c/
   * c_ast.c, c_ast.h, debug.c, parser.y, cdecl--debug.out, cdecl-d.out:
     s/params/param_ast_list/
   * autocomplete.c: s/no_more_matches/more_matches/
   * configure.ac: Updated version.
   * c_type.h, errors.c, parser.y, test/Makefile.am, explain_0dtor.out,
     explain_dtor=delete.out, explain_inx+ctor.out, explain_inx+dtor.out,
     explain_ydtor.out, explain_0dtor.test, explain_dtor=delete.test,
     explain_inx+ctor.test, explain_inx+dtor.test, explain_ydtor.test: Now
     supporting inline destructor definitions and final/override for
     destuctors.
   * c_lang.h, errors.c, parser.y, print.c: Added c_lang_oldest_name();
     reworked fl_elaborate_error() formatting.
   * c_ast.h, c_sname.h, errors.c: Removed c_ast_is_ctor_name().

2021-01-16  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c: Now doing special cases in c_type_name_impl() only when not an
     error.
   * print.c: Added assert()s.
   * parser.y: s/func_qualified_c_tid/func_qualifier_c_tid/

2021-01-15  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: s/AC_PROG_CC_C99/AC_PROG_CC/; moved AC_LANG(C) earlier.
   * run_test.sh: Made --test-name optional.
   * run_test.sh: Now ensuring test and expected output files exist.
   * test/Makefile.am: Fixed test name.
   * c_keyword.h: Removed @note.
   * lexer.l: Added #.
   * lexer.l: Added ().

2021-01-14  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.c: Removed "true".
   * options.c: Made is_cppdecl() take an argument.
   * parser.y: Fixed warnings.

2021-01-13  Paul J. Lucas <paul@lucasmail.org>

   * AUTHORS, cdecl.1, c_ast.h, c_type.h, debug.c, english.c, errors.c,
     gibberish.c, help.c, lexer.l, literals.c, literals.h, parser.y, types.h,
     test/Makefile.am, cdecl--debug.out, cdecl-d.out, declare_uw3.out,
     declare_zw3.out, explain_uw3.out, explain_zw3.out, help-c++.out,
     help-c.out, help_command-c++.out, help_command-c++03.out,
     help_command-c.out, help_commands-c++.out, help_commands-c.out,
     declare_fuw3_v.test, declare_puw3.test, declare_uw3.test,
     declare_zw3.test, explain_fuw3_v.test, explain_puw3.test,
     explain_uw3.test, explain_zw3.test: Added support for bit-fields.
   * test/Makefile.am: Test renaming.
   * c_ast_util.c, c_ast_util.h, errors.c:
     s/c_ast_is_builtin/c_ast_is_builtin_any/
   * lexer.l: Whitespace fixes.

2021-01-12  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, set.c: A warning is given if the digraph option is set and
     the current language is C89 or earlier.
   * cdecl.1: Added note about default language being able to be changed in
     cdeclrc file; improved code-fragment indentation; added caveat about not
     all explanations being round-trippable.

2021-01-11  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added "-- default is off" in more places.
   * lexer.l: Whitespace.
   * lexer.l: s/{letter}/{L}/
   * lexer.l: Simplified dtor_sname.
   * c_keyword.c, c_keyword.h, parser.y: s/C_KW_MBR_FUNC/C_KW_CTX_MBR_FUNC/

2021-01-10  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Arranged predefined types by language introducted in.
   * _Noreturn.h, gnulib-common.m4: Updated Gnulib.
   * c_keyword.c, c_keyword.h, errors.c, lexer.h, lexer.l, parser.y, print.c,
     types.h, test/Makefile.am, declare_yi.out, explain_yi.out,
     declare_yi.test, explain_yi.test: `final` and `override` are now
     regognized only in a function declaration context.

2021-01-09  Paul J. Lucas <paul@lucasmail.org>

   * c_keyword.c: Whitespace adjustment.
   * c_keyword.c, c_keyword.h: Swapped order ot lang_ids and type_id in
     preparation for keyword context.

2021-01-08  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Now using // comments more.
   * parser.y: Added ast_depth = 0;.

2021-01-07  Paul J. Lucas <paul@lucasmail.org>

   * color.c: s/parse_sgr/sgr_is_valid/

2021-01-06  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Eliminated 2 shift-reduce conflicts by reworking operators.
   * parser.y: Blank lines.
   * c_lang.h: Added const.
   * lib/Makefile.am, stddef.in.h, string.in.h, extensions.m4, stddef_h.m4,
     string_h.m4: Updated GnuLib.

2021-01-05  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.h: Added blank line.
   * cdecl.c: Loop clarification.
   * cdecl.c: Now requiring space after "cast" in is_command().
   * red_black.c, red_black.h: s/rb_node_delete/rb_tree_delete/
   * c_sname.c, c_sname.h, parser.y, slist.h: Removed SLIST macros -- not
     really needed.
   * parser.y: Renaming.

2021-01-04  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Renaming.
   * parser.y: s/qualifier_pop/qualifier_tid_pop/
   * parser.y: Added missing c_sname_free().
   * parser.y: Renaming.

2021-01-03  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, parser.y: Added c_ast_list_free() and Bison %destructor
     directives to call it.
   * c_ast.c, c_ast.h, c_ast_util.c, c_typedef.c, c_typedef.h, debug.c,
     did_you_mean.c, english.c, gibberish.c, gibberish.h, lexer.l, parser.y:
     s/c_typedef/tdef/; s/type/tdef/; s/t/tdef/
   * parser.y: c_ast_t* variable renaming.
   * parser.y: Added c_ast_pair_new_gc().

2021-01-02  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c, parser.y, declare_ctor.out, declare_ctor_i.out,
     explain_ctor_i.out: Unscoped constructor declarations as input are left
     unscoped in output.
   * parser.y: knr_func_or_constructor_c_decl_ast is now of type ast rather
     than ast_pair.
   * parser.y: In-class constructor declaration fix.
   * parser.y: Split out file_scope_destructor_decl_c_ast.
   * parser.y: Split out file_scope_constructor_decl_c_ast.
   * parser.y: More rules now use c_ast_explain_declaration().
   * parser.y: s/c_ast_explain/c_ast_explain_declaration/
   * c_sname.h, parser.y: C++ file-scope constructor definition rule now uses
     c_ast_explain().
   * c_type.h, parser.y: Added TS_NOT_CONSTRUCTOR.
   * configure.ac, cdecl.1, c_sname.h, parser.y, test/Makefile.am,
     explain_ctor_i.out, explain_ctor_i.test: In-class constructor declarations
     without any storage-class-like type are now supported.
   * test/Makefile.am: Test renaming.
   * c_type.h: Added TS_DEFAULT and TS_DELETE to TS_CONSTRUCTOR.
   * c_type.h: Sorting.
   * parser.y: s/pure_virtual_tid/func_equals_tid/
   * c_type.h: Now using TS_ANY_REFERENCE.

2021-01-01  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, parser.y, types.h: s/c_ast_params_t/c_ast_list_t/
   * parser.y: Removed <oper_id> where not needed.
   * parser.y: s/enum_class_struct_union_ast/enum_class_struct_union_c_ast/
   * did_you_mean.c: No longer doing unnecessary != comparison.
   * did_you_mean.c: Simplification in copy_keywords().
   * lib/Makefile.am, _Noreturn.h, arg-nonnull.h, c++defs.h, errno.in.h,
     getdelim.c, getline.c, getopt-cdefs.in.h, getopt-core.h, getopt-ext.h,
     getopt-pfx-core.h, getopt-pfx-ext.h, getopt.c, getopt.in.h, getopt1.c,
     getopt_int.h, gettext.h, limits.in.h, stdarg.in.h, stdbool.in.h,
     stddef.in.h, stdint.in.h, stdio.in.h, stdlib.in.h, stdnoreturn.in.h,
     string.in.h, strndup.c, strnlen.c, strsep.c, sys_types.in.h,
     sysexits.in.h, unistd.in.h, warn-on-use.h, 00gnulib.m4,
     absolute-header.m4, errno_h.m4, extensions.m4, extern-inline.m4,
     getdelim.m4, getline.m4, getopt.m4, gnulib-cache.m4, gnulib-common.m4,
     gnulib-comp.m4, gnulib-tool.m4, include_next.m4, limits-h.m4,
     multiarch.m4, nocrash.m4, off_t.m4, pid_t.m4, ssize_t.m4, stdarg.m4,
     stdbool.m4, stddef_h.m4, stdint.m4, stdio_h.m4, stdlib_h.m4,
     stdnoreturn.m4, string_h.m4, strndup.m4, strnlen.m4, strsep.m4,
     sys_types_h.m4, sysexits.m4, unistd_h.m4, warn-on-use.m4, wchar_t.m4,
     wint_t.m4, zzgnulib.m4: Updated Gnulib.
   * Doxyfile, Makefile.am, configure.ac, pjl_compile.m4, man/Makefile.am,
     man/man1/Makefile.am, cdecl.1, src/Makefile.am, autocomplete.c, c_ast.c,
     c_ast.h, c_ast_util.c, c_ast_util.h, c_keyword.c, c_keyword.h, c_kind.c,
     c_kind.h, c_lang.c, c_lang.h, c_operator.c, c_operator.h, c_sname.c,
     c_sname.h, c_type.c, c_type.h, c_typedef.c, c_typedef.h, cdecl.c, cdecl.h,
     cdecl_lldb.py, color.c, color.h, dam_lev.c, dam_lev.h, debug.c, debug.h,
     did_you_mean.c, did_you_mean.h, english.c, english.h, errors.c,
     gibberish.c, gibberish.h, help.c, lexer.h, lexer.l, literals.c,
     literals.h, options.c, options.h, parser.y, pjl_config.h, print.c,
     print.h, prompt.c, prompt.h, red_black.c, red_black.h, set.c, slist.c,
     slist.h, types.h, util.c, util.h, test/Makefile.am, not_in_Makefile.sh,
     run_test.sh, update_test.sh: Updated copyright year to 2021.

2020-12-31  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, parser.y: If `returning` <english> is omitted, it's equivalent to
     `returning int` in C95 and earlier.
   * cdecl.1, lexer.l, literals.c, literals.h: Added no-return, no-except,
     no-discard, and no-unique-address synonyms.

2020-12-30  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Renaming.
   * c_keyword.c: Whitespace fixes.
   * lexer.l: Eliminated C_HYPHEN_KEYWORDS, CDECL_HYPHEN_KEYWORDS,
     c_hyphen_find(), and cdecl_hyphen_find() special-case code for matching
     hyphenated tokens.

2020-12-29  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: DUMP fix.
   * test/Makefile.am: Test renaming.
   * c_lang.c, color.c, util.h: Removed FREE_STR_LATER and FREE_STRDUP_LATER --
     not really used.
   * help.c, options.c, parser.y, print.c, set.c, util.c, util.h: Macro
     renaming.

2020-12-28  Paul J. Lucas <paul@lucasmail.org>

   * errors.c, test/Makefile.am, explain_main_fi2apc_i.out,
     explain_main_fi2ppc_i.out, explain_main_fi2apc_i.test,
     explain_main_fi2ppc_i.test: main() now supports a third argument of either
     char*[] or char** (or const versions).
   * errors.c: Function sorting.
   * parser.y, test/Makefile.am, explain_fkr_i.out, explain_fkr_i.test:
     Implicit `int` functions in K&R C are now supported.
   * debug.c: Removed pointless assert().
   * c_typedef.c, show_all-c++.out, show_all.out, show_all_predefined-c++.out,
     show_all_predefined.out, show_all_predefined_typedef-c++.out,
     show_all_typedef.out, show_predefined-c++.out, show_predefined.out,
     show_predefined_typedef.out, show_predefined_using.out: K&R C now has a
     set of predefined typedef declarations distinct from C89 that include only
     those shown in the first edition of _The C Programming Language_.
   * lib/Makefile.am, stdint.in.h, stdio.in.h, stdlib.in.h, string.in.h,
     unistd.in.h, stdint.m4, stdio_h.m4, stdlib_h.m4, string_h.m4, unistd_h.m4,
     wint_t.m4: Updated Gnulib.
   * parser.y, print.c: Fixed compiling with --disable-cdecl-debug.

2020-12-27  Paul J. Lucas <paul@lucasmail.org>

   * util.h: Added @warning.
   * parser.y, util.h: s/only_bits_in()/only_bits_set()/ and clarified docs.
   * util.h: MEM_ZERO() now insists that PTR is a pointer and not an array.
   * dam_lev.c: Now using initializer list for last_row[].

2020-12-26  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_type.h: Removed c_type_data_get() -- not needed.
   * c_ast.c: Reverted adding default to c_ast_new().
   * c_type.h: Using TX_NONE more.
   * c_lang.c: Now using LANGX_MASK in c_set_lang().
   * c_ast.h, errors.c: Removed c_ast_find() -- not really needed.
   * c_ast.c: Added default case to c_ast_new().
   * c_typedef.c, util.h: INTERNAL_ERR() now prints the file and line.
   * c_typedef.c: Removed c_typedef_node_data_get().

2020-12-25  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c: Reformatting.
   * parser.y: Using rbracket_exp in more places.
   * parser.y: Added operator_exp grammar rule.
   * errors.c: Fixed error message.
   * help.c, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c++03.out, help_command-c.out, help_commands-c++.out,
     help_commands-c.out, help_english-c++.out, help_english-c.out,
     help_english-c89.out, help_english-knr.out: Reformatted help a bit.
   * help.c: Simplification.
   * configure.ac: Updated version to 9.1.
   * c_lang.h, errors.c, help.c, test/Makefile.am, help-c++.out, help-c.out,
     help_command-c++.out, help_command-c++03.out, help_command-c.out,
     help_commands-c++.out, help_commands-c.out, help_english-c++.out,
     help_english-c.out, help_english-c89.out, help_english-knr.out,
     help_command-c++03.test, help_english-c89.test, help_english-knr.test:
     Help is now specific to particular language versions, not just C or C++.

2020-12-23  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: s/no_except_bool_tid/no_except_bool_tid_exp/
   * errors.c: c_ast_check_alignas() simplification.
   * errors.c: Converte error_*() functions to macros so __FILE__ and __LINE__
     of call-point is correct.
   * parser.y, print.c, print.h: Moved fl_print_error_unknown_type().
   * parser.y: Reworked "unknown type" error message.
   * errors.c, parser.y, print.c, print.h:
     s/print_did_you_mean/print_suggestions/
   * print.h: Whitespace.
   * util.h: Removed unnecessary cast.

2020-12-22  Paul J. Lucas <paul@lucasmail.org>

   * AUTHORS: Added mention of "Did you mean ...?" suggestions.
   * parser.y: /* in_attr: qualifier */ comments.
   * parser.y: Inherited attribute comment reformatting.
   * parser.y: Reordering.
   * parser.y: s/namespace_exp/namespace_tid_exp/
   * parser.y: s/virtual_exp/virtual_tid_exp/
   * did_you_mean.c: s/c_sname_full_name/c_ast_full_name/
   * did_you_mean.c: Types for "did you mean ...?" are now those only valid in
     the current language.
   * did_you_mean.c: Simplification.

2020-12-21  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Better error message for "explain <name>" where <name> is not a
     type; added "did you mean ...?" to "show <name>" where <name> is not a
     type.
   * print.c: Now printing "or" before last did-you-mean suggestion.

2020-12-19  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, help.c, parser.y, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c.out, help_commands-c++.out, help_commands-c.out: Now
     allowing "show ... [as] english".
   * c_kind.h, c_sname.h, did_you_mean.c, did_you_mean.h, red_black.h: Added
     "May be null."
   * c_ast.c, c_ast.h, c_keyword.c, c_sname.c, gibberish.h, types.h: Moded some
     types; removed some #include.
   * color.c: s/uint64_t/unsigned long long/
   * c_keyword.c, english.c, errors.c: Removed unnecessary #include.

2020-12-18  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Changed version to 9.0.
   * types.h: Moved declaration.
   * gibberish.c, gibberish.h: Now longer using bits for c_gib_kind.
   * gibberish.c: Added assert().
   * lib/Makefile.am, c++defs.h, stdio.in.h, stdlib.in.h, string.in.h,
     unistd.in.h, extensions.m4, gnulib-common.m4, pid_t.m4, stdint.m4,
     stdio_h.m4, stdlib_h.m4, sys_types_h.m4, unistd_h.m4: Updated Gnulib.
   * cdecl.1, c_keyword.c, gibberish.c, gibberish.h, help.c, lexer.l, parser.y,
     types.h, test/Makefile.am, help-c++.out, help_command-c++.out,
     help_commands-c++.out, show_predefined_using.out,
     show_predefined_using.test: Added support for showing types as "using"
     declarations.
   * c_keyword.c, c_lang.h, c_typedef.c, gibberish.c, gibberish.h, lexer.l,
     parser.y, test/Makefile.am, show_all_predefined_typedef-c++.out,
     show_all_typedef.out, show_predefined_typedef.out,
     show_all_predefined_typedef-c++.test: The "show" command now prints types
     differently depending on the current language.

2020-12-17  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: s/g_type/c_gib_kind_t/
   * gibberish.c: s/FPRINTF/FPUTS/

2020-12-15  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, c_kind.h, c_type.h, c_typedef.c, english.c: Removed unnecessary
     REINTERPRET_CAST().
   * cdecl.1, c_lang.h, c_typedef.c, c_typedef.h, help.c, parser.y, util.h,
     test/Makefile.am, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c.out, help_commands-c++.out, help_commands-c.out,
     show_all-c++.out, show_all.out, show_all_predefined-c++.out,
     show_all_predefined.out, show_all_typedef.out, show_predefined-c++.out,
     show_predefined.out, show_predefined_typedef.out, show_all-c++.test,
     show_all_predefined-c++.test, show_all_predefined.test,
     show_predefined-c++.test: The `show` command now shows only types that are
     valid in the current language.

2020-12-13  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c: s/c_typedef_parse_builtins/c_typedef_parse_predefined/
   * c_typedef.c: Split TYPEDEFS_STD_CPP[] into separate arrays for C++, C++11,
     c++17, C++20.
   * parser.y: Better annotation of inherited attributes; C++03/11 specific
     error message for "= error".
   * errors.c: Fixed error message for main()'s signature.
   * parser.y: Printing an unknown type error now alternatively prints "X isn't
     a keyword until..." if X is a keyword in a later language version.
   * c_keyword.c: Whitespace fix.
   * parser.y: s/ELABORATE_ERROR/elaborate_error/ to match print_*() functions.
   * parser.y: Fixed @param.
   * parser.y, print.c, print.h: Renamed *_impl() functions to fl_*().
   * parser.y: print_error_unknown_type() now also prints the parser.y file
     location in debug mode.
   * parser.y, print.c: elaborate_error() now also prints file:line in debug
     mode; moved file:line back to end of other messages to match
     elaborate_error().

2020-12-11  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Now checking if the error token is a keyword: if so, mention it
     in the error message.
   * configure.ac, c_keyword.c, literals.c, literals.h, parser.y: Added C++20
     keywords co_await, co_return, and co_yield.
   * dam_lev.c, dam_lev.h, did_you_mean.c, did_you_mean.h: Added missing @file
     comments.

2020-12-10  Paul J. Lucas <paul@lucasmail.org>

   * did_you_mean.c: Silenced warning.
   * src/Makefile.am, c_keyword.c, c_keyword.h, dam_lev.c, dam_lev.h,
     did_you_mean.c, did_you_mean.h, errors.c, parser.y, print.c, print.h,
     types.h: Added "did you mean ...?" suggestions for typograpical errors for
     commands and types.
   * autocomplete.c, cdecl.c, cdecl.h, types.h: Unified CDECL_COMMANDS in
     cdecl.c and autocomplete.c.
   * cdecl.c: Removed "q", "quit", and "exit" from first arg or program name;
     s/COMMAND/C_COMMAND/

2020-12-09  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_operator.c, c_sname.c, c_type.c, c_typedef.c, cdecl.c,
     color.c, debug.c, english.c, gibberish.c, lexer.l, options.c, print.c,
     prompt.c, util.c: x.c now always includes x.h immediately after
     pjl_config.h.
   * red_black.c, red_black.h: Removed "following".

2020-12-08  Paul J. Lucas <paul@lucasmail.org>

   * errors.c, print.c: Hints are now printed on the same line as errors.
   * print.h: Fixed newline comments.
   * c_keyword.c, c_type.h: Added TX_NONE.

2020-12-07  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_type.c, errors.c, parser.y, print.c, set.c: print_error()
     and print_warning() no longer print \n.
   * red_black.c, red_black.h: Added <> around URLs in comments.
   * src/Makefile.am: Moved debug.h to be inside ENABLE_CDECL_DEBUG.

2020-12-06  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_ast_util.h: Made c_ast_join_type_decl() return non-const*.

2020-12-04  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_ast_util.h, parser.y: Moved some code to c_ast_util.c.
   * configure.ac, cdecl.1, parser.y, test/Makefile.am, cdecl--debug.out,
     cdecl-d.out, explain_i_i.out, explain_i_pfd_i.out, explain_i_pi.out,
     explain_i_i.test, explain_i_pfd_i.test, explain_i_pi.test: Can now explain
     multiple, comma-separated declarations.
   * parser.y: Added in_attr_free().

2020-12-02  Paul J. Lucas <paul@lucasmail.org>

   * red_black.c, red_black.h: Removed rb_tree_new() -- no longer used.
   * options.c, util.c: Added "noreturn".
   * pjl_config.h: Removed do { ... } while (0)

2020-12-01  Paul J. Lucas <paul@lucasmail.org>

   * AUTHORS, cdecl.1, c_lang.c, c_lang.h, help.c, test/Makefile.am,
     help-c++.out, help-c.out, help_command-c++.out, help_command-c.out,
     help_commands-c++.out, help_commands-c.out, set_c17.out, set_c90.out,
     cast_pfx_i-c17.test, declare_pfkr_i-c17.test, set_c17.test, set_c18.test,
     set_c90.test: Nos using C17 instead of C18 (but still allowing C18); also
     allowing C90 as an alias for C89.

2020-11-30  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c, c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h, c_keyword.c,
     c_keyword.h, c_kind.c, c_kind.h, c_lang.c, c_lang.h, c_operator.c,
     c_operator.h, c_sname.c, c_sname.h, c_type.c, c_type.h, c_typedef.c,
     c_typedef.h, cdecl.c, color.h, debug.c, debug.h, english.c, english.h,
     errors.c, gibberish.c, gibberish.h, help.c, lexer.h, lexer.l, literals.c,
     literals.h, options.c, options.h, parser.y, print.c, print.h, prompt.c,
     prompt.h, red_black.c, red_black.h, set.c, slist.c, slist.h, util.c,
     util.h: pjl_config.h is now the primary file to #include.

2020-11-28  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c, c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h, c_keyword.c,
     c_keyword.h, c_kind.h, c_lang.h, c_operator.c, c_operator.h, c_sname.c,
     c_sname.h, c_type.c, c_type.h, c_typedef.c, c_typedef.h, cdecl.c, color.c,
     color.h, debug.c, english.c, errors.c, gibberish.c, gibberish.h, help.c,
     lexer.h, lexer.l, literals.h, options.c, options.h, parser.y,
     pjl_config.h, print.c, print.h, prompt.c, red_black.c, red_black.h,
     slist.h, util.c, util.h: s/C_/PJL_/ for pjl_config.h macros.

2020-11-25  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l, types.h: Now using Bison-defined yytokentype.

2020-11-24  Paul J. Lucas <paul@lucasmail.org>

   * stdio.in.h, unistd.in.h, unistd_h.m4: Updated Gnulib.

2020-11-10  Paul J. Lucas <paul@lucasmail.org>

   * options.c, options.h: opt_fin & opt_fout have been made local to options.c
     and renamed fin_path and fout_path.
   * debug.c: Now pre-incrementing and post-decrementing.

2020-11-08  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Replaced '(' with lparen_exp and ')' with rparen_exp in some
     cases.
   * parser.y: s/_expected/_exp/
   * parser.y: Reordered some lines.

2020-11-07  Paul J. Lucas <paul@lucasmail.org>

   * c_type.h: Added comment.

2020-11-06  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c: s/i_ast/j_ast/
   * lib/Makefile.am, stdlib.in.h, stdlib_h.m4: Updated Gnulib.
   * c_typedef.c, red_black.h, slist.h: Renaming.
   * parser.y, test/Makefile.am, explain_fac_v-1.out, explain_fac_v-1.test:
     Added support for C99 type-qualified arrays of unspecified size.
   * autocomplete.c, c_lang.c, c_type.c, c_typedef.c, cdecl.c, options.c: Added
     "const" to array sizes.
   * c_typedef.c, red_black.c, red_black.h: Red-black trees are now
     stack-based.

2020-11-05  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.c, c_sname.h, parser.y, slist.h:
     s/slist_head()/slist_peek_head()/; s/slist_tail()/slist_peek_tail()/

2020-11-02  Paul J. Lucas <paul@lucasmail.org>

   * cdecl_lldb.py: Now using linked_list_iter().
   * cdecl_lldb.py: Removed ';'.

2020-11-01  Paul J. Lucas <paul@lucasmail.org>

   * cdecl_lldb.py: Removed "et al.".
   * cdecl_lldb.py: Added LLDB pretty printer for c_scope_t.
   * extensions.m4, gnulib-common.m4, pid_t.m4, sys_types_h.m4: Updated Gnulib.
   * configure.ac: Updated to 8.2.
   * cdecl.1, help.c, parser.y, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c.out, help_commands-c++.out, help_commands-c.out: The "set"
     command can now take multiple options.
   * set.c: Added asserts.

2020-10-31  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c: s/COMMAND_FIRST_ARG/COMMAND_ANY/
   * .lldbinit, cdecl_lldb.py: Added LLDB formater for c_sname_t.
   * lexer.l: Renamed c_sname parsing functions.

2020-10-28  Paul J. Lucas <paul@lucasmail.org>

   * util.c: path_append() now handles case of component starting with '/'.
   * util.c: Sorted functions.
   * util.h: Removed self @sa.
   * c_sname.c: Added assert().

2020-10-26  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c, c_type.h: Removed c_type_data_dup(), c_type_data_free(), and
     c_type_data_new() -- no longer used.
   * configure.ac: Removed AX_COMPILE_CHECK_SIZEOF(c_type_id_t...) -- no longer
     needed.

2020-10-25  Paul J. Lucas <paul@lucasmail.org>

   * c_kind.h, errors.c: Added K_ANY_OBJECT.
   * parser.y: s/LANG_MIN/LANG_CPP_MIN/
   * parser.y: s/TYPE_ID/TID/
   * c_lang.h: s/c_lant_lit/c_lang_lit/

2020-10-20  Paul J. Lucas <paul@lucasmail.org>

   * help.c, help-c++.out, help_command-c++.out, help_commands-c++.out,
     help_english-c++.out: Moved scope-e in help.

2020-10-19  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.h, c_type.c, lexer.l: Added C_LANG_LIT() macro.
   * lexer.l: Added "const".

2020-10-17  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Now initializing show_type_info_t directly.
   * english.c, gibberish.c, parser.y: Removed newlines from
     c_ast_gibberish_type() and c_ast_english_type().

2020-10-11  Paul J. Lucas <paul@lucasmail.org>

   * ax_append_flag.m4, ax_check_compile_flag.m4: Updated m4 macros.

2020-10-06  Paul J. Lucas <paul@lucasmail.org>

   * help.c, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c.out, help_commands-c++.out, help_commands-c.out: Removed []
     from aligned in help since other words don't have [].

2020-10-05  Paul J. Lucas <paul@lucasmail.org>

   * help.c, lexer.l, literals.c, literals.h, help-c++.out, help-c.out,
     help_command-c++.out, help_command-c.out, help_commands-c++.out,
     help_commands-c.out: Now allowing "align" in English.

2020-10-04  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.c, util.h: Added BUF_END().

2020-10-03  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c, show_all_typedef.out, show_predefined_typedef.out: Now
     printing types in nested namespace form when the language is any version
     of C.
   * english.c, english.h, gibberish.c, gibberish.h, parser.y,
     2c_typedef_i.out, namespace_c_typedef_i.out, namespace_k_typedef_i.out,
     namespace_n_typedef_i.out, show_all_typedef.out,
     show_predefined_typedef.out: Now showing types in abbreviated form rather
     than always typedefs.

2020-10-02  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Rework scoped declarations, part 2.
   * parser.y: Rework scoped declarations.
   * c_sname.c, c_sname.h, debug.c, english.c, errors.c, gibberish.c, parser.y:
     Added c_scope_data(); removed c_scope_name(), c_scope_type(),
     c_scope_set_type().

2020-10-01  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h: Whitespace change.
   * c_ast.c, c_ast.h, c_ast_util.c, debug.c, english.c, gibberish.c, parser.y,
     types.h: Added c_typedef_ast_t.
   * parser.y: Added DUMP_BOOL().
   * c_ast.c, c_ast.h, c_ast_util.c, debug.c, english.c, english.h,
     gibberish.c, gibberish.h, lexer.l, parser.y: Replaced c_typedef by
     typedef_ast.

2020-09-24  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, stdnoreturn.in.h, gnulib-cache.m4, gnulib-comp.m4,
     stdnoreturn.m4, lexer.l, parser.y, pjl_config.h, util.h: Now using
     Gnulib's stdnoreturn.h.

2020-09-23  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, arg-nonnull.h, c++defs.h, getopt-cdefs.in.h, stddef.in.h,
     stdint.in.h, stdio.in.h, stdlib.in.h, string.in.h, unistd.in.h,
     warn-on-use.h, 00gnulib.m4, absolute-header.m4, gnulib-common.m4,
     gnulib-comp.m4, include_next.m4, pid_t.m4, stddef_h.m4, stdint.m4,
     string_h.m4, warn-on-use.m4, wint_t.m4: Updated Gnulib.

2020-09-22  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.c, c_sname.h: Renaming.
   * options.h: Renaming.
   * slist.c, slist.h: Renaming.

2020-09-20  Paul J. Lucas <paul@lucasmail.org>

   * types.h: Whitespace change.
   * errors.c, gibberish.c, literals.c, literals.h: Unified alignas_lang().
   * gibberish.c: Change gibberish type eo an enum.

2020-09-19  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c: Now free'ing function parameter list nodes.
   * c_ast.c: Sorted functions.
   * c_ast.h: Sorted functions.
   * c_ast.h, c_sname.h: Removed unused functions.
   * c_ast.c, c_ast.h, c_ast_util.c, c_operator.c, c_typedef.c, english.c,
     errors.c, gibberish.c, parser.y: Renaming.
   * parser.y: s/c_sname_append_name/c_ast_sname_append_name/
   * errors.c: s/c_sname_local_name/c_ast_sname_local_name/
   * c_ast.c, c_ast.h, debug.c, english.c, errors.c, gibberish.c:
     s/c_ast_param_ast/c_param_ast/

2020-09-18  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: s/is_deleted/is_delete/
   * c_ast.c, c_ast.h, c_kind.h, c_operator.c, c_operator.h, debug.c,
     english.c, errors.c, gibberish.c, parser.y, types.h, cdecl--debug.out,
     cdecl-d.out: Changed "arguments" to "parameters" since that's technically
     correct.

2020-09-13  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, debug.c, errors.c, parser.y, types.h: Renaming.
   * cdecl--debug.out, cdecl-d.out: Now debug printing function flags better,
     part 2.
   * debug.c: Now debug printing function flags better.
   * debug.c: Renamed variable.
   * debug.c: Added INDENT_PRINT_LOC().
   * cdecl.1, c_typedef.c, parser.y, cdecl--debug.out, cdecl-d.out,
     show_all.out, show_all_typedef.out, show_predefined.out,
     show_predefined_typedef.out: Added many more standard C++ types.

2020-09-12  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: COmment fix.
   * parser.y: Parser macro clean-up.
   * parser.y, test/Makefile.am, explain_grtri.out, explain_grtrri.out,
     explain_grtri.test, explain_grtrri.test: Added support for restricted
     references.

2020-09-11  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c: Fix build error on Linux.
   * configure.ac, cdecl.1, autocomplete.c, c_keyword.c, c_lang.c, c_lang.h,
     c_type.c, c_type.h, errors.c, literals.c, literals.h, parser.y,
     test/Makefile.am, xupc_declare_a2di.out, xupc_declare_da2i.out,
     xupc_declare_dpi.out, xupc_declare_pdi.out, xupc_declare_ptdi.out,
     xupc_declare_rdi.out, xupc_declare_rdpi.out, xupc_declare_tdi.out,
     xupc_explain_da2i.out, xupc_explain_dpi.out, xupc_explain_pdi.out,
     xupc_explain_ptdi.out, xupc_explain_rdi.out, xupc_explain_rdpi.out,
     xupc_explain_tdi.out, xupc_declare_a2di.test, xupc_declare_dpi.test,
     xupc_declare_pdi.test, xupc_declare_ptdi.test, xupc_declare_rdi.test,
     xupc_declare_rdpi.test, xupc_declare_tdi.test, xupc_explain_da2i.test,
     xupc_explain_dpi.test, xupc_explain_pdi.test, xupc_explain_ptdi.test,
     xupc_explain_rdi.test, xupc_explain_rdpi.test, xupc_explain_ri.test,
     xupc_explain_tdi.test: Added support for Unified Parallel C.

2020-09-10  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c, c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h, c_keyword.c,
     c_lang.c, c_lang.h, c_operator.c, c_sname.c, c_sname.h, c_type.c,
     c_type.h, c_typedef.c, debug.c, debug.h, english.c, errors.c, gibberish.c,
     lexer.l, literals.c, literals.h, options.c, parser.y, pjl_config.h,
     types.h, util.h, cdecl--debug.out, cdecl-d.out: Now using multi-part C/C++
     types for >64 bits of type information.

2020-08-13  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, parser.y: Can now declare a class as just "class C[;]".

2020-08-12  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all.out,
     show_all_typedef.out, show_predefined.out, show_predefined_typedef.out:
     Added types std::condition_variable, std::condition_variable_any,
     std::mutex, std::recursive_mutex, std::recursive_timed_mutex, std::regex,
     std::shared_mutex, std::shared_timed_mutex, std::string_view, and
     std::timed_mutex.

2020-08-09  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added more mentions of Embedded C types.
   * cdecl.1: Added misssing "final", "override", and "export".
   * cdecl.1: Storage is * for constructor.
   * c_type.c: Renaming.

2020-07-31  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: s/slist_t/c_ast_args_t/
   * parser.y: Moved more calls to DUMP_* macros before PARSE_ABORT().
   * parser.y: For trailing_return_type_c_ast_opt, move DUMP_* calls before
     checks.

2020-07-29  Paul J. Lucas <paul@lucasmail.org>

   * Makefile.am: s/gnulib/gnulib-tool/
   * types.h: Made c_lang_id_t be uint32_t to avoid warnings.
   * cdecl.1, autocomplete.c, c_keyword.c, c_type.c, c_type.h, lexer.l,
     literals.c, literals.h, parser.y, test/Makefile.am, declare_exf_i.out,
     declare_exi.out, explain_exf_i.out, explain_exi.out, declare_exf_i.test,
     declare_exi.test, declare_exsi.test, explain_exf_i.test, explain_exi.test,
     explain_exsi.test: Added support for C++20's "export".
   * test/Makefile.am: Test renaming.

2020-07-28  Paul J. Lucas <paul@lucasmail.org>

   * errors.c, lexer.l, test/Makefile.am, cast_pfx_i-c18.test, cast_pfx_i.test,
     declare_fkr_pi-c18.test, declare_fkr_pi.test, declare_pfkr_i-c18.test,
     declare_pfkr_i.test, explain_fkr_pi-c18.test, explain_fkr_pi.test: Removed
     support for typeless function arguments in C2X.
   * cdecl.1, autocomplete.c, c_keyword.c, c_type.c, c_type.h, errors.c,
     literals.c, literals.h, parser.y, test/Makefile.am, declare_xici.out,
     declare_xici.test, explain_xif_i.test: Added "constinit".
   * test/Makefile.am: Test renaming.

2020-07-27  Paul J. Lucas <paul@lucasmail.org>

   * c_keyword.c, literals.c, literals.h, parser.y: Added "asm".
   * cdecl.c, options.c, options.h: Uniform declaration of argv.

2020-07-26  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_type.c, c_type.h, errors.c, gibberish.c, parser.y:
     Renaming all c_type_id_t to end in _id.
   * configure.ac: Upped version to 8.0.
   * english.c, parser.y: Simplified explaining typedefs.
   * english.c: Reformatting.
   * c_type.c: Added L_TYPE for English version of T_TYPEDEF.
   * parser.y: s/c_ast_finish_explain/c_ast_pre_explain/
   * parser.y: Simplified c_ast_explain() a bit.
   * c_ast_util.c, c_ast_util.h, parser.y:
     s/c_ast_take_typedef/c_ast_take_type_any/
   * cdecl.1, help.c, parser.y, help-c++.out, help_command-c++.out,
     help_commands-c++.out: {} are now optional for class/struct/union-alone
     declarations.
   * help.c, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c.out, help_commands-c++.out, help_commands-c.out: Added C2X
     to help.
   * parser.y:
     s/scope_typedef_or_using_declaration_c_opt/in_scope_declaration_c_opt/
   * AUTHORS: Added more stuff added.
   * Makefile.am: Added "update-gnulib" rule.
   * gnulib-common.m4, multiarch.m4: Updated Gnulib.
   * cdecl.1, c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all.out,
     show_all_typedef.out, show_predefined.out, show_predefined_typedef.out:
     Added yet more types _Float16_t, _Float32_t, _Float64_t, _Float128_t,
     _Decimal128_t.

2020-07-25  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all.out,
     show_all_typedef.out, show_predefined.out, show_predefined_typedef.out:
     Added types from Floating-point extensions for C.
   * c_lang.c: s/K&R C/K&RC/ for consistency.
   * cdecl.1, autocomplete.c, c_keyword.c, c_lang.c, c_lang.h, c_type.c,
     parser.y, set.out, set_options.out: Added support for C2X.
   * cdecl.c, cdecl.h, parser.y, types.h: Replaced c_init_t by bool.
   * parser.y: Added unsupported().
   * c_lang.h, types.h: Reworked LANG_*.
   * util.h: UNEXPECTED_INT_VALUE() now also prints in hex.
   * parser.y: The [[xxx]] attribute syntax is now forbidden until C++11.
   * c_keyword.c, c_type.c: Reformatting.
   * cdecl.1, autocomplete.c, c_keyword.c, c_keyword.h, c_lang.c, c_lang.h,
     c_type.c, c_type.h, c_typedef.c, errors.c, lexer.l, literals.c,
     literals.h, parser.y, test/Makefile.am, cdecl--debug.out, cdecl-d.out,
     show_all.out, show_all_typedef.out, show_predefined.out,
     show_predefined_typedef.out, xec_explain_a.out, xec_explain_ha.out,
     xec_explain_hr.out, xec_explain_la.out, xec_explain_lr.out,
     xec_explain_r.out, xec_explain_ta.out, xec_explain_tr.out,
     xec_explain_tua.out, xec_explain_ua.out, xec_explain_uhta.out,
     xec_explain_uhtr.out, xec_explain_ur.out, xec_explain_uta.out,
     xec_explain_a.test, xec_explain_ha.test, xec_explain_hr.test,
     xec_explain_la.test, xec_explain_lla.test, xec_explain_llr.test,
     xec_explain_lr.test, xec_explain_r.test, xec_explain_t.test,
     xec_explain_ta.test, xec_explain_ti.test, xec_explain_tr.test,
     xec_explain_tua.test, xec_explain_ua.test, xec_explain_uhta.test,
     xec_explain_uhtr.test, xec_explain_ur.test, xec_explain_uta.test: Added
     support for Embedded C extensions.

2020-07-24  Paul J. Lucas <paul@lucasmail.org>

   * test/Makefile.am, update_test.sh: Added update_test.sh script.
   * run_test.sh: s/OUTPUT/ACTUAL_OUTPUT/

2020-07-23  Paul J. Lucas <paul@lucasmail.org>

   * print.c, print.h: Now printing file & line where print_warning() was
     called from in debug mode.
   * c_type.c, c_type.h: s/T_INT_MODIFIER/T_ANY_MODIFIER/
   * c_type.c: Reference qualifiers are only in C++11 and later.
   * lexer.l: Added comments.

2020-07-21  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c: Removed silly assert()s.
   * c_ast.c, c_ast.h: Made c_ast_sname_dup() inline.
   * c_sname.c, c_sname.h: Removed c_sname_prepend_name() -- not used.
   * configure.ac, cdecl.1, autocomplete.c, cdecl.c, parser.y,
     2c_typedef_i.out, namespace_c_typedef_i.out, namespace_k_typedef_i.out,
     namespace_n_typedef_i.out, typedef_tki.out: class/struct/union addionally
     define themselves. Added "class", "struct", and "union" as commands. ';'
     is now optional after class/struct/union.
   * c_ast.c, c_ast.h, c_sname.c, c_sname.h, english.c, errors.c, parser.y:
     Changed *_type to *_local_type to be clearer.
   * c_sname.h, gibberish.c: Fixed printing scoped types in gibberish for
     recent sname scoping changes.

2020-07-20  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Added debug information to scope_declaration_c.
   * english.c: Simplified c_sname_english() and c_typedef_english().
   * debug.c, debug.h, parser.y, cdecl--debug.out, cdecl-d.out: Now including
     scope types for all scopes in sname debug output.

2020-07-19  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Now setting the scope type to "namespace" for all scopes in a
     namespace declaration.
   * c_ast.c, c_sname.c, c_typedef.c: Added assert()s.
   * c_sname.c: Simplified c_sname_type_impl().
   * parser.y: Moved check for nested types in C only if a nested type is
     actually attempted.
   * help.c, help-c++.out, help_command-c++.out, help_commands-c++.out: Removed
     {} from scope-e in help.
   * c_typedef.c: Added C_TYPEDEF_VAR_INIT().

2020-07-18  Paul J. Lucas <paul@lucasmail.org>

   * c_sname.c, c_sname.h, english.c, errors.c, lexer.l, parser.y, types.h,
     test/Makefile.am, explain_nsct.out, explain_nsct.test: Each scope of a
     scoped name (sname) now has its own type.	Additionally, the English
     printed order is now (correctly) inner-to-outermost.

2020-07-17  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c: Reworked c_ast_sname_set_sname().
   * c_ast.c: s/c_sname_append_sname/c_ast_sname_append_sname/
   * parser.y: Flipper c_sname_append_sname() & c_sname_set_type() order.
   * c_type.c, errors.c, parser.y: s/strdup/check_strdup/

2020-07-16  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, c_sname.h: Moved c_scope_name() from c_ast.h to c_sname.h.
   * prompt.c: Now always freeing old prompt.
   * c_lang.c, cdecl.c, prompt.c, prompt.h, set.c: s/prompt/cdecl_prompt/
   * c_ast_util.h: Sorted functions.
   * c_ast_util.c, c_ast_util.h, errors.c, types.h: Moved c_ast_pair to
     types.h.
   * c_ast.c: Pulled switch() out of loop in c_ast_visit().
   * c_ast.c: Changed c_ast_visit() from recursive to iterative.

2020-07-15  Paul J. Lucas <paul@lucasmail.org>

   * color.c: s/fd_out/fout_fd/
   * help.c: Hoisted is_title() check out of the loop.
   * help.c: s/c/s/

2020-07-14  Paul J. Lucas <paul@lucasmail.org>

   * help.c: Added comment.
   * help.c: Simplified help-printing code; now also highlighting '+'.

2020-07-13  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, cdecl.1, help.c, parser.y, help-c++.out, help-c.out,
     help_command-c++.out, help_command-c.out, help_commands-c++.out,
     help_commands-c.out: Now allowing "to" in addition to "as" for "...
     aligned [as|to] ...".

2020-07-12  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, help.c, parser.y: Now allowing an optional "as" in "show ... [as]
     typedef".

2020-07-11  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, string.in.h, unistd.in.h, string_h.m4, unistd_h.m4:
     Updated GNUlib.
   * c_ast.c, c_type.h, parser.y: Added T_ANY_SCOPE.
   * c_ast.h: Moved some documentation.
   * configure.ac, c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h, c_kind.c,
     c_kind.h, errors.c, parser.y, types.h: s/c_kind/c_kind_id/
   * errors.c, test/Makefile.am, explain_rr.test, explain_rrr-1.test,
     explain_rrr-2.test, explain_rrrr.test: References to references are now
     illegal.

2020-07-10  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: -Wimplicit-int-conversion and -Wshorten-64-to-32 and clang only.
   * c_ast_util.c: Now calling c_type_normalize() in more places.
   * errors.c: s/0/T_NONE/
   * errors.c: Added [const] to error message.
   * errors.c: Simplified c_ast_check_func_main().
   * c_ast_util.c, c_ast_util.h, errors.c: Augmented c_ast_is_ptr_to_type() to
     take a mask parameter.

2020-07-09  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, c_ast_util.h, errors.c: Added c_ast_is_ptr_to_type().
   * c_ast.h, types.h: Added c_ast_args_t.
   * debug.h: s/out/dout/
   * run_test.sh, 2c_typedef_i.test, 2define_k_define_2k_show.test,
     2k_typedef_i.test, cast_+i.test, cast_a3i.test, cast_bii_d.test,
     cast_ci.test, cast_constant.test, cast_cpa3cpa5i.test, cast_cpa3pa5i.test,
     cast_cpa9ci.test, cast_cpa9i.test, cast_cpbv_pi.test, cast_cpcpi.test,
     cast_cpfv_pi.test, cast_cpi.test, cast_cppi.test, cast_cvpi.test,
     cast_f_i.test, cast_gi.test, cast_ll.test, cast_pa3cpa5i.test,
     cast_pa3pa5i.test, cast_pa9i.test, cast_pbv_pi.test, cast_pci.test,
     cast_pcpi.test, cast_pf_i-01.test, cast_pf_i-02.test, cast_pfii_i.test,
     cast_pfv_pi.test, cast_pfx_i.test, cast_pi.test, cast_pmi.test,
     cast_ppi.test, cast_sc.test, cast_si.test, cast_sll.test, cast_ti.test,
     cast_type.test, cast_u.test, cast_uc.test, cast_ui.test, cast_ull.test,
     cast_vcpi.test, cast_vpi.test, cdecl--debug.test,
     cdecl--no-semicolon.test, cdecl--no-typedefs.test, cdecl-23.test,
     cdecl-Ii.test, cdecl-Iiu.test, cdecl-Il.test, cdecl-Ill.test,
     cdecl-Ilull.test, cdecl-Is.test, cdecl-Iu.test, cdecl-Iui.test,
     cdecl-Iul,ll.test, cdecl-Iul.test, cdecl-Iull.test, cdecl-Iulll.test,
     cdecl-Iulull.test, cdecl-Ius.test, cdecl-Ix.test, cdecl-d.test,
     cdecl-e-const_cast_pi.test, cdecl-s.test, cdecl-t.test, cdecl-xx.test,
     ci.test, cl-cast_i.test, cl-declare_i.test, cl-explain_i.test,
     const_cast_+pi.test, const_cast_pi-c.test, const_cast_pi.test,
     declare_+ctor-error.test, declare_+dtor.test, declare_+f_v.test,
     declare_+o_delete_a_pv_v.test, declare_+o_delete_pv_v.test,
     declare_+o_eq_rck_rk=default-c++03.test,
     declare_+o_eq_rck_rk=default.test, declare_+o_eq_rck_rk=delete-c++03.test,
     declare_+o_eq_rck_rk=delete.test, declare_+o_new_a_z_pv.test,
     declare_+o_new_z_pv.test, declare_+udc_i.test, declare_+udl_c_i.test,
     declare_0f_v-c.test, declare_0f_v.test, declare_2+f_v.test,
     declare_=+i.test, declare_=i-c.test, declare_=i.test, declare_a.test,
     declare_a3a5a7i.test, declare_a3a5i.test, declare_a3a5pfv_i.test,
     declare_a3a5pfv_pi.test, declare_a3a5pfv_ppa7a9i.test,
     declare_a3a5pfv_ppa7a9pc.test, declare_a3a5pfv_ppa7i.test,
     declare_a3a5pfv_ppa7pi.test, declare_a3a5pfv_ppi.test,
     declare_a3pfv_i.test, declare_a3ppfv_i.test, declare_a9cpi.test,
     declare_a9i.test, declare_a9pi.test, declare_a_nua_f.test,
     declare_ac3i.test, declare_af-c++.test, declare_af.test,
     declare_ai-01.test, declare_ai-02.test, declare_ai-c++11.test,
     declare_ai.test, declare_alttokens_o_amper2_rck_b.test,
     declare_alttokens_o_amper_eq_rki_rk.test,
     declare_alttokens_o_amper_rcki_k.test,
     declare_alttokens_o_circ_eq_i_rk.test,
     declare_alttokens_o_circ_rcki_k.test,
     declare_alttokens_o_exclam_eq_rcki_b.test,
     declare_alttokens_o_exclam_rck_b.test,
     declare_alttokens_o_pipe_2rck_k.test,
     declare_alttokens_o_pipe_eq_i_rk.test, declare_alttokens_o_pipe_i_rk.test,
     declare_alttokens_o_tilde_k.test, declare_api-01.test, declare_as3i.test,
     declare_avi.test, declare_b-c++.test, declare_b-c89.test, declare_b.test,
     declare_b_ai.test, declare_b_f_i.test, declare_bii_d.test,
     declare_c-c.test, declare_c.test, declare_c16-c++03.test,
     declare_c16-c99.test, declare_c32-c++03.test, declare_c32-c99.test,
     declare_c8-c++17.test, declare_c_al0-c++.test, declare_c_al0.test,
     declare_c_al8-c++.test, declare_c_al8.test, declare_c_alpv.test,
     declare_cdfcdi_i.test, declare_cdfi_i.test, declare_cdi.test,
     declare_cf_v-c.test, declare_cf_v.test, declare_ci-ec.test,
     declare_ci-knr.test, declare_ci.test, declare_ck-ec.test, declare_ck.test,
     declare_ck2-ec.test, declare_ck2.test, declare_cnmf_v.test,
     declare_co_exclam_k_b.test, declare_constant.test, declare_cpa3cpa5i.test,
     declare_cpa3pa5i.test, declare_cpa9ci.test, declare_cpa9i.test,
     declare_cpbv_pi.test, declare_cpcpi.test, declare_cpfv_pi.test,
     declare_cpi.test, declare_cpmi.test, declare_cppi.test,
     declare_crf_v.test, declare_cri.test, declare_crrf_v.test,
     declare_ctor.test, declare_ctor_i.test, declare_cu.test,
     declare_cvpi.test, declare_cz-ec.test, declare_cz.test, declare_df_v.test,
     declare_digraphs_a9i.test, declare_digraphs_nfi_v-c++.test,
     declare_dtor.test, declare_dui.test, declare_e-knr.test, declare_e.test,
     declare_ea2i.test, declare_ec-c.test, declare_ec.test,
     declare_ector_i.test, declare_ef.test, declare_ek.test,
     declare_esf_v.test, declare_f+k_v.test, declare_f.test, declare_f_ai.test,
     declare_f_f_i.test, declare_f_pi.test, declare_f_pmi.test,
     declare_facs3_v.test, declare_facv_v.test, declare_fas3_v.test,
     declare_fasc3_v.test, declare_fav_v.test, declare_fcce_v-01.test,
     declare_fcce_v-02.test, declare_fcce_v-03.test, declare_fcdi_i.test,
     declare_fcf.test, declare_fco_exclam_b.test, declare_fdi_v.test,
     declare_ff_v-c.test, declare_ff_v.test, declare_fg_v-c89.test,
     declare_fg_v.test, declare_fgi_v.test, declare_fid_v.test,
     declare_fiiv_v.test, declare_fipfi_v_pfi_v.test, declare_fiv_v.test,
     declare_fixiy_v.test, declare_fmf_v.test, declare_fmo_star_rk_rk.test,
     declare_fn.test, declare_fpc_pi.test, declare_fpci_pi.test,
     declare_fpfc_i_d.test, declare_frri_v.test, declare_fsi_v.test,
     declare_fti_v-01.test, declare_fti_v-02.test, declare_fui_v-01.test,
     declare_fui_v-02.test, declare_fv_pa3a5i.test, declare_fv_pa3a5pi.test,
     declare_fv_pa3i.test, declare_fv_pa3pi.test, declare_fv_v.test,
     declare_fvx_v.test, declare_fx_pi.test, declare_ga.test,
     declare_gf_v.test, declare_gi.test, declare_grtpi.test, declare_hb.test,
     declare_hc.test, declare_hc16.test, declare_hc32.test, declare_hc8.test,
     declare_hd.test, declare_hf.test, declare_hl.test, declare_hll.test,
     declare_hv.test, declare_hw.test, declare_i=+.test, declare_if_v.test,
     declare_ii-c++.test, declare_ii.test, declare_jf_i.test, declare_ji.test,
     declare_k.test, declare_lb.test, declare_lc.test, declare_lc16.test,
     declare_lc32.test, declare_lc8.test, declare_ld-knr.test, declare_ld.test,
     declare_lf-c.test, declare_lf.test, declare_ll-c89.test,
     declare_ll-knr.test, declare_ll.test, declare_lll.test, declare_lv.test,
     declare_lw.test, declare_md.test, declare_mf.test, declare_mi.test,
     declare_mo_amper2_rck_b.test, declare_mo_amper_eq_i_rk.test,
     declare_mo_amper_i_rk.test, declare_mo_amper_pk.test,
     declare_mo_arrow_i.test, declare_mo_arrow_pk.test,
     declare_mo_arrow_star_i_rk.test, declare_mo_brackets_i_i.test,
     declare_mo_circ_eq_i_rk.test, declare_mo_comma_i_rk.test,
     declare_mo_exclam_b.test, declare_mo_exclam_eq_i_b.test,
     declare_mo_greater2_eq_i_rk.test, declare_mo_greater2_i_k.test,
     declare_mo_greater_eq_rcki_b.test, declare_mo_less2_eq_i_rk.test,
     declare_mo_less2_i_k.test, declare_mo_less_eq_rcki_b.test,
     declare_mo_minus_eq_i_rk.test, declare_mo_minus_i_k.test,
     declare_mo_percent_eq_i_rk.test, declare_mo_percent_i_k.test,
     declare_mo_pipe2_rck_b.test, declare_mo_pipe_eq_i_rk.test,
     declare_mo_pipe_i_rk.test, declare_mo_plus_eq_i_rk.test,
     declare_mo_plus_i_k.test, declare_mo_slash_eq_i_rk.test,
     declare_mo_star_eq_i_rk.test, declare_mo_star_i_rk.test,
     declare_mo_star_rk.test, declare_mo_tilde_k.test, declare_n.test,
     declare_nfi_v-01-c++.test, declare_nfi_v-01.test,
     declare_nfi_v-02-c++.test, declare_nfi_v-02.test,
     declare_nfi_v-03-c++.test, declare_nfi_v-03.test, declare_ni.test,
     declare_nmo_amper2_2rck_b.test, declare_nmo_amper_eq_rki_rk.test,
     declare_nmo_amper_i_i.test, declare_nmo_amper_rcki_k.test,
     declare_nmo_amper_rk_pk.test, declare_nmo_arrow_rk_pk.test,
     declare_nmo_arrow_star_rki_rk.test, declare_nmo_brackets_rcki_v.test,
     declare_nmo_circ_rcki_k.test, declare_nmo_comma_rki_rk.test,
     declare_nmo_eq_rki_rk.test, declare_nmo_exclam_eq_ki_b.test,
     declare_nmo_exclam_rck_b.test, declare_nmo_greater2_rcki_k.test,
     declare_nmo_greater_eq_rcki_b.test, declare_nmo_greater_rcki_b.test,
     declare_nmo_less2_eq_rki_rk.test, declare_nmo_less2_rcki_k.test,
     declare_nmo_less_eq_rcki_b.test, declare_nmo_less_rcki_b.test,
     declare_nmo_minus2_rki_rk.test, declare_nmo_minus_eq_rki_rk.test,
     declare_nmo_minus_rcki_k.test, declare_nmo_parens_rck_v.test,
     declare_nmo_percent_eq_rki_rk.test, declare_nmo_percent_rcki_k.test,
     declare_nmo_pipe2_2rck_b.test, declare_nmo_pipe_eq_rki_rk.test,
     declare_nmo_plus2_rki_rk.test, declare_nmo_plus_eq_rki_rk.test,
     declare_nmo_plus_rcki_k.test, declare_nmo_slash_eq_rki_rk.test,
     declare_nmo_slash_rcki_k.test, declare_nmo_star_eq_rki_rk.test,
     declare_nmo_star_rck_k.test, declare_nmo_star_rcki_k.test,
     declare_nmo_tilde_rck_k.test, declare_ntf.test, declare_o2=_exclam_b.test,
     declare_o_amper2_2rck_b.test, declare_o_amper2_rck_b.test,
     declare_o_amper_2rck_k.test, declare_o_amper_eq_i_rk.test,
     declare_o_amper_eq_rki_rk.test, declare_o_amper_i_rk.test,
     declare_o_amper_pk.test, declare_o_amper_rcki_k.test,
     declare_o_arrow_i.test, declare_o_arrow_rk_pk.test,
     declare_o_arrow_star_i_rk.test, declare_o_arrow_star_rki_rk.test,
     declare_o_brackets_2i_i.test, declare_o_circ_eq_i_rk.test,
     declare_o_colon2_rk_rk.test, declare_o_comma_rki_rk.test,
     declare_o_delete_a_pv_v.test, declare_o_delete_pv_v.test,
     declare_o_dot_k.test, declare_o_dot_star_rk_rk.test,
     declare_o_eq2_i_b.test, declare_o_eq2_ki_b.test, declare_o_exclam_2i.test,
     declare_o_exclam_b.test, declare_o_exclam_eq_i_b.test,
     declare_o_exclam_eq_ki_b.test, declare_o_exclam_rck_b.test,
     declare_o_greater2_eq_i_rk.test, declare_o_greater2_i_k.test,
     declare_o_greater2_rcki_k.test, declare_o_greater_eq_rcki_b.test,
     declare_o_less2_eq_i_rk.test, declare_o_less2_i_k.test,
     declare_o_less2_rcki_k.test, declare_o_less_eq_greater_2rck_a-c++17.test,
     declare_o_less_eq_greater_2rck_a.test, declare_o_less_eq_rcki_b.test,
     declare_o_minus2_d_rk.test, declare_o_minus2_rkd_rk.test,
     declare_o_minus_i_k.test, declare_o_minus_ie_i.test,
     declare_o_new_a_z_pv.test, declare_o_new_z_pv.test,
     declare_o_oexclam_k_b.test, declare_o_parens_2i_v.test,
     declare_o_parens_3i_v.test, declare_o_parens_i_v.test,
     declare_o_parens_v.test, declare_o_percent_eq_i_rk.test,
     declare_o_percent_eq_rki_rk.test, declare_o_percent_i_k.test,
     declare_o_percent_rcki_k.test, declare_o_pipe2_2rck_b.test,
     declare_o_pipe2_rck_b.test, declare_o_pipe_eq_i_rk.test,
     declare_o_pipe_eq_rki_rk.test, declare_o_pipe_i_rk.test,
     declare_o_plus2_d_rk.test, declare_o_plus2_rkd_rk.test,
     declare_o_plus_i_k.test, declare_o_plus_ie_i.test,
     declare_o_qmark_colon_k2i_i.test, declare_o_slash_eq_i_rk.test,
     declare_o_star_eq_i_rk.test, declare_o_star_eq_rki_rk.test,
     declare_o_star_i_rk.test, declare_o_star_rck_k.test,
     declare_o_star_rcki_k.test, declare_o_star_rk.test,
     declare_o_tilde_k.test, declare_o_tilde_rck_k.test,
     declare_ovc_udc_i.test, declare_oyf.test, declare_pa3cpa5i.test,
     declare_pa3pa5i.test, declare_pa9i.test, declare_pai-01.test,
     declare_pbv_pi.test, declare_pci-ec.test, declare_pcpi.test,
     declare_pfv_pi.test, declare_pfv_ri.test, declare_pfx_i.test,
     declare_pi.test, declare_pk.test, declare_pmci.test, declare_pmf_i.test,
     declare_pmf_pc.test, declare_pmi.test, declare_pmri.test,
     declare_ppi.test, declare_pri.test, declare_pv-knr.test,
     declare_ra3i.test, declare_rci.test, declare_rcpi.test, declare_ref.test,
     declare_rf_v.test, declare_rgi.test, declare_ri.test,
     declare_ro_exclam_k_b.test, declare_rpi.test, declare_rrf_v.test,
     declare_rro_exclam_k_b.test, declare_rtf_v-c.test, declare_rtf_v.test,
     declare_rv.test, declare_sa2i.test, declare_sb.test, declare_sc-knr.test,
     declare_sc.test, declare_sc16.test, declare_sc32.test, declare_sc8.test,
     declare_sf_v.test, declare_si-knr.test, declare_si.test,
     declare_sif_v.test, declare_sl-knr.test, declare_sll.test,
     declare_smi.test, declare_so_delete_pv_v.test, declare_sv.test,
     declare_sw.test, declare_sxi.test, declare_t.test, declare_tf_i-01.test,
     declare_tf_i-02.test, declare_ti.test, declare_ti_al8.test,
     declare_tpfc_i.test, declare_trigraphs_a9i.test,
     declare_trigraphs_nfi_v-c++.test, declare_trigraphs_o_circ_eq_i_rk.test,
     declare_trigraphs_o_circ_rcki_k.test,
     declare_trigraphs_o_pipe2_2rck_b.test,
     declare_trigraphs_o_pipe_2rck_k.test,
     declare_trigraphs_o_pipe_eq_i_rk.test, declare_trigraphs_o_tilde_k.test,
     declare_type.test, declare_u.test, declare_ub.test, declare_uc.test,
     declare_uc16.test, declare_uc32.test, declare_uc8.test, declare_ud.test,
     declare_udc_a4i.test, declare_udc_i.test, declare_udc_rcc.test,
     declare_uf.test, declare_uf_v-01.test, declare_uf_v-02.test,
     declare_ui-01.test, declare_ui-02.test, declare_ui.test, declare_ull.test,
     declare_uv.test, declare_uw.test, declare_uz.test, declare_v+f_v.test,
     declare_v.test, declare_vcpi.test, declare_vdtor.test,
     declare_vf_v-c.test, declare_vf_v.test, declare_vi-knr.test,
     declare_vo_exclam_k_b.test, declare_voyf.test, declare_vpi.test,
     declare_vri.test, declare_w-c89.test, declare_w.test, declare_xf.test,
     declare_xi-c.test, declare_xi.test, declare_yf.test,
     declare_yo_exclam_k_b.test, declare_z.test, declare_zd.test,
     declare_zf.test, declare_zz.test, define_2=_i.test, define_=_i.test,
     define_=c_i.test, define_=sc_i.test, define_ai.test,
     define_c_int_least32_t.test, define_ei.test, define_gi.test,
     define_i.test, define_i_declare_i.test, define_i_explain_i.test,
     define_i_int_least32_t.test, define_k_declare_k.test,
     define_k_define_k_explain_k+k.test, define_k_explain_pmki.test,
     define_namespace_=c_i.test, define_si.test, dynamic_cast_+pc.test,
     dynamic_cast_pc-c.test, dynamic_cast_pc.test, explain_+ctor-error.test,
     explain_+dtor-error.test, explain_+dtor.test, explain_+i-c.test,
     explain_+o_delete_a_pv_v.test, explain_+o_delete_pv_v.test,
     explain_+o_eq2_rcki_b.test, explain_+o_eq_rck_rk.test,
     explain_+o_eq_rck_rk=default-01.test,
     explain_+o_eq_rck_rk=default-02.test, explain_+o_eq_rck_rk=delete-01.test,
     explain_+o_eq_rck_rk=delete-02.test,
     explain_+o_exclam_eq_rck_rk=default.test,
     explain_+o_exclam_eq_rck_rk=delete.test, explain_+o_new_a_z_pv.test,
     explain_+o_new_z_pv.test, explain_+udc_i.test, explain_+udl_c_i.test,
     explain_0f_v-01.test, explain_0f_v-02.test, explain_0f_v-c.test,
     explain_0o_amper_rk_pk.test, explain_0o_minus2_i_rk.test,
     explain_0o_minus_rk_rk.test, explain_0o_plus2_i_rk.test,
     explain_0o_plus_rk_rk.test, explain_0o_star_rk_rk.test,
     explain_2+dtor.test, explain_a.test, explain_a012i.test,
     explain_a0b10i.test, explain_a0xAi-01.test, explain_a0xai-02.test,
     explain_a3a5a7i.test, explain_a3a5i.test, explain_a3a5pfv_i.test,
     explain_a3a5pfv_pi.test, explain_a3a5pfv_ppa7a9i.test,
     explain_a3a5pfv_ppa7a9pc.test, explain_a3a5pfv_ppa7i.test,
     explain_a3a5pfv_ppa7pi.test, explain_a3a5pfv_ppi.test,
     explain_a3pfv_i.test, explain_a3ppfv_i.test, explain_a9cpi.test,
     explain_a9i.test, explain_a9pi.test, explain_a_nua_f.test,
     explain_a_nua_k-1.test, explain_a_nua_k-2.test, explain_ac9i.test,
     explain_af.test, explain_ai-01.test, explain_ai-02.test,
     explain_ai-c++11.test, explain_ai.test, explain_al0_c-c++.test,
     explain_al0_c.test, explain_al3_c.test, explain_al8_c-c++.test,
     explain_al8_c.test, explain_alpv_c.test, explain_api-01.test,
     explain_api-02.test, explain_as9i.test, explain_b-c89.test,
     explain_b.test, explain_b_ai.test, explain_bii_d.test,
     explain_bitand_i.test, explain_c-c.test, explain_c.test,
     explain_c16-c++03.test, explain_c16-c99.test, explain_c32-c++03.test,
     explain_c32-c99.test, explain_c8-c++17.test, explain_c_al3.test,
     explain_cast_=pmi.test, explain_cast_a3a5a7i.test,
     explain_cast_a3a5i.test, explain_cast_a3i.test, explain_cast_ai.test,
     explain_cast_ci.test, explain_cast_cpa3cpa5i.test,
     explain_cast_cpa3pa5i.test, explain_cast_cpa9ci.test,
     explain_cast_cpa9i.test, explain_cast_cpbv_pi.test,
     explain_cast_cpcpi.test, explain_cast_cpfv_pi.test, explain_cast_cpi.test,
     explain_cast_cppi.test, explain_cast_cvpi.test, explain_cast_ei.test,
     explain_cast_gi.test, explain_cast_ic.test, explain_cast_ll.test,
     explain_cast_lll.test, explain_cast_pa3a5i.test,
     explain_cast_pa3cpa5i.test, explain_cast_pa3pa5i.test,
     explain_cast_pa9i.test, explain_cast_pbv_pi.test, explain_cast_pci.test,
     explain_cast_pcpi.test, explain_cast_pf_i.test, explain_cast_pfpci_i.test,
     explain_cast_pfpi_i.test, explain_cast_pfv_pi.test, explain_cast_pi.test,
     explain_cast_pic.test, explain_cast_pmc=i.test, explain_cast_pmi.test,
     explain_cast_ppi.test, explain_cast_ri.test, explain_cast_rtpi.test,
     explain_cast_si.test, explain_cast_ti.test, explain_cast_ull.test,
     explain_cast_vcpi.test, explain_cast_vpi.test, explain_cdfcdi_i.test,
     explain_cdfi_i.test, explain_cdi.test, explain_cector_i.test,
     explain_cf_v-c.test, explain_cf_v.test, explain_ci-ec.test,
     explain_ci-knr.test, explain_ci.test, explain_ck.test,
     explain_co_amper_rk_pk.test, explain_co_exclam_k_b.test,
     explain_co_minus2_i_rk.test, explain_co_minus_rk_rk.test,
     explain_co_plus2_i_rk.test, explain_co_plus_rk_rk.test,
     explain_co_star_rk_rk.test, explain_co_tilde_k.test,
     explain_compl_dtor.test, explain_const_cast_+pi.test,
     explain_const_cast_pi-c.test, explain_const_cast_pi.test,
     explain_cpa3cpa5i.test, explain_cpa3pa5i.test, explain_cpa9ci.test,
     explain_cpa9i.test, explain_cpbv_pi.test, explain_cpcpi.test,
     explain_cpfv_pi.test, explain_cpi.test, explain_cpmci.test,
     explain_cpmi.test, explain_cppi.test, explain_crf_v.test, explain_cs.test,
     explain_ctor.test, explain_ctor_i.test, explain_cu.test,
     explain_cvf_v.test, explain_cvpi.test, explain_df_v.test, explain_di.test,
     explain_digraphs_a9i.test, explain_digraphs_nfi_v-c++.test,
     explain_dtor.test, explain_dui-01.test, explain_dui-02.test,
     explain_dynamic_cast_p+c+.test, explain_dynamic_cast_pc-c.test,
     explain_dynamic_cast_pc.test, explain_e-knr.test, explain_e.test,
     explain_ea2i.test, explain_ec.test, explain_ector_i.test,
     explain_eictor_i.test, explain_ek.test, explain_esf_v.test,
     explain_exctor_i.test, explain_f+_v.test, explain_f+udc_i.test,
     explain_f__pf__v.test, explain_f__pv.test, explain_f__v-c++03.test,
     explain_f__v.test, explain_f_ai.test, explain_f_cpmi.test,
     explain_f_pi.test, explain_f_pmi.test, explain_f_v__v.test,
     explain_fa_v.test, explain_fac3_v-c++.test, explain_fac_v.test,
     explain_facs3_v.test, explain_facv_v.test, explain_fas3_v-c++.test,
     explain_fas3_v.test, explain_fasc3_v.test, explain_fasv_v.test,
     explain_fav_v-c++.test, explain_fav_v.test, explain_fcce_v.test,
     explain_fcdi_i.test, explain_fctor_i.test, explain_fdi_v.test,
     explain_fe_v.test, explain_fecc_v.test, explain_fee_v.test,
     explain_fev_v.test, explain_ff_v-c.test, explain_ff_v.test,
     explain_fg_v-c89.test, explain_fg_v.test, explain_fgi_v.test,
     explain_fid_v.test, explain_fiiv_v.test, explain_fipfi_v_pfi_v.test,
     explain_fiv_v.test, explain_fixiy_v.test, explain_fn.test,
     explain_fpa5d_v.test, explain_fpc_pi.test, explain_fpci_pi.test,
     explain_fpfc_i_d.test, explain_frri_v-c++03.test, explain_frri_v.test,
     explain_fsf_v.test, explain_fsi_v.test, explain_fti_v.test,
     explain_fui_v.test, explain_fv_pa3a5i.test, explain_fv_pa3a5pi.test,
     explain_fv_pa3i.test, explain_fv_pa3pi.test, explain_fv_pi.test,
     explain_fv_v.test, explain_fve_v.test, explain_fvi_v.test,
     explain_fvv_v.test, explain_fvx_v.test, explain_fx_pi.test,
     explain_fx_v.test, explain_ga.test, explain_gf_v.test, explain_gi.test,
     explain_gif_v.test, explain_gk.test, explain_grtpi.test, explain_hb.test,
     explain_hc.test, explain_hc16.test, explain_hc32.test, explain_hc8.test,
     explain_hd.test, explain_hf.test, explain_hl.test, explain_hll.test,
     explain_hv.test, explain_hw.test, explain_i+.test, explain_i2+.test,
     explain_ic.test, explain_ictor_i.test, explain_if_v.test, explain_ig.test,
     explain_ii-c++.test, explain_ii.test, explain_is.test, explain_it.test,
     explain_k.test, explain_kc.test, explain_keywords.test, explain_ki+.test,
     explain_lb.test, explain_lc.test, explain_lc16.test, explain_lc32.test,
     explain_lc8.test, explain_ld-knr.test, explain_ld.test, explain_lf-c.test,
     explain_lf.test, explain_ll-c89.test, explain_ll-knr.test,
     explain_ll.test, explain_lll.test, explain_lv.test, explain_lw.test,
     explain_main_f2c_i.test, explain_main_f_i.test, explain_main_f_s.test,
     explain_main_f_v.test, explain_main_fi_i.test, explain_main_fiapc_hi.test,
     explain_main_fiapc_i.test, explain_main_fiapcc_i.test,
     explain_main_fic_i.test, explain_main_fipc_i.test,
     explain_main_fippc_i.test, explain_main_fippcc_i.test,
     explain_main_fippi_i.test, explain_main_fv_i.test, explain_md.test,
     explain_mf.test, explain_mi.test, explain_n.test, explain_nfi_c.test,
     explain_nfi_v-c++-error.test, explain_nfi_v-c++.test, explain_nfi_v.test,
     explain_ni.test, explain_o_amper2_2rck_b.test,
     explain_o_amper2_rck_b.test, explain_o_amper_2rck_k.test,
     explain_o_amper_eq_i_rk.test, explain_o_amper_eq_rki_rk.test,
     explain_o_amper_i_i.test, explain_o_amper_i_rk.test,
     explain_o_amper_pk.test, explain_o_amper_rcki_k.test,
     explain_o_amper_rk_pk.test, explain_o_arrow_i.test,
     explain_o_arrow_pk.test, explain_o_arrow_star_i_rk.test,
     explain_o_arrow_star_rki_rk.test, explain_o_brackets_2i_i.test,
     explain_o_brackets_i_i.test, explain_o_circ_eq_i_rk.test,
     explain_o_circ_eq_rki_rk.test, explain_o_circ_rcki_k.test,
     explain_o_comma_i_rk.test, explain_o_comma_rcki_k.test,
     explain_o_comma_rki_rk.test, explain_o_delete_a_pv_v.test,
     explain_o_delete_pv_v.test, explain_o_eq2_i_b.test,
     explain_o_eq2_ki_b.test, explain_o_exclam_2i.test,
     explain_o_exclam_b.test, explain_o_exclam_eq_i_b.test,
     explain_o_exclam_eq_ki_b.test, explain_o_exclam_rck_b.test,
     explain_o_greater2_eq_i_rk.test, explain_o_greater2_eq_rki_rk.test,
     explain_o_greater2_i_k.test, explain_o_greater2_i_rk.test,
     explain_o_greater2_rcki_k.test, explain_o_greater2_rki_rk.test,
     explain_o_greater_eq_rcki_b.test, explain_o_greater_rcki_b.test,
     explain_o_less2_eq_i_rk.test, explain_o_less2_eq_rki_rk.test,
     explain_o_less2_i_k.test, explain_o_less2_i_rk.test,
     explain_o_less2_rcki_k.test, explain_o_less2_rki_rk.test,
     explain_o_less_eq_rcki_b.test, explain_o_less_rcki_b.test,
     explain_o_minus2_d_rk.test, explain_o_minus2_rkd_rk.test,
     explain_o_minus2_rki_rk.test, explain_o_minus_2rck_k.test,
     explain_o_minus_eq_i_rk.test, explain_o_minus_eq_rki_rk.test,
     explain_o_minus_i_k.test, explain_o_minus_ie_i.test,
     explain_o_minus_rcki_k.test, explain_o_new_a_z_pv.test,
     explain_o_new_z_pv.test, explain_o_new_z_z.test,
     explain_o_oexclam_k_b.test, explain_o_parens_2i_v.test,
     explain_o_parens_3i_v.test, explain_o_parens_i_v.test,
     explain_o_parens_v.test, explain_o_percent_2rck_k.test,
     explain_o_percent_eq_i_rk.test, explain_o_percent_eq_rki_rk.test,
     explain_o_percent_i_k.test, explain_o_percent_rcki_k.test,
     explain_o_pipe2_2rck_b.test, explain_o_pipe2_rck_b.test,
     explain_o_pipe_2rck_k.test, explain_o_pipe_eq_i_rk.test,
     explain_o_pipe_eq_rki_rk.test, explain_o_pipe_i_rk.test,
     explain_o_plus2_d_rk.test, explain_o_plus2_rkd_rk.test,
     explain_o_plus2_rki_rk.test, explain_o_plus_2rck_k.test,
     explain_o_plus_eq_i_rk.test, explain_o_plus_eq_rki_rk.test,
     explain_o_plus_i_k.test, explain_o_plus_ie_i.test,
     explain_o_plus_rcki_k.test, explain_o_qmark_colon_k2i_i.test,
     explain_o_slash_2rck_k.test, explain_o_slash_eq_i_rk.test,
     explain_o_slash_eq_rki_rk.test, explain_o_slash_rcki_k.test,
     explain_o_star_2rck_k.test, explain_o_star_eq_i_rk.test,
     explain_o_star_eq_rki_rk.test, explain_o_star_i_rk.test,
     explain_o_star_rck_k.test, explain_o_star_rcki_k.test,
     explain_o_star_rk.test, explain_o_tilde_k.test,
     explain_o_tilde_rck_k.test, explain_oc_udc_i.test, explain_oi.test,
     explain_oo_amper_rk_pk.test, explain_oo_minus2_i_rk.test,
     explain_oo_minus_rk_rk.test, explain_oo_plus2_i_rk.test,
     explain_oo_plus_rk_rk.test, explain_oo_star_rk_rk.test, explain_oyf.test,
     explain_pa3a5i.test, explain_pa3cpa5i.test, explain_pa3pa5i.test,
     explain_pa9i.test, explain_pai-01.test, explain_pai-02.test,
     explain_pbv_pi.test, explain_pcpi.test, explain_pfv_pi.test,
     explain_pi.test, explain_pmf_i.test, explain_pmf_pc.test,
     explain_pmfii_pk.test, explain_pmgi.test, explain_pmi-c.test,
     explain_pmi.test, explain_pmri.test, explain_ppi.test, explain_pri.test,
     explain_prri.test, explain_pv-knr.test, explain_ra3i.test,
     explain_reinterpret_cast_pv-c.test, explain_reinterpret_cast_pv.test,
     explain_rf_v-c++03.test, explain_rf_v.test, explain_rgi.test,
     explain_ri-c.test, explain_ri.test, explain_ro_amper_rk_pk.test,
     explain_ro_exclam_k_b.test, explain_ro_minus2_i_rk.test,
     explain_ro_minus_rk_rk.test, explain_ro_plus2_i_rk.test,
     explain_ro_plus_rk_rk.test, explain_ro_star_rk_rk.test,
     explain_rrf_v-c++03.test, explain_rrf_v.test,
     explain_rro_amper_rk_pk.test, explain_rro_exclam_k_b.test,
     explain_rro_minus2_i_rk.test, explain_rro_minus_rk_rk.test,
     explain_rro_plus2_i_rk.test, explain_rro_plus_rk_rk.test,
     explain_rro_star_rk_rk.test, explain_rtf_v-error.test,
     explain_rtpi-c++-error.test, explain_rtpi.test, explain_rv.test,
     explain_sa2i.test, explain_sb.test, explain_sc-knr.test, explain_sc.test,
     explain_sc16.test, explain_sc32.test, explain_sc8.test,
     explain_scf_v.test, explain_sf_v.test, explain_si-knr.test,
     explain_si.test, explain_sl-knr.test, explain_smi.test,
     explain_so_delete_pv_v.test, explain_so_new_z_pv.test, explain_srf_v.test,
     explain_srrf_v.test, explain_static_cast_i+.test,
     explain_static_cast_i-c.test, explain_static_cast_i.test, explain_sv.test,
     explain_sw.test, explain_sxi.test, explain_tci32.test,
     explain_tf_v-c++17.test, explain_tf_v.test, explain_ti.test,
     explain_tii32.test, explain_tpfc_i.test, explain_trigraphs_a9i.test,
     explain_trigraphs_nfi_v-c++.test, explain_trigraphs_o_circ_eq_i_rk.test,
     explain_trigraphs_o_circ_rcki_k.test,
     explain_trigraphs_o_pipe2_2rck_b.test,
     explain_trigraphs_o_pipe_2rck_k.test,
     explain_trigraphs_o_pipe_eq_i_rk.test, explain_trigraphs_o_tilde_k.test,
     explain_tulz.test, explain_type_i.test, explain_ub.test, explain_uc.test,
     explain_uc16.test, explain_uc32.test, explain_uc8.test, explain_ud.test,
     explain_udc_a4i.test, explain_udc_i.test, explain_udc_rcc.test,
     explain_udl_2c_i.test, explain_udl_3c_i.test, explain_udl__i.test,
     explain_udl_c16_i.test, explain_udl_c32_i.test, explain_udl_c8_i.test,
     explain_udl_c_i-c.test, explain_udl_c_i.test, explain_udl_ld_i.test,
     explain_udl_pcc16ul_i.test, explain_udl_pcc16z_i.test,
     explain_udl_pcc32ul_i.test, explain_udl_pcc32z_i.test,
     explain_udl_pcc8ul_i.test, explain_udl_pcc8z_i.test,
     explain_udl_pcc_i.test, explain_udl_pccul_i.test, explain_udl_pccz_i.test,
     explain_udl_pccz_ul.test, explain_udl_pcwul_i.test,
     explain_udl_pcwz_i.test, explain_udl_piul_i.test, explain_udl_ul_i.test,
     explain_udl_ull_i.test, explain_udl_w_i.test, explain_uf.test,
     explain_uf_v.test, explain_ui.test, explain_ull.test,
     explain_unknown_attribute.test, explain_using_a3i.test,
     explain_using_pfi_v-c.test, explain_using_pfi_v.test, explain_uv.test,
     explain_uw.test, explain_v+f_v.test, explain_v.test,
     explain_vcompl_dtor.test, explain_vcpi.test, explain_vdtor.test,
     explain_vf_v-c.test, explain_vf_v.test, explain_vi-knr.test,
     explain_vo_amper_rk_pk.test, explain_vo_exclam_k_b.test,
     explain_vo_minus2_i_rk.test, explain_vo_minus_rk_rk.test,
     explain_vo_plus2_i_rk.test, explain_vo_plus_rk_rk.test,
     explain_vo_star_rk_rk.test, explain_voyf-c.test, explain_voyf.test,
     explain_vpi.test, explain_w-c89.test, explain_w.test, explain_xctor.test,
     explain_xf_v.test, explain_xff_v.test, explain_xi-c.test, explain_xi.test,
     explain_xtf_v.test, explain_yf.test, explain_yo_amper_rk_pk.test,
     explain_yo_exclam_k_b.test, explain_yo_minus2_i_rk.test,
     explain_yo_minus_rk_rk.test, explain_yo_plus2_i_rk.test,
     explain_yo_plus_rk_rk.test, explain_yo_star_rk_rk.test, explain_z.test,
     explain_zd.test, explain_zf.test, explain_zz.test, file-cast_i.test,
     file-cast_x.test, file-declare_i.test, file-declare_x.test,
     file-explain_i.test, file-explain_x.test, help-c++.test, help-c.test,
     help_command-c++.test, help_command-c.test, help_commands-c++.test,
     help_commands-c.test, help_english-c++.test, help_english-c.test, i.test,
     k_namespace_typedef_i.test, k_typedef_i_explain_i.test,
     namespace_+typedef_i-c++14.test, namespace_+typedef_i.test,
     namespace_c_typedef_i.test, namespace_k_typedef_i.test,
     namespace_n_typedef_i.test, namespace_namespace_typedef_i-c++14.test,
     namespace_namespace_typedef_i.test, namespace_typedef_i.test,
     namespace_using_i.test, reinterpret_cast_+pv.test,
     reinterpret_cast_pv-c.test, reinterpret_cast_pv.test, retypedef-01.test,
     set.test, set_-e-a--st-.test, set_bison-debug.test, set_c++.test,
     set_c++03.test, set_c++11.test, set_c++14.test, set_c++17.test,
     set_c++20.test, set_c++98.test, set_c.test, set_c11.test, set_c18.test,
     set_c89.test, set_c95.test, set_c99.test, set_cknr.test, set_debug.test,
     set_digraphs.test, set_ea.test, set_east-const.test, set_east.test,
     set_eastconst.test, set_explain-by-default.test, set_explain.test,
     set_knr.test, set_knrc.test, set_nobison-debug.test, set_nodebug.test,
     set_noexplain-by-default.test, set_noexplain.test, set_nographs.test,
     set_noprompt.test, set_nosemicolon.test, set_options.test,
     set_prompt.test, set_semicolon.test, set_trigraphs.test, show_all.test,
     show_all_typedef.test, show_foo.test, show_int8_t.test,
     show_int8_t_typedef.test, show_predefined.test,
     show_predefined_typedef.test, show_user.test, show_user_typedef.test,
     static_cast_+i.test, static_cast_i-c.test, static_cast_i.test,
     typedef_ai.test, typedef_c_int_least32_t.test, typedef_ei.test,
     typedef_fi_v_show_f.test, typedef_gi.test, typedef_i+.test,
     typedef_i.test, typedef_i_declare_i.test, typedef_i_explain_i.test,
     typedef_i_int_least32_t.test, typedef_si.test, typedef_ti.test,
     typedef_tki.test, using_ai.test, using_c_int_least32_t.test,
     using_ei.test, using_fi_v_show_f.test, using_gi.test, using_i-c.test,
     using_i.test, using_i_declare_i.test, using_i_explain_i.test,
     using_i_int_least32_t.test, using_si.test: Replaced /dev/null for no conf
     with the empty string.

2020-07-08  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.h: Sorted.
   * c_typedef.h: Reordered.
   * c_type.h: Sorted functions.
   * c_ast_util.h, errors.c, parser.y, types.h: Eliminated c_check.
   * parser.y: s/C_AST_CHECK()/C_AST_CHECK_DECL()/

2020-07-07  Paul J. Lucas <paul@lucasmail.org>

   * c_keyword.c: Alternative tokens are C89 and later only.
   * c_operator.c: Whitespace.
   * c_operator.c, c_operator.h, gibberish.c, gibberish.h: Moved alt_token_c()
     into c_operator.c.
   * gibberish.c: Now calling c_oper_token_c().
   * c_operator.h: The operator code is only for C++.
   * c_operator.h: Added "only".

2020-07-06  Paul J. Lucas <paul@lucasmail.org>

   * man/man1/Makefile.am: Added cdecl.ps man target.
   * cdecl.1: Fixed formatting.
   * test/Makefile.am, set_bison-debug.test, set_nobison-debug.test: Fixed
     bison-debug tests.
   * c_type.c, test/Makefile.am, explain_ci-ec.out, explain_ci-ec.test: East
     const is now ignored when explaining gibberish.
   * options.c: Added comment.

2020-07-04  Paul J. Lucas <paul@lucasmail.org>

   * errors.c: Removed unnecessary call to c_ast_untypedef().

2020-07-03  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c, gibberish.h, parser.y: Simplified internal gibberish API.
   * lexer.l: s/e_literal/literal/
   * c_keyword.h, lexer.l: /y_token/yy_token_id/

2020-07-02  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: s/typedefs.h/types.h/
   * c_ast.h, c_ast_util.c, c_kind.h, errors.c, gibberish.c:
     s/K_MASK_PARENT/K_ANY_PARENT/; s/K_MASK_FUNCTION_LIKE/K_ANY_FUNCTION_LIKE/
   * c_ast_util.c, c_ast_util.h, errors.c, gibberish.c: Renamed some functions
     with _any.
   * src/Makefile.am, c_ast.h, c_ast_util.h, c_keyword.h, c_kind.h, c_lang.h,
     c_operator.h, c_sname.h, c_type.h, c_typedef.h, cdecl.h, english.h,
     gibberish.h, parser.y, print.h: s/typedefs.h/types.h/

2020-07-01  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_type.h, errors.c, parser.y: s/T_CLASS_STRUCT_UNION/T_ANY_CLASS/
   * configure.ac: Updated version to 7.4.1; updated NEWS.
   * c_ast_util.c, c_ast_util.h, c_type.c, c_type.h, test/Makefile.am,
     explain_main_f_s.out, explain_main_f_s.test: Now accepts "signed main()"
     as valid.
   * options.c: Fixed check_mutually_exclusive() for new -B and -F options.

2020-06-30  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Updated versio and NEWS.
   * configure.ac, cdecl.1, src/Makefile.am, autocomplete.c, c_typedef.c,
     options.c, options.h, parser.y, print.c, set.c, test/Makefile.am: Added
     ability to enable Flex debugging; renamed Bison debugging.
   * set.c, test/Makefile.am, set_-e-a--st-.out, set_digraphs.out, set_ea.out,
     set_east-const.out, set_east.out, set_eastconst.out, set_nosemicolon.out,
     set_trigraphs.out, set_-e-a--st-.test, set_digraphs.test, set_ea.test,
     set_east-const.test, set_east.test, set_eastconst.test,
     set_nosemicolon.test, set_trigraphs.test: Fixed parsing of "set" options.
   * c_type.c: Added missing comment.
   * c_type.c: Don't need C_WARN_UNUSED_RESULT here.
   * c_type.c: Moved comment.
   * c_type.c: Added comment.
   * c_keyword.c: Re-recognizing "register" in C++17 and later.
   * errors.c: Removed unneeded declaration.

2020-06-29  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, getopt.c, unistd.in.h, unistd_h.m4: Updated Gnulib.
   * c_type.h, errors.c: Added T_FUNC_LIKE; more documentation.
   * c_ast_util.h: Fixed @param.

2020-06-28  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c: Added comment.
   * c_ast_util.c, c_ast_util.h, errors.c, test/Makefile.am,
     explain_main_fiapc_hi.test: Reworked the c_ast_is_*() functions; fixed so
     main() can't return short int.

2020-06-27  Paul J. Lucas <paul@lucasmail.org>

   * errors.c, test/Makefile.am, explain_main_f_i.out,
     explain_main_fiapc_i.out, explain_main_fiapcc_i.out,
     explain_main_fippc_i.out, explain_main_fippcc_i.out,
     explain_main_fv_i.out, explain_main_f2c_i.test, explain_main_f_i.test,
     explain_main_f_v.test, explain_main_fi_i.test, explain_main_fiapc_i.test,
     explain_main_fiapcc_i.test, explain_main_fic_i.test,
     explain_main_fipc_i.test, explain_main_fippc_i.test,
     explain_main_fippcc_i.test, explain_main_fippi_i.test,
     explain_main_fv_i.test: Now checking main()'s signature.
   * parser.y: Added comment for Y_DELETE.
   * parser.y: Y_NEW is oper_id.
   * configure.ac: Changed version to 7.3.

2020-06-26  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, debug.c, parser.y: Added "loc" member to struct c_align.
   * parser.y: Removed unnecessary c_ast_t argument from typename_ok().
   * parser.y, cdecl--debug.out, cdecl-d.out: Now printing final AST for
     "explain" in more cases.

2020-06-25  Paul J. Lucas <paul@lucasmail.org>

   * errors.c: Added more C_WARN_UNUSED_RESULT.
   * cdecl.1, c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all.out,
     show_all_typedef.out, show_predefined.out, show_predefined_typedef.out:
     Added types atomic_flag, double_t, fenv_t, fexcept_t, float_t, jmp_buf,
     memory_order, va_list, wctrans_t, and wctype_t.
   * configure.ac, parser.y, test/Makefile.am, explain_fpa5d_v.out,
     explain_fpa5d_v.test: Fixed explaining pointer-to-array function
     arguments.
   * parser.y: Added comment.

2020-06-17  Paul J. Lucas <paul@lucasmail.org>

   * help.c, help_english-c.out: Made "length" optional in help.
   * c_typedef.c: Reformatting.
   * cdecl.1: Added "namespace" to English.
   * cdecl.1: Added mention of user-defined literal.
   * c_ast.h: Added comment.

2020-06-15  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.h: Fixed @addtogroup ast-functions-group.
   * pjl_config.h: Added defensive #error about config.h.
   * pjl_config.h: Added comment.

2020-06-14  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Renamed show type functions and struct.
   * english.c, english.h, gibberish.c, gibberish.h, parser.y: Moved c_typdef
     English- and gibberish-printing code to english.c and gibberish.c,
     respectively.
   * c_ast.h, c_kind.h, c_lang.h, c_operator.h, c_sname.h, c_type.h, slist.h,
     util.h: Put C_WARN_UNUSED_RESULT last.
   * c_operator.c, c_operator.h, debug.c, english.c, errors.c, gibberish.c,
     parser.y: Renaming.
   * parser.y: Put DUMP_END() in the right place for several rules.

2020-06-13  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, cdecl.1, c_operator.c, c_operator.h, c_type.h, c_typedef.c,
     errors.c, parser.y, test/Makefile.am, cdecl--debug.out, cdecl-d.out,
     declare_+o_delete_a_pv_v.out, declare_+o_delete_pv_v.out,
     declare_+o_new_a_z_pv.out, declare_+o_new_z_pv.out,
     declare_o_delete_a_pv_v.out, declare_o_delete_pv_v.out,
     declare_o_new_a_z_pv.out, declare_o_new_z_pv.out,
     declare_so_delete_pv_v.out, explain_+o_delete_a_pv_v.out,
     explain_+o_delete_pv_v.out, explain_+o_new_a_z_pv.out,
     explain_+o_new_z_pv.out, explain_o_delete_a_pv_v.out,
     explain_o_delete_pv_v.out, explain_o_new_a_z_pv.out,
     explain_o_new_z_pv.out, explain_so_delete_pv_v.out,
     explain_so_new_z_pv.out, show_all.out, show_all_typedef.out,
     show_predefined.out, show_predefined_typedef.out,
     declare_+o_delete_a_pv_v.test, declare_+o_delete_pv_v.test,
     declare_+o_new_a_z_pv.test, declare_+o_new_z_pv.test,
     declare_o_delete_a_pv_v.test, declare_o_delete_pv_v.test,
     declare_o_new_a_z_pv.test, declare_o_new_z_pv.test,
     declare_so_delete_pv_v.test, explain_+o_delete_a_pv_v.test,
     explain_+o_delete_pv_v.test, explain_+o_new_a_z_pv.test,
     explain_+o_new_z_pv.test, explain_o_delete_a_pv_v.test,
     explain_o_delete_pv_v.test, explain_o_new_a_z_pv.test,
     explain_o_new_z_pv.test, explain_o_new_z_z.test,
     explain_so_delete_pv_v.test, explain_so_new_z_pv.test: Can now
     explain/declare overloaded operator new/delete.
   * errors.c: print_error() clean-up.
   * errors.c: print_error() clean-up; now printing "class" or "structure" when
     constructor/destructor names do not match.
   * parser.y: Moved DUMP_AST( "decl_english_ast", $5.ast ) before
     C_AST_CHECK() to complete dump before check.
   * errors.c: print_hint() clean-up.
   * errors.c: Simplified c_ast_check_errors().
   * errors.c: Removed c_type_name_error() when the type can be not a simple
     type.
   * errors.c: Correctly reset arg_ast.
   * c_type.h, errors.c: Explicitly specifying "int" is now accepted, part 2.
   * errors.c: Explicitly specifying "int" is now accepted.
   * errors.c, test/Makefile.am, explain_scf_v.test: Extern or static functions
     can not be const.

2020-06-12  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: Alternative tokens now take precedence over di/trigraph
     tokens.
   * parser.y: Added missing dump of oper_decl_english_ast for overloaded
     operator declaration.
   * print.c, print.h: s/print_error()/print_error_impl()/ and added
     print_error() macro that passes file & line information for debugging.
   * parser.y: Fixed dump of name_english_ast.
   * c_ast.h, parser.y: Now support scoped English types ("declare x as Int of
     struct S").
   * c_ast.h: Fixed c_ast_sname_append_sname() declaration.

2020-06-11  Paul J. Lucas <paul@lucasmail.org>

   * util.c: Added assert().
   * parser.y: Added debug output to "show" command.

2020-06-10  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c: Added comment; s/cin/fconf/
   * cdecl.c: Renaming.
   * c_sname.h, c_type.c, c_type.h: Fixed a latent bug with the c_type_id_t
     stored in a c_sname on 32-bit platforms.
   * c_kind.h: Added missing "const".
   * parser.y: Moved special-case namespace code for namespaces out of
     print_type_as_typedef() and into define_english.

2020-06-09  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, english.c, errors.c, gibberish.c: Made c_ast_visit() be
     C_NOWARN_UNUSED_RESULT; replaced some C_FALLTHROUGH with break.
   * c_typedef.h, parser.y: Made c_typedef_visit() be C_NOWARN_UNUSED_RESULT.

2020-06-08  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Added missing L__THREAD_LOCAL.
   * c_keyword.c: Removed L_ELLIPSIS from keywords table: it's not a keyword.

2020-06-07  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Upped version to 7.1.1.
   * parser.y: Removed special-case _Noreturn code.
   * c_keyword.c, parser.y: Added missing static_assert for C++11.
   * c_keyword.c: Undid removal of throw in C++20: it's still a keyword.
   * c_keyword.c: Made _Alignas, _Alignof, _Generic, _Noreturn, and
     _Static_assert be C only.

2020-06-06  Paul J. Lucas <paul@lucasmail.org>

   * errors.c: Using LANG_C_MIN() more.

2020-06-05  Paul J. Lucas <paul@lucasmail.org>

   * c_keyword.c, lexer.l, parser.y: s/Y_ATOMIC*/Y__ATOMIC*/

2020-06-01  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c, literals.h: Added comments.
   * autocomplete.c: Now using c_lang_lit_t rather than ac_keyword_t.
   * autocomplete.c: Moved declaration of rl_completion_func_t.

2020-05-28  Paul J. Lucas <paul@lucasmail.org>

   * set.c: Removed uncessary #includes.

2020-05-27  Paul J. Lucas <paul@lucasmail.org>

   * Doxyfile: Disabled LaTeX generation.

2020-05-26  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, unistd.in.h, getdelim.m4, unistd_h.m4: Updated GnuLib.
   * configure.ac, cdecl.1, autocomplete.c, c_keyword.c, c_lang.c, c_lang.h,
     c_type.c, lexer.l, literals.c, literals.h, parser.y, typedefs.h,
     test/Makefile.am, declare_b-c++.out, declare_b.out, declare_ci-knr.out,
     declare_grtpi.out, declare_rtf_v.out, declare_vi-knr.out, explain_b.out,
     explain_keywords.out, show_all.out, show_all_typedef.out,
     show_predefined.out, show_predefined_typedef.out, declare_b-c++.test,
     declare_ci-knr.test, declare_vi-knr.test, explain_grtpi.test: Added more
     GNU extensions. Split bool and _Bool. "register" is now max C++14.
     "restrict" is now min C99.

2020-05-25  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.c, c_lang.h, typedefs.h: Moved struct c_lang to c_lang.c.
   * c_lang.c, c_lang.h, options.c: Made C_LANG static; added c_lang_names().

2020-05-24  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, parser.y, typedefs.h: s/c_block_t/c_apple_block_t/;
     s/block/block_ast/

2020-05-22  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, show_all.out, show_all_typedef.out, show_int8_t.out,
     show_int8_t_typedef.out, show_predefined.out, show_predefined_typedef.out:
     The types int8_t, int_fast8_t, int_least8_t, and __int8 are now typedef'd
     from signed char.

2020-05-15  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Updated version to 7.0.
   * AUTHORS: Added mention of "east const" and typename.

2020-05-12  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, c_ast.c, c_ast_util.c, debug.c, english.c, errors.c,
     gibberish.c, help.c, lexer.l, pjl_config.h: Fixed fallthrough warning.
   * limits.in.h, stdio.in.h, stdlib.in.h, string.in.h, warn-on-use.h,
     gnulib-common.m4, wint_t.m4: Updated Gnulib.
   * parser.y, print.c, util.h: s/PRINT_ERR/PRINTF_ERR/
   * c_type.c, errors.c: Removed a few uses of FREE_STRDUP_LATER.
   * c_operator.c, c_type.h, english.c, errors.c:
     s/T_MEMBER_ONLY/T_MEMBER_FUNC_ONLY/;
     s/T_NON_MEMBER_ONLY/T_NONMEMBER_FUNC_ONLY/
   * set.c: s/*lang/*lang_id/
   * c_ast.c, c_ast.h, debug.c, cdecl--debug.out, cdecl-d.out: s/id/unique_id/
   * c_ast.c, c_ast.h, c_ast_util.c, debug.c, errors.c, gibberish.c:
     s/parent/parent_ast/
   * c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h, c_kind.c, c_kind.h,
     c_operator.c, debug.c, english.c, errors.c, gibberish.c, parser.y:
     s/kind/kind_id/
   * c_operator.c, c_operator.h: Replaced UNEXPECTED_INT_VALUE with assert();
     #include clean-up.

2020-05-11  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Removed special-case code for constructors and user-defined
     conversion operators.
   * parser.y: s/!/== NULL/

2020-05-06  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Now always free'ing sname.
   * parser.y: Added assert().

2020-05-05  Paul J. Lucas <paul@lucasmail.org>

   * util.h: Added explicit cast.
   * cdecl.c, lexer.l, util.h: Consolidated SKIP_WS().
   * red_black.c: Added "const".
   * options.c: Added missing options for check_mutually_exclusive( "v", "..."
     );
   * gibberish.c: Simplification.
   * errors.c: Added missing "inline".

2020-05-03  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l, parser.y: Got rid of Y_HYPHEN_NAME.
   * lexer.l, literals.c, literals.h: Added L_USER_DEF.
   * c_type.c, lexer.l, literals.c, literals.h: Literal clean-up.
   * c_keyword.c: Blank line.

2020-05-02  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, c_ast_util.c, c_kind.h, errors.c, gibberish.c: Changed K_PARENT
     and K_MASK_FUNCTION_LIKE be proper bitmasks.
   * cdecl.1, autocomplete.c, c_keyword.c, c_type.c, c_type.h, errors.c,
     lexer.l, literals.c, literals.h, parser.y, test/Makefile.am,
     explain_a_nua_k-1.out, explain_a_nua_k-2.out, declare_a_nua_f.test,
     explain_a_nua_f.test, explain_a_nua_k-1.test, explain_a_nua_k-2.test:
     Added [[no_unique_address]].

2020-05-01  Paul J. Lucas <paul@lucasmail.org>

   * literals.c, literals.h: Not needed.
   * autocomplete.c: Moved alt-tokens to where it belongs.

2020-04-30  Paul J. Lucas <paul@lucasmail.org>

   * color.c: Added C_WARN_UNUSED_RESULT.
   * color.c: Reformatting.
   * cdecl.c: Added C_WARN_UNUSED_RESULT.
   * autocomplete.c: Added missing noeast-const, noexplain-by-default, and
     noexplicit-int.
   * autocomplete.c: Now using LANG_C_MIN.
   * autocomplete.c, c_keyword.c, c_lang.h, errors.c, test/Makefile.am,
     explain_tf_v-c++17.out, explain_tf_v-c++17.test, explain_tf_v.test:
     throw() deprecated/removed.

2020-04-29  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, autocomplete.c, c_type.c, gibberish.c, help.c, options.c,
     options.h, set.c, test/Makefile.am, declare_ci-ec.out, declare_ck-ec.out,
     declare_ck.out, declare_ck2-ec.out, declare_ck2.out, declare_cz-ec.out,
     declare_pci-ec.out, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c.out, help_commands-c++.out, help_commands-c.out, set.out,
     set_options.out, declare_ci-ec.test, declare_ck-ec.test, declare_ck.test,
     declare_ck2-ec.test, declare_ck2.test, declare_cz-ec.test,
     declare_pci-ec.test: Added support for east-const.
   * set.c: s/set_opt_fn_t/set_option_fn_t/
   * set.c: Improved set option matching.
   * autocomplete.c, c_ast.c, c_ast.h, c_ast_util.c, c_keyword.c, c_kind.c,
     c_kind.h, c_type.c, c_type.h, debug.c, english.c, errors.c, gibberish.c,
     lexer.l, literals.c, literals.h, parser.y, typedefs.h: Renamed all
     extension symbols to include either APPLE or GNU.

2020-04-28  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, parser.y, test/Makefile.am, typedef_tki.out,
     typedef_ti.test, typedef_tki.test: Now allowing use of "typename".

2020-04-27  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Fixed unknown type crash.
   * english.c, test/Makefile.am, k_typedef_i_explain_i.out,
     k_typedef_i_explain_i.test: Print type of scope for nested types.

2020-04-26  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, c_type.c, parser.y, test/Makefile.am, declare_ovc_udc_i.out,
     explain_oc_udc_i.out, declare_ovc_udc_i.test, explain_oc_udc_i.test: Can
     now declare const/volatile user-defined conversion operators.
   * parser.y: Change from "switch" to "if".
   * parser.y: Moved type_pop() out of explain_type_decl().
   * parser.y: Made type_pop() be C_NOWARN_UNUSED_RESULT.

2020-04-25  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: s/SLIST_TEMP_INIT_VAR/SLIST_VAR_INIT/, part 2.
   * c_typedef.c, red_black.c, red_black.h: Reverted red-black tree NOT to have
     rb_data_free_t function in rb_tree.
   * slist.h: s/SLIST_TEMP_INIT_VAR/SLIST_VAR_INIT/

2020-04-24  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_keyword.c, c_type.c, literals.c, literals.h: Added support for
     GNU C's __thread.
   * autocomplete.c, c_keyword.h, c_lang.h, c_operator.h, c_type.c,
     c_typedef.c, cdecl.c, help.c, lexer.l: Undid pointless *const.
   * c_type.c: Changed c_type struct to have language-specific literals.
   * cdecl.1: Fixed formatting of "options".
   * cdecl.1, autocomplete.c, c_keyword.c, c_keyword.h, c_lang.h, c_operator.h,
     c_type.c, c_type.h, cdecl.c, errors.c, help.c, lexer.l, literals.c,
     literals.h, parser.y, test/Makefile.am, cdecl--debug.out, cdecl-d.out,
     declare_ga.out, declare_grtpi.out, declare_rtf_v.out,
     explain_cast_rtpi.out, explain_ga.out, explain_gif_v.out,
     explain_grtpi.out, explain_rtpi.out, explain_udl_pccz_ul.out,
     not_in_Makefile.sh, declare_ga.test, declare_grtpi.test,
     declare_rtf_v-c.test, declare_rtf_v.test, explain_cast_rtpi.test,
     explain_ga.test, explain_gif_v.test, explain_grtpi.test,
     explain_rtpi-c++-error.test, explain_rtpi.test: Added support for GNU C's
     __inline__ and __restrict__.

2020-04-20  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all.out,
     show_all_typedef.out, show_predefined.out, show_predefined_typedef.out:
     Added GNU C types.

2020-04-19  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added caveat about __int8, etc., types.
   * c_typedef.c, show_all.out, show_all_typedef.out, show_predefined.out,
     show_predefined_typedef.out: Changed __int64 to long long.
   * c_typedef.c: Added comment about Windows __int8, etc., types.

2020-04-18  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Updated.
   * cdecl.1, c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all.out,
     show_all_typedef.out, show_predefined.out, show_predefined_typedef.out:
     Added WIN32 types.
   * cdecl.1: Turned off hyphenation and justification for predefined types.
   * cdecl.1: Reworked predefined types order.
   * parser.y: Fixed a bug where redefining one typedef'd type as another would
     crash, part 2.
   * parser.y, test/Makefile.am, retypedef-01.out, retypedef-01.test: Fixed a
     bug where redefining one typedef'd type as another would crash.

2020-04-15  Paul J. Lucas <paul@lucasmail.org>

   * options.c, options.h, set.c: Made opt_explicit_int local to options.c.
   * cdecl.1, help.c, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c.out, help_commands-c++.out, help_commands-c.out: Updaded
     help and man page to reflect reality that the "show" command can take no
     argument.

2020-04-14  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c: Renaming.
   * c_type.c, test/Makefile.am, declare_+o_eq_rck_rk=default-c++03.test,
     declare_+o_eq_rck_rk=delete-c++03.test: "default" and "delete" are now
     allowed only in C++11 or later.
   * c_type.c, errors.c: Simplified "register" handling.
   * c_type.c: s/LANG_MIN(CPP_11)/LANG_MIN(CPP_11)/ for T_REFERENCE.
   * c_kind.h, c_type.h: Renaming.
   * c_kind.h: Added K_USER_DEF_CONVERSION to comment.
   * c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h, c_typedef.c, c_typedef.h,
     typedefs.h: Renamed some types.

2020-04-13  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c: Added C_WARN_UNUSED_RESULT.
   * c_ast.c: Being explicit about pointer-to-function call.
   * c_typedef.c: Being explicit about pointer-to-function call.
   * getopt-pfx-core.h: Updated Gnulib.
   * cdecl.1, c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all.out,
     show_all_typedef.out, show_predefined.out, show_predefined_typedef.out:
     Added std::thread and std::jthread to predefined types.

2020-04-12  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_keyword.c, c_type.c, c_type.h, lexer.l, literals.c, literals.h,
     parser.y, cdecl--debug.out, cdecl-d.out: Added GNU C's __auto_type
     extension.
   * configure.ac, c_type.c: Fixed "long long" type: no longer allowed in C89.
   * c_lang.h, errors.c, parser.y: Added c_lang_is_c() and C_LANG_IS_C().

2020-04-11  Paul J. Lucas <paul@lucasmail.org>

   * literals.c: Removed blank lines.

2020-04-05  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: More asserts.
   * parser.y: Added (int).
   * parser.y: s/bison/Bison/
   * lexer.l: s/flex/Flex/
   * lexer.l: Renaming.

2020-04-02  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, red_black.c, red_black.h: Changed red-black tree to include
     data_free_fn.

2020-04-01  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added types from pthread.h and threads.h (C11).
   * c_typedef.c: Whitespace change.
   * c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all.out,
     show_all_typedef.out, show_predefined.out, show_predefined_typedef.out:
     Added types from pthread.h and threads.h (C11).
   * autocomplete.c:
     s/HAVE_DECL_RL_COMPLETION_FUNC_T/HAVE_RL_COMPLETION_FUNC_T/
   * configure.ac: Whitespace change.
   * configure.ac, pjl_compile.m4, pjl_config.h: Now using PJL_COMPILE macro.
   * configure.ac, c_ast_util.c, c_sname.h, cdecl.c, english.c, errors.c,
     options.c, parser.y, pjl_config.h: Added C_IGNORE_RV.

2020-03-25  Paul J. Lucas <paul@lucasmail.org>

   * Doxyfile, configure.ac, ax_c___attribute__.m4, autocomplete.c, c_ast.c,
     c_ast.h, c_ast_util.c, c_ast_util.h, c_keyword.h, c_kind.c, c_kind.h,
     c_lang.c, c_lang.h, c_operator.c, c_operator.h, c_sname.c, c_sname.h,
     c_type.c, c_type.h, c_typedef.c, c_typedef.h, cdecl.c, color.c, color.h,
     english.c, errors.c, gibberish.c, gibberish.h, help.c, lexer.h, lexer.l,
     options.c, options.h, parser.y, pjl_config.h, print.c, print.h, prompt.c,
     red_black.c, red_black.h, slist.c, slist.h, util.c, util.h: Now using some
     gcc attributes.
   * Doxyfile: Changed STRIP_CODE_COMMENTS to NO.
   * autocomplete.c: Removed [no]create from autocompletion -- not sure why it
     was ever added.

2020-02-25  Paul J. Lucas <paul@lucasmail.org>

   * _Noreturn.h, c++defs.h, stdio.in.h, stdlib.in.h, string.in.h, unistd.in.h,
     gnulib-common.m4, stdio_h.m4, stdlib_h.m4, string_h.m4, unistd_h.m4:
     Updated Gnulib.

2020-02-19  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c: Slightly more efficient check.
   * autocomplete.c: Added missing explain-by-default.

2020-02-18  Paul J. Lucas <paul@lucasmail.org>

   * red_black.c: Explicit about calling pointer-to-function.
   * slist.c: Fixed slist_cmp().

2020-01-31  Paul J. Lucas <paul@lucasmail.org>

   * c_operator.h: s/Minumum/Minimum/

2020-01-24  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, cdecl.1, help.c, parser.y, help-c++.out, help-c.out,
     help_command-c++.out, help_command-c.out, help_commands-c++.out,
     help_commands-c.out: Cast now accepts "as" and "to" in addition to "into".

2020-01-23  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, cdecl.c, test/Makefile.am, cdecl-e-const_cast_pi.out,
     ci.out, cdecl-e-const_cast_pi.test, ci.test: Made special-case for const
     and static for explain-by-default.

2020-01-22  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Supressed more warnings for flex-generatwd code.
   * errors.c: "register" is now reserved in C++17 or later.
   * configure.ac, lexer.l, options.c, parser.y, set.c: Added more warnings.

2020-01-21  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c: Removed unnecessary call to c_ast_equiv() because of_ast is
     checked below.
   * configure.ac: Updated version.
   * 00gnulib.m4, gnulib-common.m4, gnulib-comp.m4, zzgnulib.m4: Updated
     GNUlib.

2020-01-17  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Added BEGIN( INITIAL ) to lexer_reset().

2020-01-13  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, cdecl.1, src/Makefile.am, help.c, lexer.l, parser.y, set.c,
     help-c++.out, help-c.out, help_command-c++.out, help_command-c.out,
     help_commands-c++.out, help_commands-c.out: Now allowing set lang=<lang>.

2020-01-09  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Added @param for elaborate_error().

2020-01-07  Paul J. Lucas <paul@lucasmail.org>

   * help.c: Added explicit-int to set options in help.

2020-01-06  Paul J. Lucas <paul@lucasmail.org>

   * Doxyfile, Makefile.am, man/Makefile.am, man/man1/Makefile.am,
     src/Makefile.am, autocomplete.c, c_ast.c, c_ast.h, c_ast_util.c,
     c_ast_util.h, c_keyword.c, c_keyword.h, c_kind.c, c_kind.h, c_lang.c,
     c_lang.h, c_operator.c, c_operator.h, c_sname.c, c_sname.h, c_type.h,
     c_typedef.c, c_typedef.h, cdecl.c, cdecl.h, color.c, color.h, debug.c,
     debug.h, english.c, english.h, errors.c, gibberish.c, gibberish.h, help.c,
     lexer.h, lexer.l, literals.c, literals.h, pjl_config.h, prompt.c,
     prompt.h, red_black.c, red_black.h, slist.c, slist.h, typedefs.h, util.c,
     util.h, run_test.sh: Updated copyright year to 2020.
   * configure.ac, cdecl.1, c_type.c, options.c, options.h, parser.y, print.c,
     print.h, set.c, test/Makefile.am, cdecl-Ii.out, cdecl-Iis.out,
     cdecl-Iiu.out, cdecl-Il.out, cdecl-Ill.out, cdecl-Ilull.out, cdecl-Is.out,
     cdecl-Iu.out, cdecl-Iui.out, cdecl-Iul,ll.out, cdecl-Iul.out,
     cdecl-Iull.out, cdecl-Iulll.out, cdecl-Iulull.out, cdecl-Ius.out, set.out,
     set_options.out, cdecl-Ii.test, cdecl-Iis.test, cdecl-Iiu.test,
     cdecl-Il.test, cdecl-Ill.test, cdecl-Ilull.test, cdecl-Is.test,
     cdecl-Iu.test, cdecl-Iui.test, cdecl-Iul,ll.test, cdecl-Iul.test,
     cdecl-Iull.test, cdecl-Iulll.test, cdecl-Iulull.test, cdecl-Ius.test,
     cdecl-Ix.test: Added --explicit-int/-I and explicit-int set option.
   * lexer.l: Added casts to eliminate warnings with some versions of flex.
   * lib/Makefile.am, _Noreturn.h, arg-nonnull.h, c++defs.h, errno.in.h,
     getdelim.c, getline.c, getopt-cdefs.in.h, getopt-core.h, getopt-ext.h,
     getopt-pfx-core.h, getopt-pfx-ext.h, getopt.c, getopt.in.h, getopt1.c,
     getopt_int.h, gettext.h, limits.in.h, stdarg.in.h, stdbool.in.h,
     stddef.in.h, stdint.in.h, stdio.in.h, stdlib.in.h, string.in.h, strndup.c,
     strnlen.c, strsep.c, sys_types.in.h, sysexits.in.h, unistd.in.h,
     warn-on-use.h, 00gnulib.m4, absolute-header.m4, errno_h.m4, extensions.m4,
     extern-inline.m4, getdelim.m4, getline.m4, getopt.m4, gnulib-cache.m4,
     gnulib-common.m4, gnulib-comp.m4, gnulib-tool.m4, include_next.m4,
     limits-h.m4, multiarch.m4, nocrash.m4, off_t.m4, ssize_t.m4, stdarg.m4,
     stdbool.m4, stddef_h.m4, stdint.m4, stdio_h.m4, stdlib_h.m4, string_h.m4,
     strndup.m4, strnlen.m4, strsep.m4, sys_types_h.m4, sysexits.m4,
     unistd_h.m4, warn-on-use.m4, wchar_t.m4, wint_t.m4: Updated GnuLib.

2020-01-02  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c, c_type.h, explain_cast_ll.out, explain_cast_ull.out,
     explain_cu.out, explain_ll.out, explain_tulz.out,
     explain_udl_pcc16ul_i.out, explain_udl_pcc32ul_i.out,
     explain_udl_pcc8ul_i.out, explain_udl_pccul_i.out,
     explain_udl_pcwul_i.out, explain_udl_ull_i.out, explain_ull.out: Now
     explicit about "int" in English.

2019-12-26  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, set.c: Now ignoring hyphens for set options.

2019-12-20  Paul J. Lucas <paul@lucasmail.org>

   * red_black.c: Made rb_nil static.

2019-12-17  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.h, c_kind.h, c_type.h, color.c, prompt.c, red_black.c,
     red_black.h, slist.h, util.h: Consistent @sa spacing.
   * c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h, c_operator.c, c_operator.h,
     c_type.c, cdecl.c, debug.c, english.c, errors.c, gibberish.c, lexer.l,
     options.c, parser.y, set.c, typedefs.h: More consistent C_ prefix.
   * slist.c: Somewhat clearer.

2019-12-16  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.h, cdecl.h, debug.c, debug.h, parser.y: s/print_kv/kv_debug/
   * c_sname.h: More docs.
   * c_operator.h: More operator docs.
   * util.h: Fixed dox.
   * c_ast.h, errors.c: s/c_ast_found/c_ast_find/
   * c_ast_util.c, c_ast_util.h: Made some AST util functions static.
   * c_ast.h: More @sa in docs.
   * util.c: s/dup/s_dup/ to fix shadow warning.

2019-12-12  Paul J. Lucas <paul@lucasmail.org>

   * set.c, set.out, set_options.out: Sorted printing of "set" options.
   * c_ast_util.c: Reworked loop in c_ast_untypedef().
   * autocomplete.c: s/begin/begun/
   * english.c: Added c_ast_english_func_args().
   * english.c: Moved "comma" declaration close to point of first use.
   * english.c: Removed comment that no longer makes any sense.
   * english.c, gibberish.c: Added assert()s.

2019-12-11  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Updated to 6.6.2.
   * configure.ac: Moved check for libcurses before libreadline since some
     implementations of the latter depend on the former (e.g., on Solaris 11).

2019-12-06  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_type.c, lexer.l, literals.c, literals.h, explain_oi.out: Added
     missing "thread-local".
   * cdecl.1: Added "Equivalent to...."

2019-12-04  Paul J. Lucas <paul@lucasmail.org>

   * util.c, util.h: Added IF_EXIT() macro.

2019-12-03  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: s/type declarations/declarations/
   * _Noreturn.h, stdint.in.h, stdio.in.h, stdlib.in.h, string.in.h,
     unistd.in.h, gnulib-common.m4: Updated GNUlib.

2019-12-02  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Added -Wlogical-op.
   * configure.ac, lexer.l, options.c, parser.y, print.c, slist.c: Added
     -Wconversion warning.
   * configure.ac, cdecl.c, prompt.c: Added more gcc warnings.
   * c_kind.c, c_lang.c, c_operator.c, c_type.c, help.c, lexer.l, util.h: Added
     UNEXPECTED_INT_VALUE() and UNEXPECTED_STR_VALUE().
   * configure.ac: Added -Wimplicit-fallthrough=4.
   * lexer.l: Silence the "redundant redeclaration" warnings for yylex() and
     yywrap().

2019-11-25  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all.out,
     show_all_typedef.out, show_predefined.out, show_predefined_typedef.out:
     Added atomic_char8_t typedef for C++20.
   * Doxyfile: Changed ALPHABETICAL_INDEX = YES.

2019-11-22  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Now insists on flex/bison only when lexer.c/parser.c don't
     exist.
   * help.c: Now using special pointer values.

2019-11-20  Paul J. Lucas <paul@lucasmail.org>

   * print.c: Added #ifdef ENABLE_TERM_SIZE to silence warning when building
     with --disable-term-size.

2019-11-18  Paul J. Lucas <paul@lucasmail.org>

   * errors.c: Split out c_ast_check_func_c() and c_ast_check_func_cpp().
   * errors.c: Fixed "‘ret_ast’ may be used uninitialized in this function"
     warning.

2019-11-11  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c, c_keyword.c, c_operator.c, c_type.c, c_type.h,
     c_typedef.c, color.c, lexer.l, options.c, parser.y, red_black.h, slist.h,
     util.h: Removed @hideinitializer -- not needed.
   * parser.y: Can now explicitly give an "structure definitions are not
     supported" error.

2019-11-09  Paul J. Lucas <paul@lucasmail.org>

   * Doxyfile: Added SORT_GROUP_NAMES = YES.
   * color.h, options.h: Renamed groups.

2019-11-08  Paul J. Lucas <paul@lucasmail.org>

   * color.c, prompt.c, red_black.c, red_black.h, util.h: s/@see/@sa/ for
     consistency.

2019-10-31  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Updated to 6.6.1.
   * set.c: Whitespace fix.
   * c_ast.c: Removed odd DOXYGEN_IGNORE.

2019-10-29  Paul J. Lucas <paul@lucasmail.org>

   * pjl_config.h: s/Mac OS X/MacOS/

2019-10-25  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am: Added "rm -f" for c++decl symlink.

2019-10-23  Paul J. Lucas <paul@lucasmail.org>

   * options.c: More explicit about check.
   * cdecl.1, autocomplete.c, cdecl.c, cdecl.h, help.c, lexer.l, options.c,
     options.h, parser.y, print.c, set.c, test/Makefile.am, help-c++.out,
     help-c.out, help_command-c++.out, help_command-c.out,
     help_commands-c++.out, help_commands-c.out, i.out, set.out,
     set_explain-by-default.out, set_explain.out, set_noexplain-by-default.out,
     set_noexplain.out, set_options.out, i.test, set_explain-by-default.test,
     set_explain.test, set_noexplain-by-default.test, set_noexplain.test: Added
     --explain/-e and explain-by-default option: when enabled, any input line
     that doesn't start with a command is assumed to be "explain."

2019-10-21  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, set.c: May now use unambiguous option name abbreviations.

2019-10-18  Paul J. Lucas <paul@lucasmail.org>

   * options.c: Changed usage() to use fputs().
   * set.c: Reworked set_option() code.

2019-10-17  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l, util.h: Added is_ident().
   * parser.y: Fixed typo.

2019-10-16  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c: Added (void).
   * autocomplete.c, cdecl.c, lexer.l, literals.c, literals.h:
     s/L_SET/L_SET_COMMAND/ since L_SET is a synonym for SEEK_SET.
   * cdecl.c: Moved declaration of conf_path_buf; removed unlikely().

2019-09-23  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, stddef.in.h, stdint.in.h, stdlib.in.h, string.in.h,
     unistd.in.h, extern-inline.m4, getdelim.m4, getline.m4, getopt.m4,
     gnulib-common.m4, nocrash.m4, unistd_h.m4: Updated GNUlib.
   * configure.ac, help.c, help-c++.out, help-c.out, help_command-c++.out,
     help_command-c.out, help_commands-c++.out, help_commands-c.out: Added
     "lang" to help.

2019-08-14  Paul J. Lucas <paul@lucasmail.org>

   * errors.c: s/(T_CONST | T_VOLATILE)/T_MASK_QUALIFIER/

2019-08-13  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c: Restricting virtual constexpr to C++20.
   * parser.y: Removed useless member_func_decl_english_ast rule.

2019-08-12  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, autocomplete.c, c_ast_util.c, c_ast_util.h, c_keyword.c,
     c_type.c, c_type.h, errors.c, gibberish.c, lexer.l, literals.c,
     literals.h, parser.y, test/Makefile.am, cdecl--debug.out, cdecl-d.out,
     declare_+o_eq_rck_rk=default-01.out, declare_+o_eq_rck_rk=delete-01.out,
     explain_+o_eq_rck_rk=default-01.out, explain_+o_eq_rck_rk=delete-01.out,
     declare_+o_eq_rck_rk=default-01.test, declare_+o_eq_rck_rk=delete-01.test,
     explain_+o_eq_rck_rk=default-01.test,
     explain_+o_eq_rck_rk=default-02.test, explain_+o_eq_rck_rk=delete-01.test,
     explain_+o_eq_rck_rk=delete-02.test,
     explain_+o_exclam_eq_rck_rk=default.test,
     explain_+o_exclam_eq_rck_rk=delete.test: Defaulted and deleted special
     member functions are now supported.
   * lexer.h, parser.y: Moved yylex() declaration.
   * cdecl.1: Move comment to left.

2019-08-06  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.h: Better @return for c_ast_unreference().
   * c_ast_util.h: s/confustion/confusion/
   * c_ast_util.c, c_ast_util.h: Reworked c_ast_is_ecsu(),
     c_ast_is_ptr_to_type(), c_ast_unpointer(), c_ast_unreference(),
     c_ast_untypedef().
   * c_ast_util.c: Simplified c_ast_is_ptr_to_type().
   * c_ast_util.c: Added ast != NULL.
   * c_ast_util.c, c_ast_util.h, errors.c:
     s/c_ast_is_ptr_to/c_ast_is_ptr_to_type/

2019-07-26  Paul J. Lucas <paul@lucasmail.org>

   * c_lang.c: Removed extraneous @hideinitializer.
   * c_lang.c: Added assert().
   * c_lang.h: Added 'u'.
   * c_lang.h: s/LANG_C_MASK/LANG_MASK_C/
   * c_ast.c, c_ast.h: Unified c_ast_visit().

2019-07-24  Paul J. Lucas <paul@lucasmail.org>

   * errors.c: s/PLURAL_S/plural_s/
   * c_type.h, gibberish.c: Variable renaming.
   * errors.c: Added T_ANY_REFERENCE.
   * configure.ac, cdecl.1, c_type.c, c_type.h, errors.c, help.c, parser.y,
     util.h, test/Makefile.am, explain_eictor_i.out, explain_exctor_i.out,
     explain_fctor_i.out, explain_ictor_i.out, explain_xctor.out, help-c++.out,
     help-c.out, help_command-c++.out, help_command-c.out,
     help_commands-c++.out, help_commands-c.out, help_english-c++.out,
     help_english-c.out, explain_cector_i.test, explain_eictor_i.test,
     explain_exctor_i.test, explain_fctor_i.test, explain_ictor_i.test,
     explain_xctor.test: Now support all storage-class-like types for
     constructors.

2019-07-23  Paul J. Lucas <paul@lucasmail.org>

   * c_type.h, errors.c: Moved T_USER_DEF_CONV.
   * c_ast_util.c, c_ast_util.h: c_ast_take_name() now uses c_ast_find_name().

2019-07-22  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c: Now taking type_ast's name if decl_ast doesn't have one.

2019-07-16  Paul J. Lucas <paul@lucasmail.org>

   * errors.c: Minor reformatting.
   * c_ast.c: Added comment.
   * cdecl.1: Added --alt-tokens/-a.

2019-07-15  Paul J. Lucas <paul@lucasmail.org>

   * AUTHORS, configure.ac, cdecl.1, autocomplete.c, c_ast_util.c, c_keyword.c,
     c_kind.h, c_operator.h, c_type.c, errors.c, gibberish.c, gibberish.h,
     help.c, lexer.l, literals.c, literals.h, options.c, options.h, parser.y,
     set.c, test/Makefile.am, declare_alttokens_o_amper2_rck_b.out,
     declare_alttokens_o_amper_eq_rki_rk.out,
     declare_alttokens_o_amper_rcki_k.out,
     declare_alttokens_o_circ_eq_i_rk.out, declare_alttokens_o_circ_rcki_k.out,
     declare_alttokens_o_exclam_eq_rcki_b.out,
     declare_alttokens_o_exclam_rck_b.out, declare_alttokens_o_pipe_2rck_k.out,
     declare_alttokens_o_pipe_eq_i_rk.out, declare_alttokens_o_pipe_i_rk.out,
     declare_alttokens_o_tilde_k.out, declare_o_exclam_rck_b.out,
     explain_bitand_i.out, explain_compl_dtor.out, explain_vcompl_dtor.out,
     help-c++.out, help-c.out, help_command-c++.out, help_command-c.out,
     help_commands-c++.out, help_commands-c.out, set.out, set_options.out,
     declare_alttokens_o_amper2_rck_b.test,
     declare_alttokens_o_amper_eq_rki_rk.test,
     declare_alttokens_o_amper_rcki_k.test,
     declare_alttokens_o_circ_eq_i_rk.test,
     declare_alttokens_o_circ_rcki_k.test,
     declare_alttokens_o_exclam_eq_rcki_b.test,
     declare_alttokens_o_exclam_rck_b.test,
     declare_alttokens_o_pipe_2rck_k.test,
     declare_alttokens_o_pipe_eq_i_rk.test, declare_alttokens_o_pipe_i_rk.test,
     declare_alttokens_o_tilde_k.test, declare_o_exclam_rck_b.test,
     explain_bitand_i.test, explain_compl_dtor.test, explain_vcompl_dtor.test:
     Now handling "alternative tokens" much better.
   * errors.c: Fixed fallthrough warning.
   * cdecl.c: Added #include <limits.h> for PATH_MAX.

2019-07-11  Paul J. Lucas <paul@lucasmail.org>

   * print.c, print.h, set.c: Now warning about trigraphs in C++17 or later.

2019-07-09  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, typedefs.h: Added c_array_size_t.

2019-07-08  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Fixed typo.

2019-07-07  Paul J. Lucas <paul@lucasmail.org>

   * unistd.in.h: Updated Gnulib.
   * cdecl.1, c_lang.c, cdecl.c, help.c, options.c, options.h, set.c,
     help-c++.out, help-c.out, help_command-c++.out, help_command-c.out,
     help_commands-c++.out, help_commands-c.out, set.out, set_options.out:
     Changed -q to -p; set now only prints current options; added set help to
     help commands.

2019-07-05  Paul J. Lucas <paul@lucasmail.org>

   * english.c: Added blank line.
   * errors.c: Improved K&R C function prototypes error message.
   * cdecl.1: Only C++ has overloaded operators.

2019-07-03  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c: Removed unecessary c_ast_untypedef() from c_ast_is_ptr_to();
     added c_ast_untypedef() to c_ast_unreference().
   * c_ast.c: Replaced "default" with explicit cases.
   * c_kind.c: Removed default.
   * parser.y: Removed unnecessary assignment.
   * test/Makefile.am, declare_ntf.out, declare_ntf.test: Added non-throwing
     test.
   * parser.y, cdecl--debug.out, cdecl-d.out: Rule renaming.

2019-07-02  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am, cdecl.h, pjl_config.h: Split out pjl_config.h.
   * test/Makefile.am: Added CPPDECL.

2019-07-01  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Updated version.
   * options.c, set.c, test/Makefile.am, set.out, set_options.out: Reworked
     help and set option output.
   * util.h: Fixed comment.

2019-06-27  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Added unlikely.
   * lexer.l: Added lexer_update_loc().

2019-06-26  Paul J. Lucas <paul@lucasmail.org>

   * util.h: Whitespace change.
   * c_ast.c, c_ast.h, c_sname.c, debug.c, english.c, errors.c, gibberish.c,
     parser.y: Now using more inline functions.
   * util.c: More assert()s.
   * c_type.c, c_typedef.c, debug.c, english.c, errors.c, gibberish.c, help.c,
     options.c, print.c: More assert()s.
   * c_keyword.c, c_sname.c: More assert()s.
   * c_ast_util.c: Added more assert()s.

2019-06-25  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, ax_compile_check_sizeof.m4, c_ast.h, c_ast_util.c,
     c_ast_util.h, c_kind.h, c_sname.h, c_type.c, c_type.h, c_typedef.c,
     parser.y, red_black.h, slist.c, slist.h, util.c: Now 32-bit safe.
   * configure.ac: Updated.
   * configure.ac: Added bug report URL.
   * options.c: Now printing version and help to stdout per GNU guidelines;
     added long options and home page to --help.

2019-06-24  Paul J. Lucas <paul@lucasmail.org>

   * util.h: Added explicit check.

2019-06-20  Paul J. Lucas <paul@lucasmail.org>

   * prompt.c: Fixed HAVE_DECL_RL_PROMPT_START_IGNORE.
   * configure.ac, autocomplete.c: Work-around for CPPFunction deprecation
     warning.
   * configure.ac, autocomplete.c, prompt.c: Now falling back to
     completion_matches for missing rl_completion_matches; now checking for
     RL_PROMPT_START_IGNORE; fixed RL_PROMPT_END_IGNORE.
   * configure.ac: Fixed handling of readline, part 2.
   * configure.ac: Fixed handling of readline.

2019-06-19  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, ax_prog_bison.m4, ax_prog_flex.m4: Now using AX_PROG_FLEX
     and AX_PROG_BISON to get rid of a POSIX yacc warning.

2019-06-18  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, cdecl--debug.out, cdecl-d.out: The reworking of the way in
     which typedefs are parsed fixed things so that the predefined typedefs are
     no longer order-dependent.
   * cdecl.1: More info about _Alignas.
   * lib/Makefile.am, unistd.in.h, unistd_h.m4: Updated Gnulib.
   * errors.c: Refactored error-checking code into smaller functions.
   * errors.c: Added c_ast_check_alignas().
   * errors.c: Added c_ast_check_oper_args().
   * errors.c: Added error_kind_not_cast_into().
   * cdecl.1, c_ast.h, c_keyword.c, debug.c, english.c, errors.c, gibberish.c,
     gibberish.h, help.c, lexer.l, literals.c, literals.h, parser.y,
     typedefs.h, test/Makefile.am, declare_c_al0-c++.out, declare_c_al0.out,
     declare_c_al8-c++.out, declare_c_al8.out, declare_c_alpv.out,
     explain_al0_c-c++.out, explain_al0_c.out, explain_al8_c-c++.out,
     explain_al8_c.out, explain_alpv_c.out, help-c++.out, help-c.out,
     help_command-c++.out, help_command-c.out, help_commands-c++.out,
     help_commands-c.out, declare_c_al0-c++.test, declare_c_al0.test,
     declare_c_al3.test, declare_c_al8-c++.test, declare_c_al8.test,
     declare_c_alpv.test, declare_ti_al8.test, explain_al0_c-c++.test,
     explain_al0_c.test, explain_al3_c.test, explain_al8_c-c++.test,
     explain_al8_c.test, explain_alpv_c.test: Added _Alignas and alignas
     support.

2019-06-14  Paul J. Lucas <paul@lucasmail.org>

   * errors.c: Fixed allowing user-defined conversion operators to be const.

2019-06-13  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all.out,
     show_all_typedef.out, show_predefined.out, show_predefined_typedef.out:
     Added predefined typedefs fd_set, nfds_t, and sigset_t.
   * AUTHORS, configure.ac, cdecl.1, autocomplete.c, c_ast.c, c_ast.h,
     c_kind.c, c_kind.h, debug.c, english.c, errors.c, gibberish.c, help.c,
     lexer.l, literals.c, literals.h, parser.y, typedefs.h, test/Makefile.am,
     declare_+udc_i.out, declare_udc_i.out, declare_udc_rcc.out,
     explain_+udc_i.out, explain_f+udc_i.out, explain_udc_i.out,
     explain_udc_rcc.out, help_english-c++.out, declare_+udc_i.test,
     declare_udc_a4i.test, declare_udc_i.test, declare_udc_rcc.test,
     explain_+udc_i.test, explain_f+udc_i.test, explain_udc_a4i.test,
     explain_udc_i.test, explain_udc_rcc.test: Added support for C++
     user-defined conversion operators.

2019-06-11  Paul J. Lucas <paul@lucasmail.org>

   * lexer.h, lexer.l, parser.y, test/Makefile.am, explain_tii32.out,
     explain_tulz.out, explain_tci32.test, explain_tii32.test,
     explain_tulz.test: Reworked the say in which typedef'd names are parsed;
     also fixed a few bugs.

2019-06-10  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, c_typedef.h: s/type/t/

2019-06-07  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Simplified unmodified_type_c_ast.
   * parser.y: s/name_or_any_typedef_ast_expected/using_name_ast_expected/
   * parser.y: Added (void).

2019-06-06  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l, parser.y, test/Makefile.am, 2define_k_define_2k_show.out,
     2define_k_define_2k_show.test: Now returning distinct token for
     Y_TYPEDEF_NAME.
   * parser.y: Put name rules into their own section.
   * parser.y: Sorted %destructors.
   * parser.y: Added add_type().
   * parser.y: s/print_type_gibberish/print_type_as_typedef/
   * c_ast.c, gibberish.c, parser.y, slist.h, util.h: s/STRUCT_ZERO/MEM_ZERO/
   * parser.y: Rule reordering.
   * lexer.l: Added more to comment.

2019-06-05  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, c_sname.h, errors.c: s/c_sname_offset/c_sname_name_at/
   * c_ast.h, c_sname.c, c_sname.h, debug.c, errors.c, gibberish.c, parser.y,
     slist.c, slist.h: slist_dup() now takes the number of nodes to duplicate;
     other function renaming.
   * slist.c: Added optimization for slist_peek_at() when offset == list->len -
     1.
   * c_sname.c, c_sname.h, slist.c, slist.h: s/slist_offset/slist_peek_at/,
     etc.

2019-06-03  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Don't need to be explicit about T_STATIC.
   * errors.c: s/c_type_name/c_type_name_error/

2019-05-31  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c: Now using parent code to check ret_ast.
   * c_ast.h, parser.y: Added c_ast_sname_type_name().
   * util.h: Removed SP_BEFORE -- not used.
   * autocomplete.c: Added "constructor" and "destructor" to autocomplete.

2019-05-29  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Fixed cdecl autocomplete options.
   * c_ast.c: Now properly comparing constructor argumentes.

2019-05-24  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Rule reordering.
   * parser.y: Indentation fix.

2019-05-23  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: s/define/declare/
   * configure.ac: Updated.
   * parser.y: Removed special-case for destructor; added
     destructor_decl_english_ast rule.
   * cdecl.1, help.c, help_english-c++.out: Added missing "virtual" for
     destructor to help and man page.

2019-05-22  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, errors.c, gibberish.c, parser.y, test/Makefile.am,
     declare_+dtor.out, declare_dtor.out, declare_vdtor.out, explain_vdtor.out,
     declare_+dtor.test, declare_dtor.test, declare_v+f_v.test,
     declare_vdtor.test, explain_v+f_v.test, explain_vdtor.test: Added support
     for noexcept constructors and noexcept and virtual destructors.
   * cdecl.c: Minor reformatting.
   * cdecl.1: Added "namespace" to set of cdeclrc commands.
   * cdecl.1: Expanded "Gibberish" section to include constructor, destructor,
     etc.
   * cdecl.1: Added "hyphens in hyphenated words".
   * AUTHORS, cdecl.1, autocomplete.c, c_ast.c, c_ast.h, c_kind.c, c_kind.h,
     c_sname.c, c_sname.h, debug.c, english.c, errors.c, gibberish.c, help.c,
     lexer.l, literals.c, literals.h, parser.y, slist.c, slist.h, typedefs.h,
     test/Makefile.am, declare_ctor.out, declare_ctor_i.out,
     declare_ector_i.out, explain_+dtor.out, explain_2+dtor.out,
     explain_ctor.out, explain_ctor_i.out, explain_dtor.out,
     explain_ector_i.out, help_english-c++.out, declare_+ctor-error.test,
     declare_ctor.test, declare_ctor_i.test, declare_ector_i.test,
     declare_ef.test, explain_+ctor-error.test, explain_+dtor-error.test,
     explain_+dtor.test, explain_2+dtor.test, explain_ctor.test,
     explain_ctor_i.test, explain_dtor.test, explain_ector_i.test: Added
     support for constructors & destructors.

2019-05-21  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Reworked help command.

2019-05-20  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: s/scoped_name/sname/
   * parser.y: Fixed crash with scope types.
   * parser.y, cdecl--debug.out, cdecl-d.out: Now using c_type_debug() in
     DUMP_SNAME().
   * parser.y, cdecl--debug.out, cdecl-d.out: Added DUMP_SNAME().
   * help-c++.out, help-c.out, help_command-c++.out, help_command-c.out,
     help_commands-c++.out, help_commands-c.out: Fixed expected tests.
   * slist.c: Added (void).
   * configure.ac, cdecl.1, autocomplete.c, help.c, lexer.l, literals.c,
     literals.h, parser.y, test/Makefile.am, help-c++.out, help-c.out,
     help_command-c++.out, help_command-c.out, help_commands-c++.out,
     help_commands-c.out, help_english-c++.out, help_english-c.out,
     help_englisj-c++.out, help_englisj-c.out, help_command-c++.test,
     help_command-c.test, help_commands-c++.test, help_commands-c.test,
     help_english-c++.test, help_english-c.test: Split up help command output.

2019-05-17  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Reorder rules.
   * parser.y, test/Makefile.am, 2k_typedef_i.test: Now forbidding members with
     the same name as their enclosing class.
   * c_keyword.c, parser.y: namespace clean-up.
   * c_keyword.c: Removed duplicate L_TRY entry.
   * c_keyword.c, c_type.c, c_type.h, parser.y: Added a bit more support for
     "explicit".
   * lexer.l, parser.y, slist.h: Grammar rule clean-up.
   * parser.y: Reordered sname_c rule.

2019-05-16  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Added comment.
   * lexer.l, parser.y: s/Y_TYPEDEF_TYPE/Y_TYPEDEF_NAME/
   * parser.y: DUMP_AST_LIST fix.
   * help.c: Removed '_'.
   * test/Makefile.am: Added help tests.
   * c_sname.c, c_sname.h, gibberish.c, gibberish.h: Code re-org.

2019-05-13  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: s/Sierra/Mojave/

2019-05-11  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added new typedefs to man page.
   * configure.ac: New release is 6.2.

2019-05-10  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all.out,
     show_all_typedef.out, show_predefined.out, show_predefined_typedef.out:
     Added typedef declarations for div_t, imaxdiv_t, etc.
   * c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all.out,
     show_all_typedef.out, show_predefined.out, show_predefined_typedef.out:
     Added max_align_t, std::max_align_t, std::size_t, and std::ptrdiff_t.
   * cdecl.1: Added mention of char8_t.
   * AUTHORS, autocomplete.c, c_keyword.c, c_type.c, c_type.h, errors.c,
     help.c, literals.c, literals.h, parser.y, test/Makefile.am,
     cdecl--debug.out, cdecl-d.out, explain_udl_c8_i.out,
     explain_udl_pcc8ul_i.out, explain_udl_pcc8z_i.out, help-c++.out,
     declare_c8-c++17.test, declare_hc8.test, declare_lc8.test,
     declare_sc8.test, declare_uc8.test, explain_c8-c++17.test,
     explain_hc8.test, explain_lc8.test, explain_sc8.test, explain_uc8.test,
     explain_udl_c8_i.test, explain_udl_pcc8ul_i.test,
     explain_udl_pcc8z_i.test: Added support for char8_t.
   * AUTHORS, configure.ac, cdecl.1, autocomplete.c, c_ast.c, c_ast.h,
     c_ast_util.c, c_ast_util.h, c_kind.c, c_kind.h, c_type.h, debug.c,
     english.c, errors.c, gibberish.c, help.c, lexer.l, literals.c, literals.h,
     parser.y, typedefs.h, test/Makefile.am, declare_+udl_c_i.out,
     explain_+udl_c_i.out, explain_udl_c16_i.out, explain_udl_c32_i.out,
     explain_udl_c_i.out, explain_udl_ld_i.out, explain_udl_pcc16ul_i.out,
     explain_udl_pcc16z_i.out, explain_udl_pcc32ul_i.out,
     explain_udl_pcc32z_i.out, explain_udl_pcc_i.out, explain_udl_pccul_i.out,
     explain_udl_pccz_i.out, explain_udl_pcwul_i.out, explain_udl_pcwz_i.out,
     explain_udl_ull_i.out, explain_udl_w_i.out, help-c++.out, help-c.out,
     declare_+udl_c_i.test, explain_+udl_c_i.test, explain_udl_2c_i.test,
     explain_udl_3c_i.test, explain_udl__i.test, explain_udl_c16_i.test,
     explain_udl_c32_i.test, explain_udl_c_i-c.test, explain_udl_c_i.test,
     explain_udl_ld_i.test, explain_udl_pcc16ul_i.test,
     explain_udl_pcc16z_i.test, explain_udl_pcc32ul_i.test,
     explain_udl_pcc32z_i.test, explain_udl_pcc_i.test,
     explain_udl_pccul_i.test, explain_udl_pccz_i.test,
     explain_udl_pccz_ul.test, explain_udl_pcwul_i.test,
     explain_udl_pcwz_i.test, explain_udl_piul_i.test, explain_udl_ul_i.test,
     explain_udl_ull_i.test, explain_udl_w_i.test: Added support for C++11's
     user-defined literals.

2019-05-09  Paul J. Lucas <paul@lucasmail.org>

   * help-c++.out: Fixed expected result to match help fix.
   * help.c: Added missing [.
   * parser.y: Now checking c_init >= INIT_READ_CONF in more places.
   * c_sname.h: Removed blank line.

2019-05-08  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c: Simplified a bit of c_ast_equiv().
   * c_ast.c: Added missing checks in c_ast_equiv().

2019-05-01  Paul J. Lucas <paul@lucasmail.org>

   * test/Makefile.am: Added update-expected maintainer rule.
   * c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all.out,
     show_all_typedef.out, show_predefined.out, show_predefined_typedef.out:
     Added typedefs for std::exception, string, wstring, u16string, u32string.
   * c_typedef.c: Now temporarily turning off Bison debug output for builtin
     type declarations.
   * c_typedef.c, cdecl--debug.out, cdecl-d.out, show_all.out,
     show_all_typedef.out, show_predefined.out, show_predefined_typedef.out:
     Added C++20 std::byte.

2019-04-26  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am: Added uninstall-hook to remove c++decl.

2019-04-24  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added: set _lang_.

2019-04-22  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, cdecl.1, cdecl.c: More commands are now recognized as such
     when they are the first argument.
   * autocomplete.c: Made check explicit.

2019-04-17  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Renaming.
   * util.h: Made check explicit.

2019-04-16  Paul J. Lucas <paul@lucasmail.org>

   * c_keyword.c, lexer.l, parser.y: s/Y_NOT_EQ/Y_EXCLAM_EQ/
   * cdecl--debug.out, cdecl-d.out, show_all.out, show_all_typedef.out,
     show_predefined.out, show_predefined_typedef.out: Added std::nullptr_t.
   * typedefs.h: Sorted typedefs.
   * c_typedef.c, show_all.out, show_all_typedef.out, show_predefined.out,
     show_predefined_typedef.out: Put partial_ordering, et al, into std
     namespace; added nullptr_t.

2019-04-15  Paul J. Lucas <paul@lucasmail.org>

   * _Noreturn.h: Updated Gnulib.
   * configure.ac, c_type.c, explain_oo_amper_rk_pk.out,
     explain_oo_minus2_i_rk.out, explain_oo_minus_rk_rk.out,
     explain_oo_plus2_i_rk.out, explain_oo_plus_rk_rk.out,
     explain_oo_star_rk_rk.out, explain_oyf.out, explain_voyf.out,
     explain_yf.out, explain_yo_amper_rk_pk.out, explain_yo_minus2_i_rk.out,
     explain_yo_minus_rk_rk.out, explain_yo_plus2_i_rk.out,
     explain_yo_plus_rk_rk.out, explain_yo_star_rk_rk.out: Final or override
     now implies virtual.

2019-04-11  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c: Made test explicit.

2019-04-05  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: s/0/T_NONE/

2019-03-30  Paul J. Lucas <paul@lucasmail.org>

   * util.h: Fixed "cast to pointer from integer of different size" warning.
   * configure.ac: Updated version.
   * lib/Makefile.am, _Noreturn.h, gettext.h, stdio.in.h, stdlib.in.h,
     strndup.c, strnlen.c, unistd.in.h, getdelim.m4, getline.m4,
     gnulib-cache.m4, gnulib-common.m4, gnulib-comp.m4, stdlib_h.m4,
     strndup.m4, strnlen.m4: Updaed Gnulib; added strndup().

2019-03-29  Paul J. Lucas <paul@lucasmail.org>

   * run_test.sh: Now checking if connected to a terminal for color tests.

2019-03-28  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Better English.
   * cdecl.1: Added missing ';'.
   * set.c: s/IF_OPT/IF_IS_OPT_DO/

2019-03-26  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Updated version to 6.0.1.
   * c_type.h, typedefs.h: Fixes uint64_t being undefined.

2019-03-25  Paul J. Lucas <paul@lucasmail.org>

   * print.c: Explicit "if" conditions.
   * parser.y, set.c: The "set" command now prints the ^ for an unknown option.
   * set.c: Made comparison explicit.

2019-03-24  Paul J. Lucas <paul@lucasmail.org>

   * AUTHORS, Doxyfile, Makefile.am, configure.ac, man/Makefile.am,
     man/man1/Makefile.am, cdecl.1, src/Makefile.am, autocomplete.c, c_ast.c,
     c_ast.h, c_ast_util.c, c_ast_util.h, c_keyword.c, c_keyword.h, c_kind.c,
     c_kind.h, c_lang.c, c_lang.h, c_operator.c, c_sname.c, c_sname.h,
     c_type.c, c_type.h, c_typedef.c, c_typedef.h, cdecl.c, cdecl.h, color.c,
     color.h, debug.c, debug.h, english.c, english.h, errors.c, gibberish.c,
     gibberish.h, help.c, lexer.h, lexer.l, literals.c, literals.h, options.c,
     options.h, parser.y, print.c, print.h, prompt.c, prompt.h, red_black.c,
     red_black.h, set.c, slist.c, slist.h, typedefs.h, util.c, util.h,
     test/Makefile.am, 2c_typedef_i.out, cast_+i.out, cdecl--debug.out,
     cdecl-d.out, const_cast_+pi.out, declare_+f_v.out, declare_2+f_v.out,
     declare_=+i.out, declare_=i.out, declare_f+k_v.out, declare_i=+.out,
     declare_o2=_exclam_b.out, define_2=_i.out, define_=_i.out,
     define_=c_i.out, define_k_declare_k.out,
     define_k_define_k_explain_k+k.out, define_k_explain_pmki.out,
     dynamic_cast_+pc.out, explain_+o_eq2_rcki_b.out, explain_+o_eq_rck_rk.out,
     explain_cast_=pmi.out, explain_cast_pmc=i.out, explain_const_cast_+pi.out,
     explain_dynamic_cast_p+c+.out, explain_i+.out, explain_i2+.out,
     explain_ki+.out, explain_static_cast_i+.out, help-c++.out, help-c.out,
     namespace_+typedef_i.out, namespace_c_typedef_i.out,
     namespace_k_typedef_i.out, namespace_n_typedef_i.out,
     namespace_namespace_typedef_i-c++14.out,
     namespace_namespace_typedef_i.out, namespace_typedef_i.out,
     namespace_using_i.out, reinterpret_cast_+pv.out, set_c++14.out,
     set_c++17.out, set_c++20.out, set_c18.out, set_c95.out,
     static_cast_+i.out, run_test.sh, 2c_typedef_i.test, cast_+i.test,
     const_cast_+pi.test, declare_+f_v.test, declare_2+f_v.test,
     declare_=+i.test, declare_=i-c.test, declare_=i.test, declare_f+k_v.test,
     declare_i=+.test, declare_o2=_exclam_b.test, define_2=_i.test,
     define_=_i.test, define_=c_i.test, define_=sc_i.test,
     define_k_declare_k.test, define_k_define_k_explain_k+k.test,
     define_k_explain_pmki.test, define_namespace_=c_i.test,
     dynamic_cast_+pc.test, explain_+i-c.test, explain_+o_eq2_rcki_b.test,
     explain_+o_eq_rck_rk.test, explain_cast_=pmi.test,
     explain_cast_pmc=i.test, explain_const_cast_+pi.test,
     explain_dynamic_cast_p+c+.test, explain_f+_v.test, explain_i+.test,
     explain_i2+.test, explain_ki+.test, explain_static_cast_i+.test,
     k_namespace_typedef_i.test, namespace_+typedef_i-c++14.test,
     namespace_+typedef_i.test, namespace_c_typedef_i.test,
     namespace_k_typedef_i.test, namespace_n_typedef_i.test,
     namespace_namespace_typedef_i-c++14.test,
     namespace_namespace_typedef_i.test, namespace_typedef_i.test,
     namespace_using_i.test, reinterpret_cast_+pv.test, set_c++14.test,
     set_c++17.test, set_c++20.test, set_c18.test, set_c95.test,
     static_cast_+i.test, typedef_i+.test: Added C++ scoped name support and
     partial namespace support.

2019-02-27  Paul J. Lucas <paul@lucasmail.org>

   * c_operator.c, slist.c: Removed unnecessary uses of _GL_INLINE_HEADER_END.

2019-02-22  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, slist.c, slist.h, util.c: Some slist API renaming.

2019-02-21  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, slist.c, slist.h: Made some slist functions more explicit about
     referring to the head.
   * parser.y: Fixed comment.

2019-02-20  Paul J. Lucas <paul@lucasmail.org>

   * slist.h: Put "next" first.

2019-02-13  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c, util.c, util.h: Added STATIC_CAST; using CONST_CAST more.

2019-02-08  Paul J. Lucas <paul@lucasmail.org>

   * set.c, set.out, set_options.out: Removed "options" from "set" output.

2019-02-05  Paul J. Lucas <paul@lucasmail.org>

   * options.c, util.h: Now using C99 VLAs instead of FREE_STRBUF_LATER.

2019-01-31  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Reworked CONFIGURATION FILE section: added that "set" can also be
     used.

2019-01-28  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h: Removed #include <stddef.h> -- not needed.

2019-01-11  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, arg-nonnull.h, c++defs.h, errno.in.h, getdelim.c,
     getline.c, getopt-cdefs.in.h, getopt-core.h, getopt-ext.h,
     getopt-pfx-core.h, getopt-pfx-ext.h, getopt.c, getopt.in.h, getopt1.c,
     getopt_int.h, gettext.h, limits.in.h, stdarg.in.h, stdbool.in.h,
     stddef.in.h, stdint.in.h, stdio.in.h, stdlib.in.h, string.in.h, strsep.c,
     sys_types.in.h, sysexits.in.h, unistd.in.h, warn-on-use.h, 00gnulib.m4,
     absolute-header.m4, errno_h.m4, extensions.m4, extern-inline.m4,
     getdelim.m4, getline.m4, getopt.m4, gnulib-cache.m4, gnulib-common.m4,
     gnulib-comp.m4, gnulib-tool.m4, include_next.m4, limits-h.m4, longlong.m4,
     multiarch.m4, nocrash.m4, off_t.m4, ssize_t.m4, stdarg.m4, stdbool.m4,
     stddef_h.m4, stdint.m4, stdio_h.m4, stdlib_h.m4, string_h.m4, strsep.m4,
     sys_types_h.m4, sysexits.m4, unistd_h.m4, warn-on-use.m4, wchar_t.m4,
     wint_t.m4: Updaed Gnulib.

2018-12-14  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am, c_type.c, cdecl.c, color.h, errors.c, parser.y: Renamed
     diagnostics -> print.

2018-12-13  Paul J. Lucas <paul@lucasmail.org>

   * AUTHORS, configure.ac, cdecl.1, autocomplete.c, c_type.c, gibberish.c,
     lexer.l, options.c, options.h, parser.y, set.c, typedefs.h,
     test/Makefile.am, declare_digraphs_a9i.out,
     declare_digraphs_nfi_v-c++.out, declare_trigraphs_a9i.out,
     declare_trigraphs_nfi_v-c++.out, declare_trigraphs_o_circ_eq_i_rk.out,
     declare_trigraphs_o_circ_rcki_k.out, declare_trigraphs_o_pipe2_2rck_b.out,
     declare_trigraphs_o_pipe_2rck_k.out, declare_trigraphs_o_pipe_eq_i_rk.out,
     declare_trigraphs_o_tilde_k.out, explain_digraphs_a9i.out,
     explain_digraphs_nfi_v-c++.out, explain_nfi_v-c++.out,
     explain_trigraphs_a9i.out, explain_trigraphs_nfi_v-c++.out,
     explain_trigraphs_o_circ_eq_i_rk.out, explain_trigraphs_o_circ_rcki_k.out,
     explain_trigraphs_o_pipe2_2rck_b.out, explain_trigraphs_o_pipe_2rck_k.out,
     explain_trigraphs_o_pipe_eq_i_rk.out, explain_trigraphs_o_tilde_k.out,
     set.out, set_digraphs.out, set_nographs.out, set_options.out,
     set_trigraphs.out, cdecl-23.test, declare_digraphs_a9i.test,
     declare_digraphs_nfi_v-c++.test, declare_trigraphs_a9i.test,
     declare_trigraphs_nfi_v-c++.test, declare_trigraphs_o_circ_eq_i_rk.test,
     declare_trigraphs_o_circ_rcki_k.test,
     declare_trigraphs_o_pipe2_2rck_b.test,
     declare_trigraphs_o_pipe_2rck_k.test,
     declare_trigraphs_o_pipe_eq_i_rk.test, declare_trigraphs_o_tilde_k.test,
     explain_digraphs_a9i.test, explain_digraphs_nfi_v-c++.test,
     explain_nfi_v-c++-error.test, explain_nfi_v-c++.test,
     explain_trigraphs_a9i.test, explain_trigraphs_nfi_v-c++.test,
     explain_trigraphs_o_circ_eq_i_rk.test,
     explain_trigraphs_o_circ_rcki_k.test,
     explain_trigraphs_o_pipe2_2rck_b.test,
     explain_trigraphs_o_pipe_2rck_k.test,
     explain_trigraphs_o_pipe_eq_i_rk.test, explain_trigraphs_o_tilde_k.test,
     set_digraphs.test, set_nographs.test, set_trigraphs.test: Added support
     for digraphs & trigraphs.

2018-12-12  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: s/operator/L_OPERATOR/

2018-12-07  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am: s/misc.h/cdecl.h
   * configure.ac: Upped version to 5.1.
   * autocomplete.c, c_keyword.c, c_keyword.h, c_operator.h, c_type.c,
     errors.c, parser.y: s/ok_langs/lang_ids/
   * AUTHORS, cdecl.1, autocomplete.c, c_ast.c, c_ast.h, c_ast_util.c,
     c_ast_util.h, c_keyword.c, c_kind.c, c_kind.h, c_lang.c, c_lang.h,
     c_operator.c, c_operator.h, c_type.c, c_type.h, c_typedef.c, c_typedef.h,
     cdecl.c, color.h, debug.c, debug.h, diagnostics.c, diagnostics.h,
     english.c, errors.c, gibberish.c, help.c, lexer.h, lexer.l, literals.c,
     literals.h, options.c, options.h, parser.y, prompt.c, prompt.h,
     red_black.c, red_black.h, set.c, slist.c, slist.h, util.c, util.h,
     test/Makefile.am, cdecl--debug.out, cdecl-d.out, declare_jf_i.out,
     declare_o_less_eq_greater_2rck_a.out, help-c++.out, set.out,
     set_options.out, show_all.out, show_all_typedef.out, show_predefined.out,
     show_predefined_typedef.out, declare_jf_i.test, declare_ji.test,
     declare_o_less_eq_greater_2rck_a-c++17.test,
     declare_o_less_eq_greater_2rck_a.test: Added support for C18 and C++20.

2018-12-04  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l, test/Makefile.am, cdecl--no-typedefs.out, cdecl-t.out,
     cdecl--no-typedefs.test, cdecl-t.test: Fixed crash with -t option.

2018-12-03  Paul J. Lucas <paul@lucasmail.org>

   * Doxyfile: Changed vim comment.

2018-11-30  Paul J. Lucas <paul@lucasmail.org>

   * slist.c: Added asserts.
   * c_type.c: Simplification of is_long_int().
   * lib/Makefile.am, _Noreturn.h, limits.in.h, stdlib.in.h, unistd.in.h,
     errno_h.m4, gnulib-common.m4, gnulib-comp.m4, limits-h.m4, longlong.m4,
     stdarg.m4, stddef_h.m4, stdint.m4, unistd_h.m4: Updated GNUlib.
   * AUTHORS, cdecl.1, src/Makefile.am, autocomplete.c, c_ast.c, c_ast.h,
     c_ast_util.c, c_ast_util.h, c_keyword.c, c_kind.c, c_kind.h, c_lang.c,
     c_operator.c, c_operator.h, c_type.c, c_type.h, color.c, debug.c, debug.h,
     diagnostics.c, english.c, errors.c, gibberish.c, help.c, lexer.l,
     literals.c, literals.h, options.c, parser.y, prompt.c, slist.c, slist.h,
     typedefs.h, util.h, test/Makefile.am, cdecl--debug.out, cdecl-d.out,
     declare_mo_amper2_rck_b.out, declare_mo_amper_eq_i_rk.out,
     declare_mo_amper_i_rk.out, declare_mo_amper_pk.out,
     declare_mo_arrow_pk.out, declare_mo_arrow_star_i_rk.out,
     declare_mo_brackets_i_i.out, declare_mo_circ_eq_i_rk.out,
     declare_mo_comma_i_rk.out, declare_mo_exclam_b.out,
     declare_mo_exclam_eq_i_b.out, declare_mo_greater2_eq_i_rk.out,
     declare_mo_greater2_i_k.out, declare_mo_greater_eq_rcki_b.out,
     declare_mo_less2_eq_i_rk.out, declare_mo_less2_i_k.out,
     declare_mo_less_eq_rcki_b.out, declare_mo_minus_eq_i_rk.out,
     declare_mo_minus_i_k.out, declare_mo_percent_eq_i_rk.out,
     declare_mo_percent_i_k.out, declare_mo_pipe2_rck_b.out,
     declare_mo_pipe_eq_i_rk.out, declare_mo_pipe_i_rk.out,
     declare_mo_plus_eq_i_rk.out, declare_mo_plus_i_k.out,
     declare_mo_slash_eq_i_rk.out, declare_mo_star_eq_i_rk.out,
     declare_mo_star_i_rk.out, declare_mo_star_rk.out, declare_mo_tilde_k.out,
     declare_nmo_amper2_2rck_b.out, declare_nmo_amper_eq_rki_rk.out,
     declare_nmo_amper_rcki_k.out, declare_nmo_amper_rk_pk.out,
     declare_nmo_arrow_star_rki_rk.out, declare_nmo_circ_rcki_k.out,
     declare_nmo_comma_rki_rk.out, declare_nmo_exclam_eq_ki_b.out,
     declare_nmo_exclam_rck_b.out, declare_nmo_greater2_rcki_k.out,
     declare_nmo_greater_eq_rcki_b.out, declare_nmo_greater_rcki_b.out,
     declare_nmo_less2_eq_rki_rk.out, declare_nmo_less2_rcki_k.out,
     declare_nmo_less_eq_rcki_b.out, declare_nmo_less_rcki_b.out,
     declare_nmo_minus2_rki_rk.out, declare_nmo_minus_eq_rki_rk.out,
     declare_nmo_minus_rcki_k.out, declare_nmo_percent_eq_rki_rk.out,
     declare_nmo_percent_rcki_k.out, declare_nmo_pipe2_2rck_b.out,
     declare_nmo_pipe_eq_rki_rk.out, declare_nmo_plus2_rki_rk.out,
     declare_nmo_plus_eq_rki_rk.out, declare_nmo_plus_rcki_k.out,
     declare_nmo_slash_eq_rki_rk.out, declare_nmo_slash_rcki_k.out,
     declare_nmo_star_eq_rki_rk.out, declare_nmo_star_rck_k.out,
     declare_nmo_star_rcki_k.out, declare_nmo_tilde_rck_k.out,
     declare_o_amper2_2rck_b.out, declare_o_amper2_rck_b.out,
     declare_o_amper_2rck_k.out, declare_o_amper_eq_i_rk.out,
     declare_o_amper_eq_rki_rk.out, declare_o_amper_i_rk.out,
     declare_o_amper_pk.out, declare_o_amper_rcki_k.out,
     declare_o_arrow_star_i_rk.out, declare_o_arrow_star_rki_rk.out,
     declare_o_circ_eq_i_rk.out, declare_o_comma_rki_rk.out,
     declare_o_eq_i_b.out, declare_o_eq_ki_b.out, declare_o_exclam_b.out,
     declare_o_exclam_eq_i_b.out, declare_o_exclam_eq_ki_b.out,
     declare_o_exclam_rck_b.out, declare_o_greater2_eq_i_rk.out,
     declare_o_greater2_i_k.out, declare_o_greater2_rcki_k.out,
     declare_o_greater_eq_rcki_b.out, declare_o_less2_eq_i_rk.out,
     declare_o_less2_i_k.out, declare_o_less2_rcki_k.out,
     declare_o_less_eq_rcki_b.out, declare_o_minus_i_k.out,
     declare_o_parens_2i_v.out, declare_o_parens_3i_v.out,
     declare_o_parens_i_v.out, declare_o_parens_v.out,
     declare_o_percent_eq_i_rk.out, declare_o_percent_eq_rki_rk.out,
     declare_o_percent_i_k.out, declare_o_percent_rcki_k.out,
     declare_o_pipe2_2rck_b.out, declare_o_pipe2_rck_b.out,
     declare_o_pipe_eq_i_rk.out, declare_o_pipe_eq_rki_rk.out,
     declare_o_pipe_i_rk.out, declare_o_plus_i_k.out,
     declare_o_slash_eq_i_rk.out, declare_o_star_eq_i_rk.out,
     declare_o_star_eq_rki_rk.out, declare_o_star_i_rk.out,
     declare_o_star_rck_k.out, declare_o_star_rcki_k.out,
     declare_o_star_rk.out, declare_o_tilde_k.out, declare_o_tilde_rck_k.out,
     explain_0f_v-01.out, explain_0o_amper_rk_pk.out,
     explain_0o_minus2_i_rk.out, explain_0o_minus_rk_rk.out,
     explain_0o_plus2_i_rk.out, explain_0o_plus_rk_rk.out,
     explain_0o_star_rk_rk.out, explain_cf_v.out, explain_co_amper_rk_pk.out,
     explain_co_minus2_i_rk.out, explain_co_minus_rk_rk.out,
     explain_co_plus2_i_rk.out, explain_co_plus_rk_rk.out,
     explain_co_star_rk_rk.out, explain_co_tilde_k.out, explain_crf_v.out,
     explain_cvf_v.out, explain_o_amper2_2rck_b.out,
     explain_o_amper2_rck_b.out, explain_o_amper_2rck_k.out,
     explain_o_amper_eq_i_rk.out, explain_o_amper_eq_rki_rk.out,
     explain_o_amper_i_i.out, explain_o_amper_i_rk.out, explain_o_amper_pk.out,
     explain_o_amper_rcki_k.out, explain_o_amper_rk_pk.out,
     explain_o_arrow_pk.out, explain_o_arrow_star_i_rk.out,
     explain_o_arrow_star_rki_rk.out, explain_o_brackets_i_i.out,
     explain_o_circ_eq_i_rk.out, explain_o_circ_eq_rki_rk.out,
     explain_o_circ_rcki_k.out, explain_o_comma_i_rk.out,
     explain_o_comma_rcki_k.out, explain_o_comma_rki_rk.out,
     explain_o_eq_i_b.out, explain_o_eq_ki_b.out, explain_o_exclam_b.out,
     explain_o_exclam_eq_i_b.out, explain_o_exclam_eq_ki_b.out,
     explain_o_exclam_rck_b.out, explain_o_greater2_eq_i_rk.out,
     explain_o_greater2_eq_rki_rk.out, explain_o_greater2_i_k.out,
     explain_o_greater2_i_rk.out, explain_o_greater2_rcki_k.out,
     explain_o_greater2_rki_rk.out, explain_o_greater_eq_rcki_b.out,
     explain_o_greater_rcki_b.out, explain_o_less2_eq_i_rk.out,
     explain_o_less2_eq_rki_rk.out, explain_o_less2_i_k.out,
     explain_o_less2_i_rk.out, explain_o_less2_rcki_k.out,
     explain_o_less2_rki_rk.out, explain_o_less_eq_rcki_b.out,
     explain_o_less_rcki_b.out, explain_o_minus2_rki_rk.out,
     explain_o_minus_2rck_k.out, explain_o_minus_eq_i_rk.out,
     explain_o_minus_eq_rki_rk.out, explain_o_minus_i_k.out,
     explain_o_minus_rcki_k.out, explain_o_parens_2i_v.out,
     explain_o_parens_3i_v.out, explain_o_parens_i_v.out,
     explain_o_parens_v.out, explain_o_percent_2rck_k.out,
     explain_o_percent_eq_i_rk.out, explain_o_percent_eq_rki_rk.out,
     explain_o_percent_i_k.out, explain_o_percent_rcki_k.out,
     explain_o_pipe2_2rck_b.out, explain_o_pipe2_rck_b.out,
     explain_o_pipe_2rck_k.out, explain_o_pipe_eq_i_rk.out,
     explain_o_pipe_eq_rki_rk.out, explain_o_pipe_i_rk.out,
     explain_o_plus2_rki_rk.out, explain_o_plus_2rck_k.out,
     explain_o_plus_eq_i_rk.out, explain_o_plus_eq_rki_rk.out,
     explain_o_plus_i_k.out, explain_o_plus_rcki_k.out,
     explain_o_slash_2rck_k.out, explain_o_slash_eq_i_rk.out,
     explain_o_slash_eq_rki_rk.out, explain_o_slash_rcki_k.out,
     explain_o_star_2rck_k.out, explain_o_star_eq_i_rk.out,
     explain_o_star_eq_rki_rk.out, explain_o_star_i_rk.out,
     explain_o_star_rck_k.out, explain_o_star_rcki_k.out,
     explain_o_star_rk.out, explain_o_tilde_k.out, explain_o_tilde_rck_k.out,
     explain_oo_amper_rk_pk.out, explain_oo_minus2_i_rk.out,
     explain_oo_minus_rk_rk.out, explain_oo_plus2_i_rk.out,
     explain_oo_plus_rk_rk.out, explain_oo_star_rk_rk.out, explain_oyf.out,
     explain_rf_v.out, explain_ro_amper_rk_pk.out, explain_ro_minus2_i_rk.out,
     explain_ro_minus_rk_rk.out, explain_ro_plus2_i_rk.out,
     explain_ro_plus_rk_rk.out, explain_ro_star_rk_rk.out, explain_rrf_v.out,
     explain_rro_amper_rk_pk.out, explain_rro_minus2_i_rk.out,
     explain_rro_minus_rk_rk.out, explain_rro_plus2_i_rk.out,
     explain_rro_plus_rk_rk.out, explain_rro_star_rk_rk.out, explain_vf_v.out,
     explain_vo_amper_rk_pk.out, explain_vo_minus2_i_rk.out,
     explain_vo_minus_rk_rk.out, explain_vo_plus2_i_rk.out,
     explain_vo_plus_rk_rk.out, explain_vo_star_rk_rk.out, explain_voyf.out,
     explain_yf.out, explain_yo_amper_rk_pk.out, explain_yo_minus2_i_rk.out,
     explain_yo_minus_rk_rk.out, explain_yo_plus2_i_rk.out,
     explain_yo_plus_rk_rk.out, explain_yo_star_rk_rk.out, help-c++.out,
     help-c.out, show_user_typedef.out, run_test.sh, cast_a3i.test,
     cast_bii_d.test, cast_ci.test, cast_constant.test, cast_cpa3cpa5i.test,
     cast_cpa3pa5i.test, cast_cpa9ci.test, cast_cpa9i.test, cast_cpbv_pi.test,
     cast_cpcpi.test, cast_cpfv_pi.test, cast_cpi.test, cast_cppi.test,
     cast_cvpi.test, cast_f_i.test, cast_gi.test, cast_ll.test,
     cast_pa3cpa5i.test, cast_pa3pa5i.test, cast_pa9i.test, cast_pbv_pi.test,
     cast_pci.test, cast_pcpi.test, cast_pf_i-01.test, cast_pf_i-02.test,
     cast_pfii_i.test, cast_pfv_pi.test, cast_pfx_i.test, cast_pi.test,
     cast_pmi.test, cast_ppi.test, cast_sc.test, cast_si.test, cast_sll.test,
     cast_ti.test, cast_type.test, cast_u.test, cast_uc.test, cast_ui.test,
     cast_ull.test, cast_vcpi.test, cast_vpi.test, cdecl--debug.test,
     cdecl--no-semicolon.test, cdecl-d.test, cdecl-s.test, cdecl-xx.test,
     cl-cast_i.test, cl-declare_i.test, cl-explain_i.test,
     const_cast_pi-c.test, const_cast_pi.test, declare_0f_v-c.test,
     declare_0f_v.test, declare_a.test, declare_a3a5a7i.test,
     declare_a3a5i.test, declare_a3a5pfv_i.test, declare_a3a5pfv_pi.test,
     declare_a3a5pfv_ppa7a9i.test, declare_a3a5pfv_ppa7a9pc.test,
     declare_a3a5pfv_ppa7i.test, declare_a3a5pfv_ppa7pi.test,
     declare_a3a5pfv_ppi.test, declare_a3pfv_i.test, declare_a3ppfv_i.test,
     declare_a9cpi.test, declare_a9i.test, declare_a9pi.test,
     declare_ac3i.test, declare_af-c++.test, declare_af.test,
     declare_ai-01.test, declare_ai-02.test, declare_ai-c++11.test,
     declare_ai.test, declare_api-01.test, declare_as3i.test, declare_avi.test,
     declare_b-c89.test, declare_b.test, declare_b_ai.test, declare_b_f_i.test,
     declare_bii_d.test, declare_c-c.test, declare_c.test,
     declare_c16-c++03.test, declare_c16-c99.test, declare_c32-c++03.test,
     declare_c32-c99.test, declare_cdfcdi_i.test, declare_cdfi_i.test,
     declare_cdi.test, declare_cf_v-c.test, declare_cf_v.test,
     declare_ci-knr.test, declare_ci.test, declare_cnmf_v.test,
     declare_co_exclam_k_b.test, declare_config_u.test, declare_constant.test,
     declare_cpa3cpa5i.test, declare_cpa3pa5i.test, declare_cpa9ci.test,
     declare_cpa9i.test, declare_cpbv_pi.test, declare_cpcpi.test,
     declare_cpfv_pi.test, declare_cpi.test, declare_cpmi.test,
     declare_cppi.test, declare_crf_v.test, declare_cri.test,
     declare_crrf_v.test, declare_cu.test, declare_cvpi.test, declare_cz.test,
     declare_df_v.test, declare_dui.test, declare_e-knr.test, declare_e.test,
     declare_ea2i.test, declare_ec-c.test, declare_ec.test, declare_ek.test,
     declare_esf_v.test, declare_f.test, declare_f_ai.test, declare_f_f_i.test,
     declare_f_pi.test, declare_f_pmi.test, declare_facs3_v.test,
     declare_facv_v.test, declare_fas3_v.test, declare_fasc3_v.test,
     declare_fav_v.test, declare_fcce_v-01.test, declare_fcce_v-02.test,
     declare_fcce_v-03.test, declare_fcdi_i.test, declare_fcf.test,
     declare_fco_exclam_b.test, declare_fdi_v.test, declare_ff_v-c.test,
     declare_ff_v.test, declare_fg_v-c89.test, declare_fg_v.test,
     declare_fgi_v.test, declare_fid_v.test, declare_fii_v.test,
     declare_fiiv_v.test, declare_fipfi_v_pfi_v.test, declare_fiv_v.test,
     declare_fixiy_v.test, declare_fmf_v.test, declare_fmo_star_rk_rk.test,
     declare_fn.test, declare_fpc_pi.test, declare_fpci_pi.test,
     declare_fpfc_i_d.test, declare_frri_v.test, declare_fsi_v.test,
     declare_fti_v-01.test, declare_fti_v-02.test, declare_fui_v-01.test,
     declare_fui_v-02.test, declare_fv_pa3a5i.test, declare_fv_pa3a5pi.test,
     declare_fv_pa3i.test, declare_fv_pa3pi.test, declare_fv_v.test,
     declare_fvx_v.test, declare_fx_pi.test, declare_gf_v.test,
     declare_gi.test, declare_hb.test, declare_hc.test, declare_hc16.test,
     declare_hc32.test, declare_hd.test, declare_hf.test, declare_hl.test,
     declare_hll.test, declare_hv.test, declare_hw.test, declare_if_v.test,
     declare_ii-c++.test, declare_ii.test, declare_k.test, declare_lb.test,
     declare_lc.test, declare_lc16.test, declare_lc32.test,
     declare_ld-knr.test, declare_ld.test, declare_lf-c.test, declare_lf.test,
     declare_ll-c89.test, declare_ll-knr.test, declare_ll.test,
     declare_lll.test, declare_lv.test, declare_lw.test, declare_md.test,
     declare_mf.test, declare_mi.test, declare_mo_amper2_rck_b.test,
     declare_mo_amper_eq_i_rk.test, declare_mo_amper_i_rk.test,
     declare_mo_amper_pk.test, declare_mo_arrow_i.test,
     declare_mo_arrow_pk.test, declare_mo_arrow_star_i_rk.test,
     declare_mo_brackets_i_i.test, declare_mo_circ_eq_i_rk.test,
     declare_mo_comma_i_rk.test, declare_mo_exclam_b.test,
     declare_mo_exclam_eq_i_b.test, declare_mo_greater2_eq_i_rk.test,
     declare_mo_greater2_i_k.test, declare_mo_greater_eq_rcki_b.test,
     declare_mo_less2_eq_i_rk.test, declare_mo_less2_i_k.test,
     declare_mo_less_eq_rcki_b.test, declare_mo_minus_eq_i_rk.test,
     declare_mo_minus_i_k.test, declare_mo_percent_eq_i_rk.test,
     declare_mo_percent_i_k.test, declare_mo_pipe2_rck_b.test,
     declare_mo_pipe_eq_i_rk.test, declare_mo_pipe_i_rk.test,
     declare_mo_plus_eq_i_rk.test, declare_mo_plus_i_k.test,
     declare_mo_slash_eq_i_rk.test, declare_mo_star_eq_i_rk.test,
     declare_mo_star_i_rk.test, declare_mo_star_rk.test,
     declare_mo_tilde_k.test, declare_n.test, declare_nfi_v-01-c++.test,
     declare_nfi_v-01.test, declare_nfi_v-02-c++.test, declare_nfi_v-02.test,
     declare_nfi_v-03-c++.test, declare_nfi_v-03.test, declare_ni.test,
     declare_nmo_amper2_2rck_b.test, declare_nmo_amper_eq_rki_rk.test,
     declare_nmo_amper_i_i.test, declare_nmo_amper_rcki_k.test,
     declare_nmo_amper_rk_pk.test, declare_nmo_arrow_rk_pk.test,
     declare_nmo_arrow_star_rki_rk.test, declare_nmo_brackets_rcki_v.test,
     declare_nmo_circ_rcki_k.test, declare_nmo_comma_rki_rk.test,
     declare_nmo_eq_rki_rk.test, declare_nmo_exclam_eq_ki_b.test,
     declare_nmo_exclam_rck_b.test, declare_nmo_greater2_rcki_k.test,
     declare_nmo_greater_eq_rcki_b.test, declare_nmo_greater_rcki_b.test,
     declare_nmo_less2_eq_rki_rk.test, declare_nmo_less2_rcki_k.test,
     declare_nmo_less_eq_rcki_b.test, declare_nmo_less_rcki_b.test,
     declare_nmo_minus2_rki_rk.test, declare_nmo_minus_eq_rki_rk.test,
     declare_nmo_minus_rcki_k.test, declare_nmo_parens_rck_v.test,
     declare_nmo_percent_eq_rki_rk.test, declare_nmo_percent_rcki_k.test,
     declare_nmo_pipe2_2rck_b.test, declare_nmo_pipe_eq_rki_rk.test,
     declare_nmo_plus2_rki_rk.test, declare_nmo_plus_eq_rki_rk.test,
     declare_nmo_plus_rcki_k.test, declare_nmo_slash_eq_rki_rk.test,
     declare_nmo_slash_rcki_k.test, declare_nmo_star_eq_rki_rk.test,
     declare_nmo_star_rck_k.test, declare_nmo_star_rcki_k.test,
     declare_nmo_tilde_rck_k.test, declare_o_amper2_2rck_b.test,
     declare_o_amper2_rck_b.test, declare_o_amper_2rck_k.test,
     declare_o_amper_eq_i_rk.test, declare_o_amper_eq_rki_rk.test,
     declare_o_amper_i_rk.test, declare_o_amper_pk.test,
     declare_o_amper_rcki_k.test, declare_o_arrow_i.test,
     declare_o_arrow_rk_pk.test, declare_o_arrow_star_i_rk.test,
     declare_o_arrow_star_rki_rk.test, declare_o_brackets_2i_i.test,
     declare_o_circ_eq_i_rk.test, declare_o_colon2_rk_rk.test,
     declare_o_comma_rki_rk.test, declare_o_dot_k.test,
     declare_o_dot_star_rk_rk.test, declare_o_eq_i_b.test,
     declare_o_eq_ki_b.test, declare_o_exclam_2i.test, declare_o_exclam_b.test,
     declare_o_exclam_eq_i_b.test, declare_o_exclam_eq_ki_b.test,
     declare_o_exclam_rck_b.test, declare_o_greater2_eq_i_rk.test,
     declare_o_greater2_i_k.test, declare_o_greater2_rcki_k.test,
     declare_o_greater_eq_rcki_b.test, declare_o_less2_eq_i_rk.test,
     declare_o_less2_i_k.test, declare_o_less2_rcki_k.test,
     declare_o_less_eq_rcki_b.test, declare_o_minus2_d_rk.test,
     declare_o_minus2_rkd_rk.test, declare_o_minus_i_k.test,
     declare_o_minus_ie_i.test, declare_o_oexclam_k_b.test,
     declare_o_parens_2i_v.test, declare_o_parens_3i_v.test,
     declare_o_parens_i_v.test, declare_o_parens_v.test,
     declare_o_percent_eq_i_rk.test, declare_o_percent_eq_rki_rk.test,
     declare_o_percent_i_k.test, declare_o_percent_rcki_k.test,
     declare_o_pipe2_2rck_b.test, declare_o_pipe2_rck_b.test,
     declare_o_pipe_eq_i_rk.test, declare_o_pipe_eq_rki_rk.test,
     declare_o_pipe_i_rk.test, declare_o_plus2_d_rk.test,
     declare_o_plus2_rkd_rk.test, declare_o_plus_i_k.test,
     declare_o_plus_ie_i.test, declare_o_qmark_colon_k2i_i.test,
     declare_o_slash_eq_i_rk.test, declare_o_star_eq_i_rk.test,
     declare_o_star_eq_rki_rk.test, declare_o_star_i_rk.test,
     declare_o_star_rck_k.test, declare_o_star_rcki_k.test,
     declare_o_star_rk.test, declare_o_tilde_k.test,
     declare_o_tilde_rck_k.test, declare_oyf.test, declare_pa3cpa5i.test,
     declare_pa3pa5i.test, declare_pa9i.test, declare_pai-01.test,
     declare_pbv_pi.test, declare_pcpi.test, declare_pfv_pi.test,
     declare_pfv_ri.test, declare_pfx_i.test, declare_pi.test, declare_pk.test,
     declare_pmci.test, declare_pmf_i.test, declare_pmf_pc.test,
     declare_pmi.test, declare_pmri.test, declare_ppi.test, declare_pri.test,
     declare_pv-knr.test, declare_ra3i.test, declare_rci.test,
     declare_rcpi.test, declare_ref.test, declare_rf_v-01.test,
     declare_rf_v-c.test, declare_rf_v.test, declare_rgi.test, declare_ri.test,
     declare_ro_exclam_k_b.test, declare_rpi.test, declare_rrf_v.test,
     declare_rro_exclam_k_b.test, declare_rv.test, declare_sa2i.test,
     declare_sb.test, declare_sc-knr.test, declare_sc.test, declare_sc16.test,
     declare_sc32.test, declare_sf_v.test, declare_si-knr.test,
     declare_si.test, declare_sif_v.test, declare_sl-knr.test,
     declare_sll.test, declare_smi.test, declare_sv.test, declare_sw.test,
     declare_sxi.test, declare_t.test, declare_tf_i-01.test,
     declare_tf_i-02.test, declare_ti.test, declare_tpfc_i.test,
     declare_type.test, declare_u.test, declare_ub.test, declare_uc.test,
     declare_uc16.test, declare_uc32.test, declare_ud.test, declare_uf.test,
     declare_uf_v-01.test, declare_uf_v-02.test, declare_ui-01.test,
     declare_ui-02.test, declare_ui.test, declare_ull.test, declare_uv.test,
     declare_uw.test, declare_uz.test, declare_v.test, declare_vcpi.test,
     declare_vf_v-c.test, declare_vf_v.test, declare_vi-knr.test,
     declare_vo_exclam_k_b.test, declare_voyf.test, declare_vpi.test,
     declare_vri.test, declare_w-c89.test, declare_w.test, declare_xf.test,
     declare_xi-c.test, declare_xi.test, declare_yf.test,
     declare_yo_exclam_k_b.test, declare_z.test, declare_zd.test,
     declare_zf.test, declare_zz.test, define_ai.test,
     define_c_int_least32_t.test, define_ei.test, define_gi.test,
     define_i.test, define_i_declare_i.test, define_i_explain_i.test,
     define_i_int_least32_t.test, define_si.test, dynamic_cast_pc-c.test,
     dynamic_cast_pc.test, explain_0f_v-01.test, explain_0f_v-02.test,
     explain_0f_v-c.test, explain_0o_amper_rk_pk.test,
     explain_0o_minus2_i_rk.test, explain_0o_minus_rk_rk.test,
     explain_0o_plus2_i_rk.test, explain_0o_plus_rk_rk.test,
     explain_0o_star_rk_rk.test, explain_a.test, explain_a012i.test,
     explain_a0b10i.test, explain_a0xAi-01.test, explain_a0xai-02.test,
     explain_a3a5a7i.test, explain_a3a5i.test, explain_a3a5pfv_i.test,
     explain_a3a5pfv_pi.test, explain_a3a5pfv_ppa7a9i.test,
     explain_a3a5pfv_ppa7a9pc.test, explain_a3a5pfv_ppa7i.test,
     explain_a3a5pfv_ppa7pi.test, explain_a3a5pfv_ppi.test,
     explain_a3pfv_i.test, explain_a3ppfv_i.test, explain_a9cpi.test,
     explain_a9i.test, explain_a9pi.test, explain_ac9i.test, explain_af.test,
     explain_ai-01.test, explain_ai-02.test, explain_ai-c++11.test,
     explain_ai.test, explain_api-01.test, explain_api-02.test,
     explain_as9i.test, explain_b-c89.test, explain_b.test, explain_b_ai.test,
     explain_bii_d.test, explain_c-c.test, explain_c.test,
     explain_c16-c++03.test, explain_c16-c99.test, explain_c32-c++03.test,
     explain_c32-c99.test, explain_cast_a3a5a7i.test, explain_cast_a3a5i.test,
     explain_cast_a3i.test, explain_cast_ai.test, explain_cast_ci.test,
     explain_cast_cpa3cpa5i.test, explain_cast_cpa3pa5i.test,
     explain_cast_cpa9ci.test, explain_cast_cpa9i.test,
     explain_cast_cpbv_pi.test, explain_cast_cpcpi.test,
     explain_cast_cpfv_pi.test, explain_cast_cpi.test, explain_cast_cppi.test,
     explain_cast_cvpi.test, explain_cast_ei.test, explain_cast_gi.test,
     explain_cast_ic.test, explain_cast_ll.test, explain_cast_lll.test,
     explain_cast_pa3a5i.test, explain_cast_pa3cpa5i.test,
     explain_cast_pa3pa5i.test, explain_cast_pa9i.test,
     explain_cast_pbv_pi.test, explain_cast_pci.test, explain_cast_pcpi.test,
     explain_cast_pf_i.test, explain_cast_pfpci_i.test,
     explain_cast_pfpi_i.test, explain_cast_pfv_pi.test, explain_cast_pi.test,
     explain_cast_pic.test, explain_cast_pmi.test, explain_cast_ppi.test,
     explain_cast_ri.test, explain_cast_rpi.test, explain_cast_si.test,
     explain_cast_ti.test, explain_cast_ull.test, explain_cast_vcpi.test,
     explain_cast_vpi.test, explain_cdfcdi_i.test, explain_cdfi_i.test,
     explain_cdi.test, explain_cf_v-c.test, explain_cf_v.test,
     explain_ci-knr.test, explain_ci.test, explain_ck.test,
     explain_co_amper_rk_pk.test, explain_co_exclam_k_b.test,
     explain_co_minus2_i_rk.test, explain_co_minus_rk_rk.test,
     explain_co_plus2_i_rk.test, explain_co_plus_rk_rk.test,
     explain_co_star_rk_rk.test, explain_co_tilde_k.test,
     explain_config_u.test, explain_const_cast_pi-c.test,
     explain_const_cast_pi.test, explain_cpa3cpa5i.test, explain_cpa3pa5i.test,
     explain_cpa9ci.test, explain_cpa9i.test, explain_cpbv_pi.test,
     explain_cpcpi.test, explain_cpfv_pi.test, explain_cpi.test,
     explain_cpmci.test, explain_cpmi.test, explain_cppi.test,
     explain_crf_v.test, explain_cs.test, explain_cu.test, explain_cvf_v.test,
     explain_cvpi.test, explain_df_v.test, explain_di.test,
     explain_dui-01.test, explain_dui-02.test, explain_dynamic_cast_pc-c.test,
     explain_dynamic_cast_pc.test, explain_e-knr.test, explain_e.test,
     explain_ea2i.test, explain_ec.test, explain_ek.test, explain_esf_v.test,
     explain_f__pf__v.test, explain_f__pv.test, explain_f__v-c++03.test,
     explain_f__v.test, explain_f_ai.test, explain_f_cpmi.test,
     explain_f_pi.test, explain_f_pmi.test, explain_f_v__v.test,
     explain_fa_v.test, explain_fac3_v-c++.test, explain_fac_v.test,
     explain_facs3_v.test, explain_facv_v.test, explain_fas3_v-c++.test,
     explain_fas3_v.test, explain_fasc3_v.test, explain_fasv_v.test,
     explain_fav_v-c++.test, explain_fav_v.test, explain_fcce_v.test,
     explain_fcdi_i.test, explain_fdi_v.test, explain_fe_v.test,
     explain_fecc_v.test, explain_fee_v.test, explain_fev_v.test,
     explain_ff_v-c.test, explain_ff_v.test, explain_fg_v-c89.test,
     explain_fg_v.test, explain_fgi_v.test, explain_fid_v.test,
     explain_fiiv_v.test, explain_fipfi_v_pfi_v.test, explain_fiv_v.test,
     explain_fixiy_v.test, explain_fn.test, explain_fpc_pi.test,
     explain_fpci_pi.test, explain_fpfc_i_d.test, explain_frri_v-c++03.test,
     explain_frri_v.test, explain_fsf_v.test, explain_fsi_v.test,
     explain_fti_v.test, explain_fui_v.test, explain_fv_pa3a5i.test,
     explain_fv_pa3a5pi.test, explain_fv_pa3i.test, explain_fv_pa3pi.test,
     explain_fv_pi.test, explain_fv_v.test, explain_fve_v.test,
     explain_fvi_v.test, explain_fvv_v.test, explain_fvx_v.test,
     explain_fx_pi.test, explain_fx_v.test, explain_gf_v.test, explain_gi.test,
     explain_gk.test, explain_hb.test, explain_hc.test, explain_hc16.test,
     explain_hc32.test, explain_hd.test, explain_hf.test, explain_hl.test,
     explain_hll.test, explain_hv.test, explain_hw.test, explain_ic.test,
     explain_if_v.test, explain_ig.test, explain_ii-c++.test, explain_ii.test,
     explain_is.test, explain_it.test, explain_k.test, explain_kc.test,
     explain_keywords.test, explain_lb.test, explain_lc.test,
     explain_lc16.test, explain_lc32.test, explain_ld-knr.test,
     explain_ld.test, explain_lf-c.test, explain_lf.test, explain_ll-c89.test,
     explain_ll-knr.test, explain_ll.test, explain_lll.test, explain_lv.test,
     explain_lw.test, explain_md.test, explain_mf.test, explain_mi.test,
     explain_n.test, explain_nfi_c.test, explain_nfi_v-c++.test,
     explain_nfi_v.test, explain_ni.test, explain_o_amper2_2rck_b.test,
     explain_o_amper2_rck_b.test, explain_o_amper_2rck_k.test,
     explain_o_amper_eq_i_rk.test, explain_o_amper_eq_rki_rk.test,
     explain_o_amper_i_i.test, explain_o_amper_i_rk.test,
     explain_o_amper_pk.test, explain_o_amper_rcki_k.test,
     explain_o_amper_rk_pk.test, explain_o_arrow_i.test,
     explain_o_arrow_pk.test, explain_o_arrow_star_i_rk.test,
     explain_o_arrow_star_rki_rk.test, explain_o_brackets_2i_i.test,
     explain_o_brackets_i_i.test, explain_o_circ_eq_i_rk.test,
     explain_o_circ_eq_rki_rk.test, explain_o_circ_rcki_k.test,
     explain_o_comma_i_rk.test, explain_o_comma_rcki_k.test,
     explain_o_comma_rki_rk.test, explain_o_eq_i_b.test,
     explain_o_eq_ki_b.test, explain_o_exclam_2i.test, explain_o_exclam_b.test,
     explain_o_exclam_eq_i_b.test, explain_o_exclam_eq_ki_b.test,
     explain_o_exclam_rck_b.test, explain_o_greater2_eq_i_rk.test,
     explain_o_greater2_eq_rki_rk.test, explain_o_greater2_i_k.test,
     explain_o_greater2_i_rk.test, explain_o_greater2_rcki_k.test,
     explain_o_greater2_rki_rk.test, explain_o_greater_eq_rcki_b.test,
     explain_o_greater_rcki_b.test, explain_o_less2_eq_i_rk.test,
     explain_o_less2_eq_rki_rk.test, explain_o_less2_i_k.test,
     explain_o_less2_i_rk.test, explain_o_less2_rcki_k.test,
     explain_o_less2_rki_rk.test, explain_o_less_eq_rcki_b.test,
     explain_o_less_rcki_b.test, explain_o_minus2_d_rk.test,
     explain_o_minus2_rkd_rk.test, explain_o_minus2_rki_rk.test,
     explain_o_minus_2rck_k.test, explain_o_minus_eq_i_rk.test,
     explain_o_minus_eq_rki_rk.test, explain_o_minus_i_k.test,
     explain_o_minus_ie_i.test, explain_o_minus_rcki_k.test,
     explain_o_oexclam_k_b.test, explain_o_parens_2i_v.test,
     explain_o_parens_3i_v.test, explain_o_parens_i_v.test,
     explain_o_parens_v.test, explain_o_percent_2rck_k.test,
     explain_o_percent_eq_i_rk.test, explain_o_percent_eq_rki_rk.test,
     explain_o_percent_i_k.test, explain_o_percent_rcki_k.test,
     explain_o_pipe2_2rck_b.test, explain_o_pipe2_rck_b.test,
     explain_o_pipe_2rck_k.test, explain_o_pipe_eq_i_rk.test,
     explain_o_pipe_eq_rki_rk.test, explain_o_pipe_i_rk.test,
     explain_o_plus2_d_rk.test, explain_o_plus2_rkd_rk.test,
     explain_o_plus2_rki_rk.test, explain_o_plus_2rck_k.test,
     explain_o_plus_eq_i_rk.test, explain_o_plus_eq_rki_rk.test,
     explain_o_plus_i_k.test, explain_o_plus_ie_i.test,
     explain_o_plus_rcki_k.test, explain_o_qmark_colon_k2i_i.test,
     explain_o_slash_2rck_k.test, explain_o_slash_eq_i_rk.test,
     explain_o_slash_eq_rki_rk.test, explain_o_slash_rcki_k.test,
     explain_o_star_2rck_k.test, explain_o_star_eq_i_rk.test,
     explain_o_star_eq_rki_rk.test, explain_o_star_i_rk.test,
     explain_o_star_rck_k.test, explain_o_star_rcki_k.test,
     explain_o_star_rk.test, explain_o_tilde_k.test,
     explain_o_tilde_rck_k.test, explain_oi.test, explain_oo_amper_rk_pk.test,
     explain_oo_minus2_i_rk.test, explain_oo_minus_rk_rk.test,
     explain_oo_plus2_i_rk.test, explain_oo_plus_rk_rk.test,
     explain_oo_star_rk_rk.test, explain_oyf.test, explain_pa3a5i.test,
     explain_pa3cpa5i.test, explain_pa3pa5i.test, explain_pa9i.test,
     explain_pai-01.test, explain_pai-02.test, explain_pbv_pi.test,
     explain_pcpi.test, explain_pfv_pi.test, explain_pi.test,
     explain_pmf_i.test, explain_pmf_pc.test, explain_pmfii_pk.test,
     explain_pmgi.test, explain_pmi-c.test, explain_pmi.test,
     explain_pmri.test, explain_ppi.test, explain_pri.test, explain_prri.test,
     explain_pv-knr.test, explain_ra3i.test,
     explain_reinterpret_cast_pv-c.test, explain_reinterpret_cast_pv.test,
     explain_rf_v-01.test, explain_rf_v-c++03.test, explain_rf_v.test,
     explain_rgi.test, explain_ri-c.test, explain_ri.test,
     explain_ro_amper_rk_pk.test, explain_ro_exclam_k_b.test,
     explain_ro_minus2_i_rk.test, explain_ro_minus_rk_rk.test,
     explain_ro_plus2_i_rk.test, explain_ro_plus_rk_rk.test,
     explain_ro_star_rk_rk.test, explain_rpi.test, explain_rrf_v-c++03.test,
     explain_rrf_v.test, explain_rro_amper_rk_pk.test,
     explain_rro_exclam_k_b.test, explain_rro_minus2_i_rk.test,
     explain_rro_minus_rk_rk.test, explain_rro_plus2_i_rk.test,
     explain_rro_plus_rk_rk.test, explain_rro_star_rk_rk.test, explain_rv.test,
     explain_sa2i.test, explain_sb.test, explain_sc-knr.test, explain_sc.test,
     explain_sc16.test, explain_sc32.test, explain_sf_v.test,
     explain_si-knr.test, explain_si.test, explain_sl-knr.test,
     explain_smi.test, explain_srf_v.test, explain_srrf_v.test,
     explain_static_cast_i-c.test, explain_static_cast_i.test, explain_sv.test,
     explain_sw.test, explain_sxi.test, explain_tf_v.test, explain_ti.test,
     explain_tpfc_i.test, explain_type_i.test, explain_ub.test,
     explain_uc.test, explain_uc16.test, explain_uc32.test, explain_ud.test,
     explain_uf.test, explain_uf_v.test, explain_ui.test, explain_ull.test,
     explain_unknown_attribute.test, explain_using_a3i.test,
     explain_using_pfi_v-c.test, explain_using_pfi_v.test, explain_uv.test,
     explain_uw.test, explain_v.test, explain_vcpi.test, explain_vf_v-c.test,
     explain_vf_v.test, explain_vi-knr.test, explain_vo_amper_rk_pk.test,
     explain_vo_exclam_k_b.test, explain_vo_minus2_i_rk.test,
     explain_vo_minus_rk_rk.test, explain_vo_plus2_i_rk.test,
     explain_vo_plus_rk_rk.test, explain_vo_star_rk_rk.test,
     explain_voyf-c.test, explain_voyf.test, explain_vpi.test,
     explain_w-c89.test, explain_w.test, explain_xf_v.test, explain_xff_v.test,
     explain_xi-c.test, explain_xi.test, explain_xtf_v.test, explain_yf.test,
     explain_yo_amper_rk_pk.test, explain_yo_exclam_k_b.test,
     explain_yo_minus2_i_rk.test, explain_yo_minus_rk_rk.test,
     explain_yo_plus2_i_rk.test, explain_yo_plus_rk_rk.test,
     explain_yo_star_rk_rk.test, explain_z.test, explain_zd.test,
     explain_zf.test, explain_zz.test, file-cast_i.test, file-cast_x.test,
     file-declare_i.test, file-declare_x.test, file-explain_i.test,
     file-explain_x.test, help-c++.test, help-c.test,
     reinterpret_cast_pv-c.test, reinterpret_cast_pv.test, set.test,
     set_c++.test, set_c++03.test, set_c++11.test, set_c++98.test, set_c.test,
     set_c11.test, set_c89.test, set_c99.test, set_cknr.test, set_debug.test,
     set_knr.test, set_knrc.test, set_nodebug.test, set_noprompt.test,
     set_nosemicolon.test, set_noyydebug.test, set_options.test,
     set_prompt.test, set_semicolon.test, set_yydebug.test, show_all.test,
     show_all_typedef.test, show_foo.test, show_int8_t.test,
     show_int8_t_typedef.test, show_predefined.test,
     show_predefined_typedef.test, show_user.test, show_user_typedef.test,
     static_cast_i-c.test, static_cast_i.test, typedef_ai.test,
     typedef_c_int_least32_t.test, typedef_ei.test, typedef_fi_v_show_f.test,
     typedef_gi.test, typedef_i.test, typedef_i_declare_i.test,
     typedef_i_explain_i.test, typedef_i_int_least32_t.test, typedef_si.test,
     using_ai.test, using_c_int_least32_t.test, using_config_i.test,
     using_ei.test, using_fi_v_show_f.test, using_gi.test, using_i-c.test,
     using_i.test, using_i_declare_i.test, using_i_explain_i.test,
     using_i_int_least32_t.test, using_si.test: Added all C/C++ keywords. Now
     supporting C++ overloaded operators. Fixed const/volatile reference. Added
     member/non-member to functions. Fixed friend
     const/volatile/override/final/virtual/reference functions.

2018-11-21  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Combined pointer_decl_english and pointer_to_member_decl_english
     to produce better error messages.
   * configure.ac, c_keyword.c, c_keyword.h, c_lang.c, c_lang.h, cdecl.c,
     errors.c, lexer.l, literals.c, literals.h, parser.y, test/Makefile.am,
     declare_pk.test: Added all remaining C/C++ keywords.

2018-11-19  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Fixed use of lang.

2018-11-18  Paul J. Lucas <paul@lucasmail.org>

   * options.c: Now using strcpy_end() more.

2018-11-17  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, errors.c, test/Makefile.am, declare_cri.test,
     declare_vri.test: Fixed const/volatile reference.

2018-11-01  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h, c_keyword.h, c_type.h,
     debug.c, debug.h, english.c, errors.c, gibberish.c, lexer.l, parser.y:
     s/type/type_id/
   * c_ast.h, c_ast_util.c, c_ast_util.h, c_keyword.h, c_type.c, c_type.h,
     debug.c, debug.h, english.c, errors.c, gibberish.c, parser.y: Type
     renaming.
   * c_lang.c, c_lang.h, options.c, parser.y, typedefs.h: Type renaming.
   * autocomplete.c, c_keyword.h, c_lang.c, c_lang.h, c_type.c, c_type.h,
     c_typedef.c, errors.c, options.c, options.h, set.c:
     s/c_lang_t/c_lang_id_t/

2018-10-26  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c: Now ultimately always calling parse_string() to fix assert
     failure in diagnostics.c when there's an error in a command with a ';'.

2018-10-16  Paul J. Lucas <paul@lucasmail.org>

   * README-blocks.txt: Added "(and later)".

2018-10-15  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.c, errors.c, gibberish.c: More explicit bitwise expressions.

2018-10-10  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, lexer.l: Fixed printing of ^.
   * cdecl.1: s/given/shown/

2018-10-08  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Removed L_TYPES.
   * configure.ac, cdecl.1, help.c, literals.c, literals.h, parser.y,
     test/Makefile.am, help-c++.out, help-c.out, show_all_typedef.out,
     show_int8_t_typedef.out, show_predefined_typedef.out,
     show_user_typedef.out, show_all.test, show_all_typedef.test,
     show_int8_t_typedef.test, show_predefined.test,
     show_predefined_typedef.test, show_user.test, show_user_typedef.test: Can
     now show types in gibberish.

2018-09-11  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, cdecl.1, c_typedef.c, cdecl--debug.out, cdecl-d.out,
     show_all_types.out, show_predefined_types.out: Added more predefined
     types.

2018-08-27  Paul J. Lucas <paul@lucasmail.org>

   * color.c, color.h: Made COLORS_DEFAULT a C constant.

2018-08-16  Paul J. Lucas <paul@lucasmail.org>

   * c_typedef.c: Suppressing warning when asserts not compiled in.
   * cdecl.1: s/eithter/either/

2018-08-12  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, unistd.in.h, warn-on-use.h, extern-inline.m4,
     gnulib-cache.m4, gnulib-common.m4, warn-on-use.m4: Updated Gnulib.

2018-07-03  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am: Added --report=all option.

2018-07-02  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Don't need DUMP_NAME() in typedef_type_ast_c.
   * cdecl.1: Added "using" to what is supported for C++11.
   * src/Makefile.am: Added rule to make parser.output.

2018-07-01  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, parser.y, test/Makefile.am, cdecl--debug.out, cdecl-d.out,
     explain_fac_v.out, explain_using_a3i.out, explain_fac_v.test,
     explain_using_a3i.test: Fixed parsing of unnamed function array arguments,
     e.g., void f(char[]).
   * parser.y: Fixed arg_list_c debug printing for arc_c.
   * parser.y: Additional use of c_ast_set_name().
   * parser.y: show NAME now includes "using" when C++11 or later.
   * parser.y: Fixed keyword order in error message when defining an existing
     type name with a different type.
   * parser.y: Made comments for parser_cleanup() and parse_cleanup() more
     explicit.

2018-06-30  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, parser.y, test/Makefile.am, explain_using_pfi_v.out,
     explain_using_pfi_v-c.test, explain_using_pfi_v.test: Added support for
     explaining C++11's using declarations.
   * explain_it.test: Fixed test.
   * errors.c, parser.y: Put keywords in quotes in error messages.
   * cdecl.1: Now using .BR more consistently.
   * errors.c, parser.y: Now using "not supported in" rather than "illegal in".
   * c_lang.h, errors.c, parser.y, set.c: Added C_LANG_NAME().
   * c_ast.c, c_ast.h, c_ast_util.c, c_typedef.c, c_typedef.h, debug.c,
     english.c, gibberish.c, parser.y: Removed c_typedef::type_name -- not
     needed.

2018-06-29  Paul J. Lucas <paul@lucasmail.org>

   * AUTHORS, configure.ac, cdecl.1, autocomplete.c, c_ast_util.c, c_keyword.c,
     cdecl.c, help.c, literals.c, literals.h, misc.h, parser.y, typedefs.h,
     test/Makefile.am, config_using_i.cdeclrc, help-c++.out, help-c.out,
     using_config_i.out, using_fi_v_show_f.out, using_i.out,
     using_i_declare_i.out, using_i_explain_i.out, using_i_int_least32_t.out,
     using_ai.test, using_c_int_least32_t.test, using_config_i.test,
     using_ei.test, using_fi_v_show_f.test, using_gi.test, using_i-c.test,
     using_i.test, using_i_declare_i.test, using_i_explain_i.test,
     using_i_int_least32_t.test, using_si.test: Added support for C++11 using
     declarations.

2018-05-19  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, arg-nonnull.h, c++defs.h, errno.in.h, getdelim.c,
     getline.c, getopt-cdefs.in.h, getopt-core.h, getopt-ext.h,
     getopt-pfx-core.h, getopt-pfx-ext.h, getopt.c, getopt.in.h, getopt1.c,
     getopt_int.h, gettext.h, limits.in.h, stdarg.in.h, stdbool.in.h,
     stddef.in.h, stdint.in.h, stdio.in.h, stdlib.in.h, string.in.h, strsep.c,
     sys_types.in.h, sysexits.in.h, unistd.in.h, warn-on-use.h, 00gnulib.m4,
     absolute-header.m4, errno_h.m4, extensions.m4, extern-inline.m4,
     getdelim.m4, getline.m4, getopt.m4, gnulib-cache.m4, gnulib-common.m4,
     gnulib-comp.m4, gnulib-tool.m4, include_next.m4, limits-h.m4, longlong.m4,
     multiarch.m4, nocrash.m4, off_t.m4, onceonly.m4, ssize_t.m4, stdarg.m4,
     stdbool.m4, stddef_h.m4, stdint.m4, stdio_h.m4, stdlib_h.m4, string_h.m4,
     strsep.m4, sys_types_h.m4, sysexits.m4, unistd_h.m4, warn-on-use.m4,
     wchar_t.m4, wint_t.m4: Updated GNUlib.

2018-04-07  Paul J. Lucas <paul@lucasmail.org>

   * run_test.sh: Made color output match standard test-driver.

2018-03-21  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Replaced non-bool use of ! with explicit checks.

2018-03-18  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Changed version to 4.4.3.

2018-03-12  Paul J. Lucas <paul@lucasmail.org>

   * red_black.c: RB_BLACK is now int 0.
   * red_black.c: Now initializing node->parent to NIL.

2018-02-13  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Added explicit != NULL.

2018-01-31  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, diagnostics.c, util.c, util.h:
     s/WITH_TERM_COLUMNS/ENABLE_TERM_COLUMNS/

2018-01-25  Paul J. Lucas <paul@lucasmail.org>

   * util.c: Added explicit != NULL.

2018-01-22  Paul J. Lucas <paul@lucasmail.org>

   * c_ast_util.h: Fixed comment.

2018-01-18  Paul J. Lucas <paul@lucasmail.org>

   * slist.c: Now actually deleting nodes in slist_free().

2017-11-24  Paul J. Lucas <paul@lucasmail.org>

   * options.c: Added != NULL.
   * util.c: Removed blank line.

2017-11-22  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Made referencing commands consistently bold.

2017-11-11  Paul J. Lucas <paul@lucasmail.org>

   * ax_append_flag.m4, ax_check_compile_flag.m4: Updated ax M$ macros.

2017-11-08  Paul J. Lucas <paul@lucasmail.org>

   * Doxyfile: Made parser.[ch] order consistent with literals.[ch].

2017-11-07  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Now properly freeing qualifier_stack.
   * util.c: Now using slist for free_later().

2017-11-04  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, parser.y, test/Makefile.am, declare_fn.test,
     explain_fn.test: Fixed declare of function with an invalid argument.
   * src/Makefile.am, c_ast.c, c_ast.h, debug.c, debug.h, english.c, errors.c,
     gibberish.c, parser.y, slist.c, slist.h, typedefs.h, util.c, util.h: Now
     using separate singly-linked-list code.

2017-10-30  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, parser.y, typedefs.h: Added c_ast_depth_t.

2017-10-29  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: s/0/T_NONE/
   * parser.y: Removed redundant IF_DEBUG from DUMP_COMMA.
   * color.h: Added != NULL.
   * c_ast.c, util.h: s/PTR_TO_OFFSET/PTR_OFFSET/
   * util.h: Fixed PTR_TO_OFFSET.
   * configure.ac: Updated version to 4.4.1.
   * parser.y: Now dumping final type in define_english.
   * c_ast.c, c_ast.h, c_typedef.c, cdecl.c, parser.y, util.h,
     test/Makefile.am, typedef_fi_v_show_f.out, typedef_fi_v_show_f.test: Fixed
     typedef-pointer-to-function; reworked c_ast memory management.

2017-10-27  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added CONFIGUATION FILE section.
   * lexer.l: Removed extraneous '*'.
   * lexer.l: Added hyphenated_find().

2017-10-25  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, cdecl.c, color.c, util.c: Added more likely/unlikely.
   * debug.c, misc.h: Moved DEBUG_INDENT.
   * c_ast_util.c, c_ast_util.h, c_kind.c, c_kind.h, c_lang.h, c_type.h: Misc.
     clean-up.

2017-10-21  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h, typedefs.h: Moved c_ast_id_t.
   * c_ast.h: Fixed @param.
   * autocomplete.c: Added missing options to autocomplete.
   * autocomplete.c: Whitespace changes.
   * c_type.c: Added missing @param.
   * AUTHORS, configure.ac, cdecl.1, autocomplete.c, c_ast_util.c, c_keyword.c,
     c_keyword.h, c_type.c, c_type.h, errors.c, lexer.l, literals.c,
     literals.h, parser.y, typedefs.h, util.c, util.h, test/Makefile.am,
     declare_cdfcdi_i.out, declare_cdfi_i.out, declare_df_v.out,
     declare_dui.out, declare_fcdi_i.out, declare_fdi_v.out,
     declare_fti_v-01.out, declare_fti_v-02.out, declare_fui_v-01.out,
     declare_fui_v-02.out, declare_nfi_v-02-c++.out, declare_nfi_v-03-c++.out,
     declare_nfi_v-03.out, declare_tf_i-01.out, declare_tf_i-02.out,
     declare_uf_v-01.out, declare_uf_v-02.out, declare_ui-01.out,
     declare_ui-02.out, explain_cdfcdi_i.out, explain_cdfi_i.out,
     explain_df_v.out, explain_di.out, explain_dui-01.out, explain_dui-02.out,
     explain_fcdi_i.out, explain_fdi_v.out, explain_fti_v.out,
     explain_fui_v.out, explain_uf_v.out, explain_ui.out,
     explain_unknown_attribute.out, declare_cdfcdi_i.test, declare_cdfi_i.test,
     declare_cdi.test, declare_df_v.test, declare_dui.test,
     declare_fcdi_i.test, declare_fdi_v.test, declare_fti_v-01.test,
     declare_fti_v-02.test, declare_fui_v-01.test, declare_fui_v-02.test,
     declare_nfi_v-01-c++.test, declare_nfi_v-01.test,
     declare_nfi_v-02-c++.test, declare_nfi_v-02.test,
     declare_nfi_v-03-c++.test, declare_nfi_v-03.test, declare_tf_i-01.test,
     declare_tf_i-02.test, declare_uf_v-01.test, declare_uf_v-02.test,
     declare_ui-01.test, declare_ui-02.test, explain_cdfcdi_i.test,
     explain_cdfi_i.test, explain_cdi.test, explain_df_v.test, explain_di.test,
     explain_dui-01.test, explain_dui-02.test, explain_fcdi_i.test,
     explain_fdi_v.test, explain_fti_v.test, explain_fui_v.test,
     explain_uf_v.test, explain_ui.test, explain_unknown_attribute.test: Added
     support for C++ attributes.

2017-10-15  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Added comments.
   * lexer.l, parser.y: Minor token renaming.
   * cdecl.1, c_keyword.c, c_type.c, lexer.l, literals.c, literals.h, parser.y,
     declare_nfi_v-01.out, declare_nfi_v-02.out: Switch to _Noreturn being
     primary.
   * AUTHORS: Added new features.

2017-10-14  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Updated to 4.3.
   * cdecl.1, autocomplete.c, c_keyword.c, c_type.c, c_type.h, lexer.l,
     literals.c, literals.h, parser.y, test/Makefile.am, declare_md.out,
     declare_mf.out, explain_md.out, explain_mf.out, declare_md.test,
     declare_mf.test, explain_md.test, explain_mf.test: Added C99 _Imaginary
     support.
   * cdecl.1, c_keyword.c, c_type.c, lexer.l, literals.c, literals.h, parser.y,
     declare_zd.out, declare_zf.out: Changed complex to _Complex.
   * explain_a.out, explain_a9cpi.out, explain_ai-01.out, explain_ai-02.out,
     explain_ai.out, explain_api-01.out, explain_api-02.out,
     explain_cast_ci.out, explain_cast_cpa3cpa5i.out,
     explain_cast_cpa3pa5i.out, explain_cast_cpa9ci.out,
     explain_cast_cpa9i.out, explain_cast_cpbv_pi.out, explain_cast_cpcpi.out,
     explain_cast_cpfv_pi.out, explain_cast_cpi.out, explain_cast_cppi.out,
     explain_cast_cvpi.out, explain_cast_ic.out, explain_cast_pa3cpa5i.out,
     explain_cast_pci.out, explain_cast_pcpi, explain_cast_pcpi.out,
     explain_cast_pic.out, explain_cast_rpi.out, explain_cast_vcpi.out,
     explain_cf_v.out, explain_ci.out, explain_ck.out, explain_cpa3cpa5i.out,
     explain_cpa3pa5i.out, explain_cpa9ci.out, explain_cpa9i.out,
     explain_cpbv_pi.out, explain_cpcpi.out, explain_cpfv_pi.out,
     explain_cpi.out, explain_cpmci.out, explain_cpmi.out, explain_cppi.out,
     explain_crf_v.out, explain_cu.out, explain_cvf_v.out, explain_cvpi.out,
     explain_e.out, explain_ea2i.out, explain_f_cpmi.out, explain_facs3_v.out,
     explain_facv_v.out, explain_fasc3_v.out, explain_fcce_v.out,
     explain_ic.out, explain_k.out, explain_kc.out, explain_keywords.out,
     explain_oyf.out, explain_pa3cpa5i.out, explain_pai-01.out,
     explain_pai-02.out, explain_pcpi.out, explain_pmfii_pk.out,
     explain_rpi.out, explain_vcpi.out, explain_voyf.out, explain_xf_v.out,
     explain_xtf_v.out: Updated tests for new English use.
   * c_type.c, lexer.l, literals.c, literals.h: Now using more English words in
     English.
   * cdecl.1, lexer.l, literals.c, literals.h: Added "external" as a synonym
     for "extern".
   * autocomplete.c, literals.c, literals.h: Removed vestiges of L_SIZE_T.

2017-10-13  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c, cdecl.c, prompt.c, util.c, util.h: Replaced strcpy_len() with
     strcpy_end().
   * c_type.c, c_type.h: Added L_TYPEDEF_TYPE.
   * configure.ac, cdecl.1, autocomplete.c, c_keyword.c, c_type.c, c_type.h,
     errors.c, gibberish.c, lexer.l, literals.c, literals.h, parser.y,
     test/Makefile.am, cdecl--debug.out, cdecl-d.out, declare_xf.out,
     explain_nfi_v.out, explain_tf_v.out, explain_xf_v.out, explain_xff_v.out,
     explain_xtf_v.out, declare_xf.test, explain_tf_v.test, explain_xf_v.test,
     explain_xff_v.test, explain_xtf_v.test: Added noexcept and throw()
     support.

2017-10-10  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Explicit comparison.
   * gibberish.c: More explicit comparison.
   * errors.c: Fixed whitespace.
   * lib/Makefile.am, getopt-cdefs.in.h, getopt-pfx-core.h, getopt-pfx-ext.h,
     getopt.in.h, unistd.in.h, string_h.m4, sys_types_h.m4: Updated GNUlib.
   * configure.ac: Updated version.
   * cdecl.c: Fixed handling of leading whitespace in command-line argument.
   * c_typedef.c: Minor clean-up.
   * c_type.c: Added name_cat().

2017-10-09  Paul J. Lucas <paul@lucasmail.org>

   * c_type.c: More explicit comparison in is_long_int().
   * c_ast_util.c: More explicit comparison.
   * c_ast.c: More assert()s in c_ast_equiv().
   * options.c: Split line for clarity.
   * c_type.c: Now using PRIX_C_TYPE_T for INTERNAL_ERR().
   * c_type.h, debug.c: Added PRIX_C_TYPE_T.
   * c_type.c: Removed duplicated code.
   * c_typedef.c: Added comment.
   * cdecl.1: Added caveat about predefined types' underlying types.

2017-10-08  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, test/Makefile.am, define_ai.test, define_ei.test,
     define_gi.test, define_si.test, typedef_ai.test, typedef_ei.test,
     typedef_gi.test, typedef_si.test: Fixed typedef & define with storage
     classes.
   * cdecl.c: Now resetting command-line in parse_string().
   * cdecl.c: Augmented comment.
   * c_type.h: Completed comment.

2017-10-07  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, cdecl.1, c_type.c, c_typedef.c, debug.c, debug.h, english.c,
     parser.y, cdecl--debug.out, cdecl-d.out, show_all_types.out,
     show_predefined_types.out: Added support for stdatomic types.

2017-10-06  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, c_lang.c, lexer.l, parser.y: Now allowing ck&r, k&r, and k&rc
     lang names.
   * cdecl.1: Removed size_t, ssize_t, Explicit.
   * autocomplete.c, c_ast_util.c, c_type.c, cdecl.c, errors.c, gibberish.c:
     Made type and lang comparisons more explicit.
   * c_ast_util.c, c_ast_util.h: Fixed grammar errors in comments.

2017-10-05  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h, c_keyword.c, c_keyword.h,
     c_kind.c, c_kind.h, c_lang.c, c_lang.h, c_type.c, c_type.h, c_typedef.c,
     c_typedef.h, errors.c: Fixed filenames in comments.
   * debug.c, diagnostics.c, lexer.h, lexer.l, typedefs.h: Reverted Bison
     location to int to avoid warnings.

2017-09-30  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, gibberish.c, parser.y, util.h: s/ZERO/MEM_ZERO/

2017-09-25  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.c, c_ast.h, c_ast_util.c, c_ast_util.h: Moved visitor callbacks.

2017-09-23  Paul J. Lucas <paul@lucasmail.org>

   * c_ast.h: Added explicit != NULL.

2017-09-22  Paul J. Lucas <paul@lucasmail.org>

   * red_black.c: Minor clean-up.

2017-09-21  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am: Fixed typo.
   * lib/Makefile.am, arg-nonnull.h, c++defs.h, errno.in.h, getdelim.c,
     getline.c, getopt-cdefs.in.h, getopt-core.h, getopt-ext.h,
     getopt-pfx-core.h, getopt-pfx-ext.h, getopt.c, getopt.in.h, getopt1.c,
     getopt_int.h, gettext.h, limits.in.h, stdarg.in.h, stdbool.in.h,
     stddef.in.h, stdint.in.h, stdio.in.h, stdlib.in.h, string.in.h, strsep.c,
     sys_types.in.h, sysexits.in.h, unistd.in.h, warn-on-use.h,
     extern-inline.m4, gnulib-cache.m4, gnulib-common.m4, gnulib-comp.m4,
     onceonly.m4, stdbool.m4, sys_types_h.m4: Updated gnulib.
   * src/Makefile.am, autocomplete.c, c_typedef.h, cdecl.c, debug.c, debug.h,
     diagnostics.c, diagnostics.h, english.c, errors.c, gibberish.c, help.c,
     lexer.l, options.c, options.h, parser.y, prompt.c, set.c, typedefs.h,
     util.c, util.h: Fixed build on old gcc that doesn't allow multiple
     typedefs of the same type.
   * configure.ac: Changed version to 4.0.
   * AUTHORS, cdecl.1, errors.c, lang.c, lang.h, test/Makefile.am,
     declare_ii-c++.out, explain_ii-c++.out, declare_ii-c++.test,
     declare_ii.test, explain_ii-c++.test, explain_ii.test: Added C++17
     support: inline variables.
   * errors.c: Now warning on "register" >= C++11.
   * lexer.l: Better C++ lang name handling for "set" command.
   * ast.c, gibberish.c, parser.y, util.h: Added ZERO().
   * ast.h, ast_util.h, keywords.c, lexer.l: Moved c_ast_pair to ast_util.h.

2017-09-20  Paul J. Lucas <paul@lucasmail.org>

   * AUTHORS, configure.ac, cdecl.1, src/Makefile.am, ast.c, ast.h, ast_util.c,
     autocomplete.c, cdecl.c, common.h, debug.c, diagnostics.c, english.c,
     errors.c, gibberish.c, help.c, keywords.c, kinds.c, kinds.h, lang.c,
     lang.h, lexer.h, lexer.l, literals.c, literals.h, options.c, options.h,
     parser.y, red_black.c, red_black.h, set.c, typedefs.c, typedefs.h,
     types.c, types.h, util.c, util.h, test/Makefile.am, config_u.cdeclrc,
     cdecl--debug.out, cdecl-d.out, declare_config_u.out, declare_cz.out,
     define_i.out, define_i_declare_i.out, define_i_explain_i.out,
     define_i_int_least32_t.out, explain_config_u.out, help-c++.out,
     help-c.out, show_all_types.out, show_int8_t.out,
     show_predefined_types.out, show_user_types.out, typedef_i.out,
     typedef_i_declare_i.out, typedef_i_explain_i.out,
     typedef_i_int_least32_t.out, run_test.sh, cast_a3i.test, cast_bii_d.test,
     cast_ci.test, cast_constant.test, cast_cpa3cpa5i.test, cast_cpa3pa5i.test,
     cast_cpa9ci.test, cast_cpa9i.test, cast_cpbv_pi.test, cast_cpcpi.test,
     cast_cpfv_pi.test, cast_cpi.test, cast_cppi.test, cast_cvpi.test,
     cast_f_i.test, cast_gi.test, cast_ll.test, cast_pa3cpa5i.test,
     cast_pa3pa5i.test, cast_pa9i.test, cast_pbv_pi.test, cast_pci.test,
     cast_pcpi.test, cast_pf_i-01.test, cast_pf_i-02.test, cast_pfii_i.test,
     cast_pfv_pi.test, cast_pfx_i.test, cast_pi.test, cast_pmi.test,
     cast_ppi.test, cast_sc.test, cast_si.test, cast_sll.test, cast_ti.test,
     cast_type.test, cast_u.test, cast_uc.test, cast_ui.test, cast_ull.test,
     cast_vcpi.test, cast_vpi.test, cdecl--debug.test,
     cdecl--no-semicolon.test, cdecl-d.test, cdecl-s.test, cdecl-xx.test,
     cl-cast_i.test, cl-declare_i.test, cl-explain_i.test,
     const_cast_pi-c.test, const_cast_pi.test, declare_0f_v-c.test,
     declare_0f_v.test, declare_a.test, declare_a3a5a7i.test,
     declare_a3a5i.test, declare_a3a5pfv_i.test, declare_a3a5pfv_pi.test,
     declare_a3a5pfv_ppa7a9i.test, declare_a3a5pfv_ppa7a9pc.test,
     declare_a3a5pfv_ppa7i.test, declare_a3a5pfv_ppa7pi.test,
     declare_a3a5pfv_ppi.test, declare_a3pfv_i.test, declare_a3ppfv_i.test,
     declare_a9cpi.test, declare_a9i.test, declare_a9pi.test,
     declare_ac3i.test, declare_af-c++.test, declare_af.test,
     declare_ai-01.test, declare_ai-02.test, declare_ai-c++11.test,
     declare_ai.test, declare_api-01.test, declare_as3i.test, declare_avi.test,
     declare_b-c89.test, declare_b.test, declare_b_ai.test, declare_b_f_i.test,
     declare_bii_d.test, declare_c-c.test, declare_c.test,
     declare_c16-c++03.test, declare_c16-c99.test, declare_c32-c++03.test,
     declare_c32-c99.test, declare_cf_v-c.test, declare_cf_v.test,
     declare_ci-knr.test, declare_ci.test, declare_config_u.test,
     declare_constant.test, declare_cpa3cpa5i.test, declare_cpa3pa5i.test,
     declare_cpa9ci.test, declare_cpa9i.test, declare_cpbv_pi.test,
     declare_cpcpi.test, declare_cpfv_pi.test, declare_cpi.test,
     declare_cpmi.test, declare_cppi.test, declare_crf_v.test,
     declare_crrf_v.test, declare_cu.test, declare_cvpi.test, declare_cz.test,
     declare_e-knr.test, declare_e.test, declare_ea2i.test, declare_ec-c.test,
     declare_ec.test, declare_ek.test, declare_esf_v.test, declare_f.test,
     declare_f_ai.test, declare_f_f_i.test, declare_f_pi.test,
     declare_f_pmi.test, declare_facs3_v.test, declare_facv_v.test,
     declare_fas3_v.test, declare_fasc3_v.test, declare_fav_v.test,
     declare_fcce_v-01.test, declare_fcce_v-02.test, declare_fcce_v-03.test,
     declare_ff_v-c.test, declare_ff_v.test, declare_fg_v-c89.test,
     declare_fg_v.test, declare_fgi_v.test, declare_fid_v.test,
     declare_fii_v.test, declare_fiiv_v.test, declare_fipfi_v_pfi_v.test,
     declare_fiv_v.test, declare_fixiy_v.test, declare_fpc_pi.test,
     declare_fpci_pi.test, declare_fpfc_i_d.test, declare_frri_v.test,
     declare_fsi_v.test, declare_fv_pa3a5i.test, declare_fv_pa3a5pi.test,
     declare_fv_pa3i.test, declare_fv_pa3pi.test, declare_fv_v.test,
     declare_fvx_v.test, declare_fx_pi.test, declare_gf_v.test,
     declare_gi.test, declare_hb.test, declare_hc.test, declare_hc16.test,
     declare_hc32.test, declare_hd.test, declare_hf.test, declare_hl.test,
     declare_hll.test, declare_hv.test, declare_hw.test, declare_if_v.test,
     declare_k.test, declare_lb.test, declare_lc.test, declare_lc16.test,
     declare_lc32.test, declare_ld-knr.test, declare_ld.test,
     declare_lf-c.test, declare_lf.test, declare_ll-c89.test,
     declare_ll-knr.test, declare_ll.test, declare_lll.test, declare_lv.test,
     declare_lw.test, declare_mi.test, declare_n.test, declare_nfi_v-01.test,
     declare_nfi_v-02.test, declare_ni.test, declare_oyf.test,
     declare_pa3cpa5i.test, declare_pa3pa5i.test, declare_pa9i.test,
     declare_pai-01.test, declare_pbv_pi.test, declare_pcpi.test,
     declare_pfv_pi.test, declare_pfv_ri.test, declare_pfx_i.test,
     declare_pi.test, declare_pmci.test, declare_pmf_i.test,
     declare_pmf_pc.test, declare_pmi.test, declare_pmri.test,
     declare_ppi.test, declare_pri.test, declare_pv-knr.test,
     declare_ra3i.test, declare_rci.test, declare_rcpi.test, declare_ref.test,
     declare_rf_v-01.test, declare_rf_v-c.test, declare_rf_v.test,
     declare_rgi.test, declare_ri.test, declare_rpi.test, declare_rrf_v.test,
     declare_rv.test, declare_sa2i.test, declare_sb.test, declare_sc-knr.test,
     declare_sc.test, declare_sc16.test, declare_sc32.test, declare_sf_v.test,
     declare_si-knr.test, declare_si.test, declare_sif_v.test,
     declare_sl-knr.test, declare_sll.test, declare_smi.test, declare_sv.test,
     declare_sw.test, declare_sxi.test, declare_t.test, declare_ti.test,
     declare_tpfc_i.test, declare_type.test, declare_u.test, declare_ub.test,
     declare_uc.test, declare_uc16.test, declare_uc32.test, declare_ud.test,
     declare_uf.test, declare_ui.test, declare_ull.test, declare_uv.test,
     declare_uw.test, declare_uz.test, declare_v.test, declare_vcpi.test,
     declare_vf_v-c.test, declare_vf_v.test, declare_vi-knr.test,
     declare_voyf.test, declare_vpi.test, declare_w-c89.test, declare_w.test,
     declare_xi-c.test, declare_xi.test, declare_yf.test, declare_z.test,
     declare_zd.test, declare_zf.test, declare_zz.test,
     define_c_int_least32_t.test, define_i.test, define_i_declare_i.test,
     define_i_explain_i.test, define_i_int_least32_t.test,
     dynamic_cast_pc-c.test, dynamic_cast_pc.test, explain_0f_v-01.test,
     explain_0f_v-02.test, explain_0f_v-c.test, explain_a.test,
     explain_a012i.test, explain_a0b10i.test, explain_a0xAi-01.test,
     explain_a0xai-02.test, explain_a3a5a7i.test, explain_a3a5i.test,
     explain_a3a5pfv_i.test, explain_a3a5pfv_pi.test,
     explain_a3a5pfv_ppa7a9i.test, explain_a3a5pfv_ppa7a9pc.test,
     explain_a3a5pfv_ppa7i.test, explain_a3a5pfv_ppa7pi.test,
     explain_a3a5pfv_ppi.test, explain_a3pfv_i.test, explain_a3ppfv_i.test,
     explain_a9cpi.test, explain_a9i.test, explain_a9pi.test,
     explain_ac9i.test, explain_af.test, explain_ai-01.test,
     explain_ai-02.test, explain_ai-c++11.test, explain_ai.test,
     explain_api-01.test, explain_api-02.test, explain_as9i.test,
     explain_b-c89.test, explain_b.test, explain_b_ai.test, explain_bii_d.test,
     explain_c-c.test, explain_c.test, explain_c16-c++03.test,
     explain_c16-c99.test, explain_c32-c++03.test, explain_c32-c99.test,
     explain_cast_a3a5a7i.test, explain_cast_a3a5i.test, explain_cast_a3i.test,
     explain_cast_ai.test, explain_cast_ci.test, explain_cast_cpa3cpa5i.test,
     explain_cast_cpa3pa5i.test, explain_cast_cpa9ci.test,
     explain_cast_cpa9i.test, explain_cast_cpbv_pi.test,
     explain_cast_cpcpi.test, explain_cast_cpfv_pi.test, explain_cast_cpi.test,
     explain_cast_cppi.test, explain_cast_cvpi.test, explain_cast_ei.test,
     explain_cast_gi.test, explain_cast_ic.test, explain_cast_ll.test,
     explain_cast_lll.test, explain_cast_pa3a5i.test,
     explain_cast_pa3cpa5i.test, explain_cast_pa3pa5i.test,
     explain_cast_pa9i.test, explain_cast_pbv_pi.test, explain_cast_pci.test,
     explain_cast_pcpi.test, explain_cast_pf_i.test, explain_cast_pfpci_i.test,
     explain_cast_pfpi_i.test, explain_cast_pfv_pi.test, explain_cast_pi.test,
     explain_cast_pic.test, explain_cast_pmi.test, explain_cast_ppi.test,
     explain_cast_ri.test, explain_cast_rpi.test, explain_cast_si.test,
     explain_cast_ti.test, explain_cast_ull.test, explain_cast_vcpi.test,
     explain_cast_vpi.test, explain_cf_v-c.test, explain_cf_v.test,
     explain_ci-knr.test, explain_ci.test, explain_ck.test,
     explain_config_u.test, explain_const_cast_pi-c.test,
     explain_const_cast_pi.test, explain_cpa3cpa5i.test, explain_cpa3pa5i.test,
     explain_cpa9ci.test, explain_cpa9i.test, explain_cpbv_pi.test,
     explain_cpcpi.test, explain_cpfv_pi.test, explain_cpi.test,
     explain_cpmci.test, explain_cpmi.test, explain_cppi.test,
     explain_crf_v.test, explain_cs.test, explain_cu.test, explain_cvf_v.test,
     explain_cvpi.test, explain_dynamic_cast_pc-c.test,
     explain_dynamic_cast_pc.test, explain_e-knr.test, explain_e.test,
     explain_ea2i.test, explain_ec.test, explain_ek.test, explain_esf_v.test,
     explain_f__pf__v.test, explain_f__pv.test, explain_f__v-c++03.test,
     explain_f__v.test, explain_f_ai.test, explain_f_cpmi.test,
     explain_f_pi.test, explain_f_pmi.test, explain_f_v__v.test,
     explain_fa_v.test, explain_fac3_v-c++.test, explain_facs3_v.test,
     explain_facv_v.test, explain_fas3_v-c++.test, explain_fas3_v.test,
     explain_fasc3_v.test, explain_fasv_v.test, explain_fav_v-c++.test,
     explain_fav_v.test, explain_fcce_v.test, explain_fe_v.test,
     explain_fecc_v.test, explain_fee_v.test, explain_fev_v.test,
     explain_ff_v-c.test, explain_ff_v.test, explain_fg_v-c89.test,
     explain_fg_v.test, explain_fgi_v.test, explain_fid_v.test,
     explain_fiiv_v.test, explain_fipfi_v_pfi_v.test, explain_fiv_v.test,
     explain_fixiy_v.test, explain_fpc_pi.test, explain_fpci_pi.test,
     explain_fpfc_i_d.test, explain_frri_v-c++03.test, explain_frri_v.test,
     explain_fsf_v.test, explain_fsi_v.test, explain_fv_pa3a5i.test,
     explain_fv_pa3a5pi.test, explain_fv_pa3i.test, explain_fv_pa3pi.test,
     explain_fv_pi.test, explain_fv_v.test, explain_fve_v.test,
     explain_fvi_v.test, explain_fvv_v.test, explain_fvx_v.test,
     explain_fx_pi.test, explain_fx_v.test, explain_gf_v.test, explain_gi.test,
     explain_gk.test, explain_hb.test, explain_hc.test, explain_hc16.test,
     explain_hc32.test, explain_hd.test, explain_hf.test, explain_hl.test,
     explain_hll.test, explain_hv.test, explain_hw.test, explain_ic.test,
     explain_if_v.test, explain_ig.test, explain_is.test, explain_it.test,
     explain_k.test, explain_kc.test, explain_keywords.test, explain_lb.test,
     explain_lc.test, explain_lc16.test, explain_lc32.test,
     explain_ld-knr.test, explain_ld.test, explain_lf-c.test, explain_lf.test,
     explain_ll-c89.test, explain_ll-knr.test, explain_ll.test,
     explain_lll.test, explain_lv.test, explain_lw.test, explain_mi.test,
     explain_n.test, explain_nfi_c.test, explain_nfi_v-c++.test,
     explain_nfi_v.test, explain_ni.test, explain_oi.test, explain_oyf.test,
     explain_pa3a5i.test, explain_pa3cpa5i.test, explain_pa3pa5i.test,
     explain_pa9i.test, explain_pai-01.test, explain_pai-02.test,
     explain_pbv_pi.test, explain_pcpi.test, explain_pfv_pi.test,
     explain_pi.test, explain_pmf_i.test, explain_pmf_pc.test,
     explain_pmfii_pk.test, explain_pmgi.test, explain_pmi-c.test,
     explain_pmi.test, explain_pmri.test, explain_ppi.test, explain_pri.test,
     explain_prri.test, explain_pv-knr.test, explain_ra3i.test,
     explain_reinterpret_cast_pv-c.test, explain_reinterpret_cast_pv.test,
     explain_rf_v-01.test, explain_rf_v-c++03.test, explain_rf_v.test,
     explain_rgi.test, explain_ri-c.test, explain_ri.test, explain_rpi.test,
     explain_rrf_v-c++03.test, explain_rrf_v.test, explain_rv.test,
     explain_sa2i.test, explain_sb.test, explain_sc-knr.test, explain_sc.test,
     explain_sc16.test, explain_sc32.test, explain_sf_v.test,
     explain_si-knr.test, explain_si.test, explain_sl-knr.test,
     explain_smi.test, explain_srf_v.test, explain_srrf_v.test,
     explain_static_cast_i-c.test, explain_static_cast_i.test, explain_sv.test,
     explain_sw.test, explain_sxi.test, explain_ti.test, explain_tpfc_i.test,
     explain_type_i.test, explain_ub.test, explain_uc.test, explain_uc16.test,
     explain_uc32.test, explain_ud.test, explain_uf.test, explain_ull.test,
     explain_uv.test, explain_uw.test, explain_v.test, explain_vcpi.test,
     explain_vf_v-c.test, explain_vf_v.test, explain_vi-knr.test,
     explain_voyf-c.test, explain_voyf.test, explain_vpi.test,
     explain_w-c89.test, explain_w.test, explain_xi-c.test, explain_xi.test,
     explain_yf.test, explain_z.test, explain_zd.test, explain_zf.test,
     explain_zz.test, file-cast_i.test, file-cast_x.test, file-declare_i.test,
     file-declare_x.test, file-explain_i.test, file-explain_x.test,
     help-c++.test, help-c.test, reinterpret_cast_pv-c.test,
     reinterpret_cast_pv.test, set.test, set_c++.test, set_c++03.test,
     set_c++11.test, set_c++98.test, set_c.test, set_c11.test, set_c89.test,
     set_c99.test, set_cknr.test, set_debug.test, set_knr.test, set_knrc.test,
     set_nodebug.test, set_noprompt.test, set_nosemicolon.test,
     set_noyydebug.test, set_options.test, set_prompt.test, set_semicolon.test,
     set_yydebug.test, show_all_types.test, show_foo.test, show_int8_t.test,
     show_predefined_types.test, show_user_types.test, static_cast_i-c.test,
     static_cast_i.test, typedef_c_int_least32_t.test, typedef_i.test,
     typedef_i_declare_i.test, typedef_i_explain_i.test,
     typedef_i_int_least32_t.test: Added ability to typedef types; added C99
     standard types.

2017-09-17  Paul J. Lucas <paul@lucasmail.org>

   * ast.c, ast_util.c, autocomplete.c, color.c, debug.c, diagnostics.c,
     english.c, errors.c, gibberish.c, help.c, keywords.c, lang.c, options.c,
     prompt.c, set.c, types.c, util.c: More explicit about == NULL or == 0.
   * ast.c: c_ast_list_append() clean-up.
   * cdecl.1: Added (missing) long long for C89.

2017-09-14  Paul J. Lucas <paul@lucasmail.org>

   * parser.y, test/Makefile.am, declare_t.test: Fixed "declare x as y" bug.

2017-09-13  Paul J. Lucas <paul@lucasmail.org>

   * keywords.c, keywords.h, lexer.l: s/c_keyword_find_literal/c_keyword_find/

2017-08-30  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, cdecl.1, cdecl.c: Now checking first word of first argument
     for command.

2017-08-26  Paul J. Lucas <paul@lucasmail.org>

   * lib/Makefile.am, getopt-pfx-core.h, getopt-pfx-ext.h, getopt.c, gettext.h,
     stdio.in.h, stdlib.in.h, string.in.h, sys_types.in.h, unistd.in.h,
     extensions.m4, getdelim.m4, getline.m4, include_next.m4, stdint.m4,
     stdlib_h.m4, string_h.m4, sys_types_h.m4, unistd_h.m4, wint_t.m4: Updated
     gnulib.
   * configure.ac, cdecl.1, autocomplete.c, keywords.c, literals.c, literals.h,
     parser.y, types.c, types.h, test/Makefile.am, declare_zz.out,
     explain_zz.out, declare_zz-knr.test, declare_zz.test, explain_zz-knr.test,
     explain_zz.test: Added support for ssize_t.

2017-07-19  Paul J. Lucas <paul@lucasmail.org>

   * util.c, util.h: Made perror_exit() a function.
   * lexer.l: Added identifier.

2017-07-17  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Updated version.
   * parser.y: Fixed new-style casts C++ version.
   * cdecl.1: Added mention of new-style casts; added casting name only caveat.
   * parser.y: Added "new_style_cast_c" to dump line.
   * parser.y: explain_new_style_cast_c requires NAME.
   * parser.y: Better error messages for explain_new_style_cast_c.

2017-07-16  Paul J. Lucas <paul@lucasmail.org>

   * help.c: Added FALLTHROUGH comment.
   * ast.c, util.c, util.h: Added likely() and unlikely().
   * autocomplete.c: Fixed typo in comment.

2017-07-14  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1, cdecl.c: Added "help" as a command-line argument.
   * ast_util.c: Added missing "static".

2017-07-12  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c, test/Makefile.am, declare_ra3i.out, explain_ra3i.out,
     declare_ra3i.test, explain_ra3i.test: Fixed reference to array.
   * AUTHORS, configure.ac, cdecl.1, ast.h, autocomplete.c, debug.c, english.c,
     errors.c, gibberish.c, help.c, lexer.l, literals.c, literals.h, parser.y,
     test/Makefile.am, declare_facs3_v.out, declare_facv_v.out,
     declare_fas3_v.out, declare_fasc3_v.out, declare_fav_v.out,
     explain_facs3_v.out, explain_facv_v.out, explain_fas3_v.out,
     explain_fasc3_v.out, explain_fav_v.out, help-c++.out, help-c.out,
     declare_ac3i.test, declare_as3i.test, declare_avi.test,
     declare_facs3_v.test, declare_facv_v.test, declare_fas3_v.test,
     declare_fasc3_v.test, declare_fav_v.test, explain_ac9i.test,
     explain_as9i.test, explain_fac3_v-c++.test, explain_facs3_v.test,
     explain_facv_v.test, explain_fas3_v-c++.test, explain_fas3_v.test,
     explain_fasc3_v.test, explain_fasv_v.test, explain_fav_v-c++.test,
     explain_fav_v.test: Added C99 static, type-qualified, and variable length
     array function argument support.

2017-07-11  Paul J. Lucas <paul@lucasmail.org>

   * lang.h: Moved C++ languages into upper byte.

2017-07-10  Paul J. Lucas <paul@lucasmail.org>

   * errors.c: Fixed printing of error message.

2017-06-07  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, cdecl.1, options.c: Added -h and --help.
   * parser.y, test/Makefile.am, explain_cpmci.out, explain_cpmi.out,
     explain_f_cpmi.out, explain_cpmci.test, explain_cpmi.test,
     explain_f_cpmi.test: Added support for explaining const/volatile pointers
     to member.

2017-05-29  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c, common.h, diagnostics.c: Fixed error printing if source is
     command line.
   * AUTHORS, configure.ac, cdecl.1, autocomplete.c, cdecl.c, help.c,
     keywords.c, lexer.l, literals.c, literals.h, parser.y, test/Makefile.am,
     const_cast_pi.out, dynamic_cast_pc.out, explain_const_cast_pi.out,
     explain_dynamic_cast_pc.out, explain_reinterpret_cast_pv.out,
     explain_static_cast_i.out, help-c++.out, help-c.out,
     reinterpret_cast_pv.out, static_cast_i.out, const_cast_pi-c.test,
     const_cast_pi.test, dynamic_cast_pc-c.test, dynamic_cast_pc.test,
     explain_const_cast_pi-c.test, explain_const_cast_pi.test,
     explain_dynamic_cast_pc-c.test, explain_dynamic_cast_pc.test,
     explain_reinterpret_cast_pv-c.test, explain_reinterpret_cast_pv.test,
     explain_static_cast_i-c.test, explain_static_cast_i.test,
     reinterpret_cast_pv-c.test, reinterpret_cast_pv.test,
     static_cast_i-c.test, static_cast_i.test: Added support for C++ new-style
     casts.

2017-05-28  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, diagnostics.c, prompt.h: Fixed color prompt caret position.
   * cdecl.1: Fixed caveat auto example.

2017-05-27  Paul J. Lucas <paul@lucasmail.org>

   * keywords.c, keywords.h: Removed c_keyword_find_token() -- not used.
   * parser.y: Fixed typo in dump line.

2017-05-24  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, help.c, help-c++.out, help-c.out: Fixed cv-qualifier in help
     text.

2017-05-10  Paul J. Lucas <paul@lucasmail.org>

   * lexer.h, parser.y: Got rid of yylex() redundant declaration warning.
   * lexer.l: Removed redundant declaration of yylloc.
   * ast.c, ast.h, common.h, diagnostics.c, diagnostics.h, parser.y, types.c,
     types.h: Now using c_loc_t instead of YYLTYPE.
   * parser.y: Fixed comment grammar.
   * diagnostics.c: Added assert( error_column <= input_line_len ).

2017-05-09  Paul J. Lucas <paul@lucasmail.org>

   * debug.c, cdecl--debug.out, cdecl-d.out: Now printing loc in debug output.
   * diagnostics.c: Printed error columns are now 1-based.
   * ast.h, debug.c, english.c, gibberish.c, parser.y, cdecl--debug.out,
     cdecl-d.out: Folded qualifier struct member into type.
   * parser.y: Removed incorrect comment.
   * parser.y, cdecl--debug.out, cdecl-d.out: Fixed arg_list_c dump.
   * parser.y: Fixed typo in comment.
   * parser.y: s/CDEBUG/IF_DEBUG/

2017-05-08  Paul J. Lucas <paul@lucasmail.org>

   * util.h: Now using CONST_CAST in FREE().

2017-05-06  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Added "break" to cdecl_keyword_find().
   * lexer.l: Fixed typo incomment.
   * configure.ac, lexer.l, test/Makefile.am, explain_type_i.test: Fixed
     wrongly allowing keyword synonyms in explain.

2017-05-05  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, ast_util.c, gibberish.c, test/Makefile.am,
     declare_tpfc_i.out, explain_tpfc_i.out, declare_tpfc_i.test,
     explain_tpfc_i.test: Fixed declarations with storage-class.
   * util.c: Reordered open().

2017-05-03  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Now allowing l, ll, llu, u, ul, ull integer suffixes for array
     sizes.

2017-05-02  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: Added asserts; fixed comment.
   * english.c: Now using L_AS.

2017-05-01  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l, parser.y: s/Y_RVALUE_REFERENCE/Y_DOUBLE_AMPERSAND/

2017-04-30  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Updated to 3.1.1.
   * src/Makefile.am: Added BUILT_SOURCES.
   * Makefile.am: Fixed to use new README files.
   * README-blocks.txt: Split out README info; disavowed associated with
     cdecl.org.
   * cdecl.1: Added mention tht qualified C++ data members or member functions
     are not supported.
   * ast_util.c, ast_util.h, parser.y:
     s/c_ast_patch_none/c_ast_patch_placeholder/
   * debug.c: Fixed missing ',' after class_name.

2017-04-29  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Added assert().
   * configure.ac, src/Makefile.am: Added c++decl symlink on install.
   * AUTHORS, configure.ac, cdecl.1, debug.c, english.c, errors.c, gibberish.c,
     help.c, kinds.c, kinds.h, parser.y, types.c, types.h, test/Makefile.am,
     cdecl--debug.out, cdecl-d.out, declare_crf_v.out, declare_crrf_v.out,
     declare_rf_v.out, declare_rrf_v.out, explain_crf_v.out, explain_rf_v.out,
     explain_rrf_v.out, help-c++.out, help-c.out, declare_crf_v.test,
     declare_crrf_v.test, declare_rf_v-01.test, declare_rf_v.test,
     declare_rrf_v.test, explain_crf_v.test, explain_rf_v-01.test,
     explain_rf_v-c++03.test, explain_rf_v.test, explain_rrf_v-c++03.test,
     explain_rrf_v.test, explain_srf_v.test, explain_srrf_v.test: Added member
     function ref-qualifiers.

2017-04-28  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Fixed auto caveat.
   * ast_util.c, ast_util.h, debug.c, english.c, errors.c, gibberish.c,
     kinds.c, kinds.h, parser.y: Changed K_NONE to K_PLACEHOLDER.
   * parser.y: Reordered func_qualifier_list_opt_c.

2017-04-27  Paul J. Lucas <paul@lucasmail.org>

   * ast_util.c, debug.c, errors.c, gibberish.c: Changed "no break;" comment to
     "FALLTHROUGH" for gcc >= 7.

2017-04-24  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac: Upped version to 3.0.1.
   * configure.ac: Renamed --disable-debug to --disable-cdecl-debug to avoid
     clash with other --disable-debug.
   * util.c: Eliminated warning when not compiling with asserts.
   * cdecl.1: Fixed minor formatting of signal(2).

2017-04-22  Paul J. Lucas <paul@lucasmail.org>

   * Makefile.am: Added READMEs to EXTRA_DIST.
   * test/Makefile.am: Rearranged EXTRA_DIST.
   * test/Makefile.am: Added missing "data".
   * src/Makefile.am: Added headers.
   * gettext.h, getopt.m4, gnulib-comp.m4: Updated GNUlib.
   * parser.y, cdecl--debug.out, cdecl-d.out: More clean-up.

2017-04-21  Paul J. Lucas <paul@lucasmail.org>

   * ast_util.c, parser.y: More comments; clean-up.
   * AUTHORS, cdecl.1, lexer.l, parser.y, test/Makefile.am, cdecl--debug.out,
     cdecl-d.out, explain_f__pf__v.out, explain_f__pv.out, explain_f__v.out,
     explain_f__pf__v.test, explain_f__pv.test, explain_f__v-c++03.test,
     explain_f__v.test, explain_f_v__v.test: Added support for the C++11
     function trailing return type syntax.
   * cdecl.1: Removed mention of 'n' (not used); clean-up.
   * parser.y: Removed SYNTAX_ERROR -- no longer used.
   * parser.y: Simplified zero.
   * parser.y: s/parse_error/elaborate_error/

2017-04-20  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Better error message for pure without virtual.
   * errors.c: Reordering implicit in check.
   * errors.c, parser.y, test/Makefile.am, declare_fg_v-c89.test,
     declare_fg_v.test, explain_fg_v-c89.test, explain_fg_v.test: Now making
     implicit int an error in C99 and later.
   * parser.y: Added parse_init().
   * cdecl.c, lexer.h: Backed out call to yylex_destroy() -- not present on
     some flex versions.
   * parser.y: Improved error message for array_decl_english.
   * cdecl.c, lexer.h: Now calling yylex_destroy().
   * parser.y: Fixed func_cast_c dump.

2017-04-19  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Removed author contributions; the AUTHORS and NEWS files are
     enough.
   * cdecl.1: s/--lang/--language/ to match reality.
   * autocomplete.c: Added setting of rl_instream and rl_outstream.
   * autocomplete.c: Added missing "c++14".
   * configure.ac: Some readline.h on require #include <stdio.h> first.
   * types.c: Added cast to unsigned long long.
   * configure.ac, src/Makefile.am, options.c, options.h, parser.y, prompt.c,
     set.c, util.c, test/Makefile.am: Fixed-up --enable/--with in configure.
   * cdecl.1: Added "C AND C++ LANGUAGE VERSIONS" section.

2017-04-18  Paul J. Lucas <paul@lucasmail.org>

   * AUTHORS, cdecl.1, autocomplete.c, help.c, keywords.c, lexer.l, literals.c,
     literals.h, parser.y, types.c, types.h, test/Makefile.am,
     cdecl--debug.out, cdecl-d.out, declare_ai-01.out, declare_ai-02.out,
     declare_api-01.out, declare_api-02.out, declare_pai-01.out,
     explain_ai-01.out, explain_ai-02.out, explain_api-01.out,
     explain_api-02.out, explain_pai-01.out, explain_pai-02.out, help-c.out,
     declare_ai-01.test, declare_ai-02.test, declare_api-01.test,
     declare_pai-01.test, explain_ai-01.test, explain_ai-02.test,
     explain_api-01.test, explain_api-02.test, explain_pai-01.test,
     explain_pai-02.test: Added _Atomic support.
   * lexer.l: Renamed goto label.
   * lexer.l, test/Makefile.am, explain_oi.out, explain_oi.test: Fixed C token
     synonyms.
   * errors.c: Now forbidding thread_local functions.
   * types.h: Moved T_INLINE.
   * cdecl.1: Added caveat of no _Atomic.
   * errors.c: Made "arg" scoped to "for" loop.
   * AUTHORS, cdecl.1, errors.c, lang.c, lang.h, lexer.l, test/Makefile.am,
     declare_af-c++.out, declare_af-c++.test, declare_af.test, explain_af.test:
     Added C++14, auto functions.
   * parser.y: Added misssing func_qualifier_list_opt_c to func_cast_c.
   * parser.y, cdecl--debug.out, cdecl-d.out: Reworked cast_c grammar.
   * AUTHORS, cdecl.1, autocomplete.c, errors.c, keywords.c, literals.c,
     literals.h, parser.y, types.c, types.h, test/Makefile.am,
     declare_if_v.out, declare_mi.out, declare_sif_v.out, explain_if_v.out,
     explain_mi.out, declare_if_v.test, declare_mi.test, declare_sif_v.test,
     declare_smi.test, explain_if_v.test, explain_mi.test, explain_smi.test:
     Added inline and mutable support.

2017-04-17  Paul J. Lucas <paul@lucasmail.org>

   * AUTHORS, cdecl.1, cdecl.c, common.h, errors.c, gibberish.c, help.c,
     lexer.h, lexer.l, parser.y, types.c, test/Makefile.am, declare_ec.out,
     declare_ek.out, help-c++.out, declare_ec-c.test, declare_ec.test,
     declare_ek.test, explain_ec.test, explain_ek.test: Added support for C++11
     enum class.
   * common.h: Removed unnecessary #include.
   * common.h: Added comment.
   * cdecl.1: Added mention of decltype.
   * lang.h: Added LANG_C_ALL.
   * errors.c, test/Makefile.am, explain_fa_v.test: Now forbidding auto
     function arguments.
   * types.c: Rearranged arrays.
   * AUTHORS, cdecl.1, keywords.c, keywords.h, lang.h, lexer.l, literals.c,
     literals.h, parser.y, types.c, types.h, test/Makefile.am, declare_a.out,
     declare_ai.out, explain_a.out, explain_ai.out, declare_a.test,
     declare_ai-c++11.test, declare_ai.test, explain_a.test,
     explain_ai-c++11.test, explain_ai.test: Now distinguishing between C's
     auto and C++11's.

2017-04-16  Paul J. Lucas <paul@lucasmail.org>

   * AUTHORS, cdecl.1, autocomplete.c, gibberish.c, keywords.c, lexer.l,
     literals.c, literals.h, parser.y, types.c, types.h, test/Makefile.am,
     cdecl--debug.out, cdecl-d.out, declare_oyf.out, declare_voyf.out,
     declare_yf.out, explain_oyf.out, explain_voyf.out, explain_yf.out,
     declare_oyf.test, declare_voyf.test, declare_yf.test, explain_oyf.test,
     explain_voyf-c.test, explain_voyf.test, explain_yf.test: Added C++ "final"
     and "override" support.

2017-04-15  Paul J. Lucas <paul@lucasmail.org>

   * AUTHORS, cdecl.1, lexer.l, test/Makefile.am, explain_a0b10i.out,
     explain_a0b10i.test: Added C++14 binary literal support.
   * AUTHORS, cdecl.1, help.c, parser.y, test/Makefile.am, declare_f.out,
     help-c++.out, help-c.out, declare_f.test: Made "returning" optional;
     reworked help syntax.
   * AUTHORS, cdecl.1, errors.c, keywords.c, lexer.l, literals.c, literals.h,
     parser.y, types.c, types.h, test/Makefile.am, declare_nfi_v-01.out,
     declare_nfi_v-02.out, explain_nfi_v.out, declare_nfi_v-01.test,
     declare_nfi_v-02.test, declare_ni.test, explain_nfi_v-c++.test,
     explain_nfi_v.test: Added C11 noreturn support.
   * cdecl.1: Added mention of default arguments not being supported.
   * AUTHORS, cdecl.1, autocomplete.c, help.c, keywords.c, literals.c,
     literals.h, parser.y, types.c, types.h, test/Makefile.am, declare_sxi.out,
     declare_xi.out, explain_sxi.out, explain_xi.out, help-c++.out,
     declare_sxi.test, declare_xi-c.test, declare_xi.test, explain_sxi.test,
     explain_xi-c.test, explain_xi.test: Added support for constexpr.
   * parser.y: Fixed type_modifier_list_english; reduced shift/reduce conflicts
     to 1.
   * autocomplete.c: Removed ansi, preansi, c++.
   * AUTHORS, cdecl.1, errors.c, gibberish.c, help.c, parser.y,
     test/Makefile.am, cdecl--debug.out, cdecl-d.out, declare_cf_v.out,
     explain_cf_v.out, explain_cvf_v.out, help-c++.out, help-c.out,
     declare_cf_v-c.test, declare_cf_v.test, declare_rf_v-c.test,
     declare_rf_v.test, explain_cf_v-c.test, explain_cf_v.test,
     explain_cvf_v.test: Added const/volatile member functions.

2017-04-14  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Fixed parse error reporting.
   * lexer.l: s/keyword_find/cdecl_keyword_find/
   * diagnostics.h: Removed unnecessary header.
   * debug.c, debug.h: Minor clean-up.
   * types.h: Now using ull suffix to ensure 64 bits.
   * parser.y: Fixed DUMP_NUM().
   * configure.ac: Better checking for proper readline.
   * types.c, util.h, test/Makefile.am, declare_esf_v.test, explain_esf_v.test,
     explain_fsf_v.test: Now checking that at most one storage class is given.
   * AUTHORS, cdecl.1, autocomplete.c, help.c, keywords.c, literals.c,
     literals.h, parser.y, types.c, types.h, util.h, test/Makefile.am,
     declare_ff_v.out, explain_ff_v.out, help-c++.out, declare_ff_v-c.test,
     declare_ff_v.test, explain_ff_v-c.test, explain_ff_v.test: Added C++
     "friend" function support.
   * cdecl.1: Added example for first command-line argument parsing.
   * cdecl.c, util.c, util.h: Renamed readline_wrapper to read_input_line.
   * help.c, parser.y, util.c, util.h: Added PUTC_OUT and PUTS_OUT.
   * ast.h, diagnostics.h, parser.y: Added C_AST_NEW().
   * parser.y, test/Makefile.am, explain_cast_ri.out, explain_cast_ri.test:
     Added cast into reference test.
   * parser.y: Removed unnecessary code.
   * parser.y: More grammar clean-up.
   * parser.y: Grammar clean-up.
   * parser.y: s/pointer_to/pointer_to_english/
   * parser.y: Renamed "explain" to "explain_c".
   * parser.y: Added declare_name_as_english.
   * parser.y: Added name_into_english.

2017-04-13  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: More comments.
   * ast.c, ast.h: s/unsigned/c_ast_id_t/
   * ast_util.c, test/Makefile.am, cdecl--debug.out, cdecl-d.out,
     explain_nfi_c.out, explain_nfi_c.test: Fixed explain char (f)(int).
   * ast_util.c, test/Makefile.am, explain_ni.out, explain_ni.test: Fixed
     "explain int (x)".
   * ast.h: Updated comment to mention post-order traversal.
   * english.c: Now using visitor function to generate English.
   * errors.c: Fixed typos in comments.
   * configure.ac: Fixed copy/paste error.
   * lib/Makefile.am, gnulib-cache.m4: Added stddef and stdint to Gnulib.
   * configure.ac: Now requiring either bison or byacc.
   * configure.ac: Now checking for and requiring flex specifically.
   * cdecl.1: Made caveats more consise.
   * lang.c, lang.h: Swapped order of struct members.
   * cdecl.1: Removed extraneous ';'.
   * cdecl.1: Minor additions.

2017-04-12  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added caveat about fully qualified C++ member functions.
   * cdecl.1: Added COLUMNS.
   * diagnostics.h: More comments.
   * diagnostics.c, diagnostics.h, parser.y: yyerror() now uses the same error
     location printing code.
   * diagnostics.h: Added to print_hint() docs.
   * configure.ac: Normalized feature configuration.
   * diagnostics.c: Added needed #ifdef WITH_TERM_COLUMNS.
   * configure.ac: Removed " to disable".
   * parser.y: Fixed duplicate printing of token in error message.
   * diagnostics.c, util.h: Fixed non-interactive error message printing.
   * cdecl.1, color.c, color.h, diagnostics.c: Partial support for "locus"
     color.
   * color.h: Removed "note".
   * lib/Makefile.am, arg-nonnull.h, c++defs.h, errno.in.h, getdelim.c,
     getline.c, getopt-cdefs.in.h, getopt-core.h, getopt-ext.h,
     getopt-pfx-core.h, getopt-pfx-ext.h, getopt.c, getopt.in.h, getopt1.c,
     getopt_int.h, gettext.h, limits.in.h, stdarg.in.h, stdbool.in.h,
     stddef.in.h, stdint.in.h, stdio.in.h, stdlib.in.h, string.in.h, strsep.c,
     sys_types.in.h, sysexits.in.h, unistd.in.h, warn-on-use.h,
     gnulib-cache.m4: Changed Gnulib to LGPL.
   * set.out, set_options.out: Fixed "set" expected results.
   * set.c: Removed HAVE_READLINE.
   * configure.ac, lib/Makefile.am, string.in.h, strsep.c, gnulib-cache.m4,
     gnulib-comp.m4, string_h.m4, strsep.m4: Added strsep().
   * lib/Makefile.am, arg-nonnull.h, c++defs.h, getopt-cdefs.in.h,
     getopt-core.h, getopt-ext.h, getopt-pfx-core.h, getopt-pfx-ext.h,
     getopt.c, getopt.in.h, getopt1.c, getopt_int.h, limits.in.h, stdint.in.h,
     unistd.in.h, warn-on-use.h, getopt.m4, gnulib-common.m4, gnulib-comp.m4:
     Updared Gnulib.
   * lexer.l, prompt.c, util.h: Some Solaris fixes.
   * cdecl.1: Added mention that template declarations are not supported.
   * cdecl.1, autocomplete.c, help.c, keywords.c, literals.c, literals.h,
     parser.y, types.c, types.h, test/Makefile.am, declare_z.out,
     explain_z.out, help-c++.out, help-c.out, declare_z-knr.test,
     declare_z.test, explain_z-knr.test, explain_z.test: Added support for
     size_t.
   * configure.ac, diagnostics.c, util.c, util.h: Now horizontally "scrolling"
     long input lines.
   * declare_fipfi_v_pfi_v.test: Removed space.

2017-04-10  Paul J. Lucas <paul@lucasmail.org>

   * errors.c: Removed redundant checks.
   * parser.y: Fixed error message after "returning".
   * configure.ac: Added int type checks.
   * lexer.l: Went back to using getline().

2017-04-09  Paul J. Lucas <paul@lucasmail.org>

   * types.c, test/Makefile.am, declare_ci-knr.test, declare_pv-knr.test,
     declare_vi-knr.test, explain_ci-knr.test, explain_pv-knr.test,
     explain_vi-knr.test: Now checking current language against storage classes
     and qualifiers.
   * errors.c, keywords.c, keywords.h, lang.h, types.c, types.h: Flipped
     type-check table to contain valid languages; removed keyword language
     column -- not used.
   * parser.y: Added SYNTAX_ERROR().
   * ast.c, ast.h, ast_util.c, ast_util.h, autocomplete.c, cdecl.c, color.c,
     color.h, common.h, debug.c, debug.h, diagnostics.c, english.c, errors.c,
     gibberish.c, help.c, keywords.c, keywords.h, kinds.c, kinds.h, lang.c,
     lang.h, lexer.h, lexer.l, literals.c, literals.h, options.c, options.h,
     parser.y, prompt.c, prompt.h, set.c, types.c, util.c, util.h: Added more
     @file comments.
   * color.c, color.h, options.c: Renamed parse_gcc_colors to colors_parse.
   * lexer.l, parser.y: Added missing copyright/license.
   * AUTHORS: Added Alexander Dupuy; list of languages; mention of AST.
   * cdecl.1: Added Alexander Dupuy; fixed small stuff.

2017-04-08  Paul J. Lucas <paul@lucasmail.org>

   * COPYING, Makefile.am, configure.ac, man/Makefile.am, man/man1/Makefile.am,
     man/man1/c++decl.1, cdecl.1, src/Makefile.am, ast.c, ast.h, ast_util.c,
     ast_util.h, autocomplete.c, cdecl.c, color.c, color.h, common.h, debug.c,
     debug.h, diagnostics.c, diagnostics.h, english.c, errors.c, gibberish.c,
     help.c, keywords.c, keywords.h, kinds.c, kinds.h, lang.c, lang.h, lexer.h,
     literals.c, literals.h, options.c, options.h, prompt.c, prompt.h, set.c,
     types.c, types.h, util.c, util.h, test/Makefile.am, run_test.sh: Put under
     GPLv3.
   * diagnostics.c, errors.c: Added warnign for function arguments.
   * ast.h, ast_util.h, errors.c, parser.y: Reworked error checking.
   * test/Makefile.am, cdecl--no-semicolon.out, cdecl-s.out,
     cdecl--no-semicolon.test, cdecl-s.test: More command-line tests.
   * test/Makefile.am, cdecl--debug.out, cdecl-d.out, cdecl--debug.test,
     cdecl-d.test, cdecl-xx.test: Added -d tests.
   * gibberish.c, test/Makefile.am, declare_f_pmi.out, explain_f_pmi.out,
     declare_f_pmi.test, explain_f_pmi.test: Fixed function returning pointer
     to member.
   * parser.y: Removed wrong check_strdup() and memory leak.

2017-04-07  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Fixed spacing on DUMP_AST_LIST().
   * cdecl.1: More caveats.
   * errors.c, parser.y: Moved "missing function prototype" warning.
   * test/Makefile.am, declare_b.out, declare_w.out, explain_b.out,
     explain_w.out, declare_b-c89.test, declare_b.test, declare_c16-c++03.test,
     declare_c16-c99.test, declare_c32-c++03.test, declare_c32-c99.test,
     declare_w-c89.test, declare_w.test, explain_b-c89.test, explain_b.test,
     explain_c16-c++03.test, explain_c16-c99.test, explain_c32-c++03.test,
     explain_c32-c99.test, explain_w-c89.test, explain_w.test: Added bool,
     char16_t, char32_t, wchar_t tests.
   * types.c: Fixed typo in comment.
   * AUTHORS, cdecl.1, autocomplete.c, errors.c, gibberish.c, lexer.l,
     literals.c, literals.h, parser.y, types.c, types.h, test/Makefile.am,
     declare_0f_v.out, explain_0f_v-01.out, declare_0f_v-c.test,
     declare_0f_v.test, explain_0f_v-01.test, explain_0f_v-02.test,
     explain_0f_v-c.test: Added pure virtual member function support.
   * cdecl.c, common.h, diagnostics.c, lexer.h, lexer.l: Now printing error
     line when not a TTY.
   * cdecl.1: Added more caveats.
   * lexer.h, lexer.l, parser.y: Renamed my_text to lexer_token.
   * lexer.l: Renaming.
   * diagnostics.c, parser.y, set.c: Now using PUTS_ERR.
   * diagnostics.c, parser.y, util.h: Added PUTC_ERR, PUTS_ERR.

2017-04-06  Paul J. Lucas <paul@lucasmail.org>

   * common.h, diagnostics.c, lexer.h, lexer.l, parser.y: Added lexer.h;
     overrode YY_FATAL_ERROR.
   * common.h, diagnostics.c, diagnostics.h, lexer.l, parser.y: Renamed
     error_column() to lexer_column().

2017-04-05  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Renamed loc_reset() to newline(); split ; from \n.
   * cdecl.c: No longer appending ';' at end of command-line.
   * diagnostics.c, errors.c, lang.c, lang.h, options.c, set.c: Some renamings.
   * errors.c, keywords.h, lang.c, lang.h, options.c, options.h, set.c,
     types.c, types.h: Rename lang_t to c_lang_t.
   * types.c: Flipped c_type_info field order.
   * test/Makefile.am, declare_c.out, declare_n.out, explain_c.out,
     explain_n.out, declare_c-c.test, declare_c.test, declare_n.test,
     explain_c-c.test, explain_c.test, explain_n.test: Added class and union
     tests.
   * test/Makefile.am, declare_e.out, explain_e.out, declare_e-knr.test,
     declare_e.test, explain_e-knr.test, explain_e.test: Added enum tests.
   * gibberish.c, test/Makefile.am, declare_k.out, explain_k.out,
     declare_k.test, explain_k.test: Fixed struct gibberish.
   * types.c: Fixes to types table.

2017-04-04  Paul J. Lucas <paul@lucasmail.org>

   * src/Makefile.am, ast.c, ast.h, kinds.c, kinds.h: Split out kinds.[ch].
   * cdecl.1, lang.c, lang.h, types.c: Split out C++03 for completeness.
   * parser.y: Now printing "unexpected end of command."
   * parser.y: Got rid of command_init.
   * parser.y: Folded in command_cleanup.
   * lexer.l, parser.y: I think I fixed the EOF issue.

2017-04-03  Paul J. Lucas <paul@lucasmail.org>

   * lexer.l: Renamed eof to my_eof.
   * lexer.l: Adjusted my_col_newline.
   * cdecl.1: Added mention of varargs; Gibberish section; reference
     declaration caveat.
   * parser.y, test/Makefile.am, declare_cu.out, explain_cu.out,
     declare_cu.test, explain_cu.test: Fixed "const unsigned".
   * types.c: Moved complex up so it appears first in English.
   * test/Makefile.am, declare_zd.out, declare_zf.out, explain_zd.out,
     explain_zf.out, declare_zd.test, declare_zf.test, explain_zd.test,
     explain_zf.test: Some complex tests.
   * cdecl.1, test/Makefile.am, declare_ld.out, explain_ld.out,
     declare_ld-knr.test, declare_ld.test, explain_ld-knr.test,
     explain_ld.test: Added long double tests.
   * common.h, diagnostics.c, lexer.l, parser.y: No longer relying on
     apparently broken YYTEXT_POINTER.
   * autocomplete.c, cdecl.c, util.c, util.h: Some Linux fixes.
   * options.c: Added missing #include <stdlib.h>.
   * cdecl.1: Added missing --color; more clean-up.
   * options.c: Got rid of old options.
   * types.c: Correctly put wchar_t into C95.
   * types.c, test/Makefile.am, declare_ll-c89.test, declare_ll-knr.test,
     explain_ll-c89.test, explain_ll-knr.test: Fixed C version for long long;
     more tests.
   * test/Makefile.am, declare_hd.test, declare_hf.test, declare_hl.test,
     declare_hll.test, declare_sc-knr.test, declare_si-knr.test,
     declare_sl-knr.test, declare_ud.test, declare_uf.test, explain_hd.test,
     explain_hf.test, explain_hl.test, explain_hll.test, explain_sc-knr.test,
     explain_si-knr.test, explain_sl-knr.test, explain_ud.test,
     explain_uf.test: More type tests.

2017-04-02  Paul J. Lucas <paul@lucasmail.org>

   * configure.ac, test/Makefile.am, set_noyydebug.out, set_yydebug.out,
     set_noyydebug.test, set_yydebug.test: Added set_yydebug tests.
   * test/Makefile.am, set_debug.out, set_nodebug.out, set_debug.test,
     set_nodebug.test: Added set debug tests.
   * lexer.l, parser.y, set.c, test/Makefile.am, set_c++.out, set_c++03.out,
     set_c++11.out, set_c++98.out, set_c.out, set_c11.out, set_c89.out,
     set_c99.out, set_cknr.out, set_knr.out, set_knrc.out, set_noprompt.out,
     set_nosemicolon.out, set_prompt.out, set_semicolon.out, set_c++.test,
     set_c++03.test, set_c++11.test, set_c++98.test, set_c.test, set_c11.test,
     set_c89.test, set_c99.test, set_cknr.test, set_knr.test, set_knrc.test,
     set_noprompt.test, set_nosemicolon.test, set_prompt.test,
     set_semicolon.test: Now accepting c++ names for set options; more set
     tests.
   * lang.c, lang.h, options.c: Now only one lang_map.
   * test/Makefile.am, declare_lf.out, explain_lf.out, declare_lf-c.test,
     declare_lf.test, explain_lf-c.test, explain_lf.test: long float tests.
   * test/Makefile.am, declare_hw.test, declare_lw.test, declare_sw.test,
     declare_uw.test: More declare error tests.
   * test/Makefile.am, explain_hw.test, explain_lw.test, explain_sw.test,
     explain_uw.test: More type tests.
   * errors.c, parser.y, types.c, types.h, test/Makefile.am, declare_hc.test,
     declare_hc16.test, declare_hc32.test, declare_hv.test, declare_lb.test,
     declare_lc.test, declare_lc16.test, declare_lc32.test, declare_lv.test,
     declare_sb.test, declare_sc16.test, declare_sc32.test, declare_sv.test,
     declare_ub.test, declare_uc16.test, declare_uc32.test, declare_uv.test:
     Better type-checking; more tests.
   * errors.c: Converted c_ast_check_errors() to using a visitor function.
   * types.c, test/Makefile.am, explain_uc.out, declare_hb.test,
     explain_hb.test, explain_hc.test, explain_hc16.test, explain_hc32.test,
     explain_hv.test, explain_lb.test, explain_lc.test, explain_lc16.test,
     explain_lc32.test, explain_lv.test, explain_sb.test, explain_sc16.test,
     explain_sc32.test, explain_sv.test, explain_ub.test, explain_uc.test,
     explain_uc16.test, explain_uc32.test, explain_uv.test: Added more negative
     explain tests.
   * errors.c: More error checking.
   * parser.y: Added cv_qualifier_c.
   * types.c, util.h: Moved only_one_bit_set().

2017-04-01  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: More error productions.
   * ast.h, common.h, parser.y: Moved c_ast_pair to ast.h; renamed top_ast to
     just ast.
   * parser.y: Added %expect.
   * parser.y: Now using string literals for some tokens.
   * lexer.l, parser.y: Added lexer_reset().
   * ast.c, ast_util.c, autocomplete.c, color.c, debug.c, errors.c,
     gibberish.c, lang.c, options.c, parser.y, types.c, util.c: Now more
     explicit != NULL in asserts.
   * errors.c, types.c: Added ().
   * test/Makefile.am, declare_fsi_v.test, explain_fsi_v.test: static function
     argument test.
   * test/Makefile.am, declare_vf_v-c.test, explain_vf_v-c.test: virtual C
     test.
   * test/Makefile.am: Renamed help tests.
   * cdecl.1, help.c, help_c.out, help_cxx.out: Added "virtual" to help.
   * ast_util.c, autocomplete.c, english.c, errors.c, gibberish.c, keywords.c,
     literals.c, literals.h, parser.y, types.c, types.h, test/Makefile.am,
     declare_ea2i.out, declare_sa2i.out, declare_sf_v.out, declare_vf_v.out,
     explain_ea2i.out, explain_sa2i.out, explain_sf_v.out, explain_vf_v.out,
     declare_ea2i.test, declare_sa2i.test, declare_sf_v.test,
     declare_vf_v.test, explain_ea2i.test, explain_sa2i.test,
     explain_sf_v.test, explain_vf_v.test: Added virtual functions; fixed
     several other errors.

2017-03-31  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Added missing L_RVALUE.
   * AUTHORS, cdecl.1, ast.c, ast.h, ast_util.c, debug.c, english.c, errors.c,
     gibberish.c, lexer.l, literals.c, literals.h, parser.y, test/Makefile.am,
     declare_frri_v.out, explain_frri_v.out, declare_frri_v.test,
     explain_frri_v-c++03.test, explain_frri_v.test, explain_prri.test: Added
     rvalue references.
   * errors.c, test/Makefile.am, explain_pmi-c.test, explain_ri-c.test: Now
     checking for references and pointers-to-member in C.
   * errors.c, test/Makefile.am, explain_pmfii_pk.out, explain_fx_v.test,
     explain_pmfii_pk.test: Now checking for typeless function arguments in
     C++.

2017-03-30  Paul J. Lucas <paul@lucasmail.org>

   * set.out, set_options.out: Changed expected results for noyydebug.
   * errors.c, test/Makefile.am, explain_gk.test: Now checking for register
     struct.
   * parser.y, test/Makefile.am, explain_ck.out, explain_kc.out,
     explain_ck.test, explain_kc.test: Modified grammar to allow modifiers for
     enum, class, struct, union.
   * test/Makefile.am: Changed "struct" to "k".
   * test/Makefile.am, explain_cs.test: Added missing "char signed" test.
   * errors.c: Removed CDECL_AST_UTIL_INLINE.
   * src/Makefile.am, ast_util.h, parser.y: Renamed ast_check.c to errors.c.
   * configure.ac: Added WITH_CDECL_DEBUG AM_CONDITIONAL.
   * src/Makefile.am: Put debug.c within WITH_CDECL_DEBUG.
   * options.c, options.h: Added missing #ifdefs.
   * common.h, debug.c, debug.h, parser.y: Simplified debug output.
   * ast.h, debug.c, debug.h, parser.y, util.c, util.h: Added debug.h.
   * cdecl.1: Added mention of multiline input.
   * cdecl.1: Added mention of escaped newlines; more clean-up.
   * lexer.l: Removed "English".
   * AUTHORS, lexer.l, parser.y, test/Makefile.am, explain_keywords.out,
     explain_keywords.test: Now treating cdecl keywords in declarations as
     ordinary names.
   * lexer.l: Added comment.
   * lexer.l: Now accepts escaped newlines in files.
   * cdecl.c: Variable renaming.
   * cdecl.c: Removed cdecl_init().
   * src/Makefile.am, cdecl.c, common.h, diagnostics.c, prompt.c, prompt.h,
     set.c: Moved prompt code into separate .c file.
   * util.h: Fixed typo.

2017-03-29  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c: Added comment.
   * cdecl.c, common.h, diagnostics.c, lexer.l, set.c, util.c, util.h: Now
     support escaped newlines.
   * util.h: Added REALLOC().
   * cdecl.1: Fixed Hansen's options.
   * cdecl.1: More additions.
   * gibberish.c, parser.y, test/Makefile.am, declare_pmf_pc.out,
     explain_pmf_pc.out, declare_pmf_pc.test, explain_pmf_pc.test: Fixed
     declare_pmf_pc.test.

2017-03-28  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c, test/Makefile.am, declare_pmf_i.out, explain_pmf_i.out,
     declare_pmf_i.test, explain_pmf_i.test: Fixed gibberish of a pointer to
     member of class function returning int.
   * set.out, set_options.out: Forgot to s/semicolons/semicolon/
   * cdecl.1: More updates.
   * options.c, options.h, parser.y, set.c: Now opt_semicolon (singular).
   * man/Makefile.am, man/man1/Makefile.am, src/Makefile.am, ast.c, ast.h,
     ast_check.c, ast_util.c, ast_util.h, color.c, color.h, common.h, debug.c,
     diagnostics.c, diagnostics.h, english.c, gibberish.c, keywords.c,
     keywords.h, lang.c, lang.h, literals.c, literals.h, types.c, types.h:
     Added name.
   * src/Makefile.am, ast_check.c, common.h, diagnostics.h, lang.c, parser.y,
     types.c, types.h: Split error/warning code into diagnostics.c.
   * parser.y: Minor changes.
   * parser.y, test/Makefile.am, explain_fipfi_v_pfi_v.out,
     explain_fipfi_v_pfi_v.test: Fixed signal() test.

2017-03-27  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.1: Added Leroy's contributions.
   * test/Makefile.am, declare_fipfi_v_pfi_v.out, declare_fipfi_v_pfi_v.test:
     Declare signal() test.
   * test/Makefile.am, declare_fpfc_i_d.out, explain_fpfc_i_d.out,
     declare_fpfc_i_d.test, explain_fpfc_i_d.test: More tests.
   * AUTHORS: Added mention of better errors and warnings.
   * AUTHORS: Added more detail.
   * keywords.c: Added variadic function argument support.
   * ast.c, ast.h, ast_check.c, debug.c, english.c, gibberish.c, lexer.l,
     literals.c, literals.h, parser.y, test/Makefile.am, declare_fcce_v-01.out,
     declare_fcce_v-02.out, declare_fcce_v-03.out, explain_fcce_v.out,
     declare_fcce_v-01.test, declare_fcce_v-02.test, declare_fcce_v-03.test,
     explain_fcce_v.test, explain_fe_v.test, explain_fecc_v.test,
     explain_fee_v.test, explain_fev_v.test, explain_fve_v.test,
     explain_fvv_v.test: Added variadic function argument support.
   * options.c: s/no-semicolons/no-semicolon/

2017-03-26  Paul J. Lucas <paul@lucasmail.org>

   * options.c, options.h, parser.y, set.c, cl-declare_i.out,
     declare_a3a5a7i.out, declare_a3a5i.out, declare_a3a5pfv_i.out,
     declare_a3a5pfv_pi.out, declare_a3a5pfv_ppa7a9i.out,
     declare_a3a5pfv_ppa7a9pc.out, declare_a3a5pfv_ppa7i.out,
     declare_a3a5pfv_ppa7pi.out, declare_a3a5pfv_ppi.out, declare_a3pfv_i.out,
     declare_a3ppfv_i.out, declare_a9cpi.out, declare_a9i.out,
     declare_a9pi.out, declare_bii_d.out, declare_ci.out, declare_constant.out,
     declare_cpa3cpa5i.out, declare_cpa3pa5i.out, declare_cpa9ci.out,
     declare_cpa9i.out, declare_cpbv_pi.out, declare_cpcpi.out,
     declare_cpfv_pi.out, declare_cpi.out, declare_cpmi.out, declare_cppi.out,
     declare_cvpi.out, declare_f_pi.out, declare_fg_v.out, declare_fgi_v.out,
     declare_fid_v.out, declare_fii_v.out, declare_fixiy_v.out,
     declare_fpc_pi.out, declare_fpci_pi.out, declare_fv_pa3a5i.out,
     declare_fv_pa3a5pi.out, declare_fv_pa3i.out, declare_fv_pa3pi.out,
     declare_fv_v.out, declare_fx_pi.out, declare_gi.out, declare_ll.out,
     declare_pa3cpa5i.out, declare_pa3pa5i.out, declare_pa9i.out,
     declare_pbv_pi.out, declare_pcpi.out, declare_pfv_pi.out,
     declare_pfv_ri.out, declare_pfx_i.out, declare_pi.out, declare_pmci.out,
     declare_pmi.out, declare_ppi.out, declare_rci.out, declare_rcpi.out,
     declare_ref.out, declare_ri.out, declare_rpi.out, declare_sc.out,
     declare_si.out, declare_sll.out, declare_ti.out, declare_type.out,
     declare_u.out, declare_uc.out, declare_ui.out, declare_ull.out,
     declare_vcpi.out, declare_vpi.out, file-declare_i.out, set.out,
     set_options.out: Reworked command-line options; not emitting ';' by
     default.
   * test/Makefile.am, declare_rv.test, explain_rv.test: Reference to void
     tests.
   * test/Makefile.am, declare_b_ai.test, declare_b_f_i.test,
     declare_f_f_i.test, declare_fiiv_v.test, declare_fiv_v.test,
     declare_fvx_v.test, declare_lll.test, explain_b_ai.test, explain_v.test:
     More tests.
   * ast_util.c: Removed apparently uncecessary check for K_NONE.
   * ast.h, ast_util.c, test/Makefile.am, explain_f_ai.test: Now forbidding
     array of function.

2017-03-25  Paul J. Lucas <paul@lucasmail.org>

   * parser.y: Now only incrementing ast_depth in nested declarations.
   * test/Makefile.am: Renamed test.
   * ast_check.c: Added break.
   * ast_check.c, test/Makefile.am, declare_f_rai.test: Fixed function
     return-type check.
   * src/Makefile.am, ast_check.c, ast_util.c: Split off c_ast_check().
   * AUTHORS, ast_util.c, test/Makefile.am, explain_fiiv_v.test,
     explain_fiv_v.test, explain_fvi_v.test, explain_fvx_v.test: Now checking
     function arguments.
   * ast_util.c, parser.y, test/Makefile.am, declare_pmri.test,
     declare_pri.test, declare_rgi.test, explain_pmgi.test, explain_pmri.test,
     explain_pri.test, explain_rgi.test: Moved all semantic checks to
     ast_util.c; added more tests.
   * parser.y: Rearranged productions.
   * parser.y: Replaced cast grammar with modified declaration grammar.
   * test/Makefile.am, cast_bii_d.out, cast_ci.out, cast_constant.out,
     cast_cpa3pa5i.out, cast_cpa9ci.out, cast_cpa9i.out, cast_cpbv_pi.out,
     cast_cpcpi.out, cast_cpfv_pi.out, cast_cpi.out, cast_cppi.out,
     cast_cvpi.out, cast_ll.out, cast_pa3cpa5i.out, cast_pa3pa5i.out,
     cast_pa9i.out, cast_pbv_pi.out, cast_pcpi.out, cast_pfv_pi.out,
     cast_ppi.out, cast_sc.out, cast_si.out, cast_sll.out, cast_u.out,
     cast_uc.out, cast_ui.out, cast_ull.out, cast_vcpi.out, cast_vpi.out,
     declare_pfx_i.out, cast_a3i.test, cast_bii_d.test, cast_ci.test,
     cast_constant.test, cast_cpa3pa5i.test, cast_cpa9ci.test, cast_cpa9i.test,
     cast_cpbv_pi.test, cast_cpcpi.test, cast_cpfv_pi.test, cast_cpi.test,
     cast_cppi.test, cast_cvpi.test, cast_gi.test, cast_ll.test,
     cast_pa3cpa5i.test, cast_pa3pa5i.test, cast_pa9i.test, cast_pbv_pi.test,
     cast_pcpi.test, cast_pfv_pi.test, cast_ppi.test, cast_sc.test,
     cast_si.test, cast_sll.test, cast_ti.test, cast_type.test, cast_u.test,
     cast_uc.test, cast_ui.test, cast_ull.test, cast_vcpi.test, cast_vpi.test,
     declare_pfx_i.test: Many more cast tests.
   * ast_util.c: Split out c_ast_check_cast().
   * test/Makefile.am, explain_cast_vcpi.out, explain_cast_vpi.out,
     explain_cast_vcpi.test, explain_cast_vpi.test: More explain cast tests.
   * types.h: Added T_STORAGE.
   * test/Makefile.am, explain_cast_ll.out, explain_cast_pa3a5i.out,
     explain_cast_pa3cpa5i.out, explain_cast_pa3pa5i.out,
     explain_cast_pa9i.out, explain_cast_pbv_pi.out, explain_cast_pcpi,
     explain_cast_pcpi.out, explain_cast_pfv_pi.out, explain_cast_ppi.out,
     explain_cast_rpi.out, explain_cast_ai.test, explain_cast_ei.test,
     explain_cast_ll.test, explain_cast_lll.test, explain_cast_pa3a5i.test,
     explain_cast_pa3cpa5i.test, explain_cast_pa3pa5i.test,
     explain_cast_pa9i.test, explain_cast_pbv_pi.test, explain_cast_pcpi.test,
     explain_cast_pfv_pi.test, explain_cast_ppi.test, explain_cast_rpi.test,
     explain_cast_si.test, explain_cast_ti.test, explain_lll.test: More explain
     cast tests.
   * ast.c, ast.h, ast_util.c, ast_util.h, util.h, test/Makefile.am,
     explain_cast_gi.test: Now forbidding cast to register.
   * test/Makefile.am, explain_cast_cpa3pa5i.out, explain_cast_cpa9ci.out,
     explain_cast_cpa9i.out, explain_cast_cpbv_pi.out, explain_cast_cpcpi.out,
     explain_cast_cpfv_pi.out, explain_cast_cpi.out, explain_cast_cppi.out,
     explain_cast_cvpi.out, explain_cast_cpa3pa5i.test,
     explain_cast_cpa9ci.test, explain_cast_cpa9i.test,
     explain_cast_cpbv_pi.test, explain_cast_cpcpi.test,
     explain_cast_cpfv_pi.test, explain_cast_cpi.test, explain_cast_cppi.test,
     explain_cast_cvpi.test: More explain cast tests.

2017-03-24  Paul J. Lucas <paul@lucasmail.org>

   * test/Makefile.am, explain_cast_cpa3cpa5i.out, explain_cast_cpa3cpa5i.test:
     More tests.
   * parser.y: %type reordering.
   * parser.y: Moved array_size_c.
   * parser.y: Removed not-so-good error message.
   * gibberish.c, test/Makefile.am, cast_cpa3cpa5i.out, cast_pf_i-01.out,
     cast_pf_i-02.out, cast_pfii_i.out, cast_pfx_i.out, cast_cpa3cpa5i.test:
     Removed more spaces from casts.
   * test/Makefile.am, explain_cast_ci.out, explain_cast_ic.out,
     explain_cast_ci.test, explain_cast_ic.test: More explain cast tests.
   * test/Makefile.am, declare_v.test: Added void test.
   * test/Makefile.am: Split off error tests.
   * ast_util.c, parser.y, test/Makefile.am, declare_gf_v.test: Put "register"
     back for English storage class.
   * cdecl.c: Fixed resetting of lexer state on error.
   * src/Makefile.am, keywords.c, parser.c, parser.h: Renamed lexer and parser
     files.
   * test/Makefile.am, explain_gf_v.test: Added register function test.
   * ast_util.c, cdgram.y, test/Makefile.am, cast_f_i.test,
     explain_cast_a3a5a7i.test, explain_cast_a3a5i.test: More tests; now
     prohibit cast into function.
   * ast_util.c, ast_util.h, cdgram.y, test/Makefile.am, explain_cast_a3i.test:
     Now prohibiting casting into an array.
   * ast.h: Removed blank line.
   * ast_util.c, cdgram.y, test/Makefile.am, explain_cast_a3a5a7i.out,
     explain_cast_a3a5a7i.test: Fixed cast test.

2017-03-23  Paul J. Lucas <paul@lucasmail.org>

   * ast_util.c, ast_util.h, cdgram.y: Fixed test.
   * test/Makefile.am, explain_cast_ull.out, explain_cast_ull.test: Fixed test.
   * test/Makefile.am: Reordered tests.
   * test/Makefile.am, declare_vcpi.out, declare_vpi.out, explain_vpi.out,
     declare_vcpi.test, declare_vpi.test, explain_vpi.test: More tests.
   * test/Makefile.am, explain_cs.out, explain_fv_v.out, explain_pa3cpa5i.out,
     explain_pa3pa5i.out, explain_pbv_pi.out, explain_pcpi.out,
     explain_pfv_pi.out, explain_ppi.out, explain_sc.out, explain_ull.out,
     explain_fv_v.test, explain_pa3cpa5i.test, explain_pa3pa5i.test,
     explain_pbv_pi.test, explain_pcpi.test, explain_pfv_pi.test,
     explain_ppi.test, explain_sc.test, explain_ull.test: More tests.
   * test/Makefile.am, explain_fv_pa3a5pi.out, explain_fv_pa3i.out,
     explain_fv_pa3pi.out, explain_fv_pa3a5pi.test, explain_fv_pa3i.test,
     explain_fv_pa3pi.test: More tests.
   * test/Makefile.am, declare_fpci_pi.out, declare_fpci_pi.test,
     explain_fpci_pi.test: Another test.
   * ast_util.c, test/Makefile.am, explain_fv_pa3a5i.out,
     explain_fv_pa3a5i.test: Fixed test.
   * ast.c: Added c_ast_has_cycle().
   * test/Makefile.am, declare_fid_v.out, declare_fv_pa3a5i.out,
     declare_fid_v.test, declare_fv_pa3a5i.test: More tests.
   * cdgram.y: Now calling parse_clearup() from yyerror().
   * ast_util.h: Added comment about caller being responsible for freeing name.
   * ast.c, ast.h, ast_util.c, ast_util.h, cdgram.y, english.c, gibberish.c:
     Can now pass visit direction to visitor functions.
   * ast.c, ast.h, ast_util.c: s/c_ast_visit/c_ast_visit_down/
   * ast_util.c, ast_util.h, gibberish.c, test/Makefile.am, declare_fpc_pi.out,
     declare_fpc_pi.test: Fixed gibberish spacing for nameless function
     arguments.

2017-03-22  Paul J. Lucas <paul@lucasmail.org>

   * ast.c: Added missing #define CDECL_AST_INLINE _GL_EXTERN_INLINE.
   * test/Makefile.am, declare_f_pi.out, explain_cpcpi.out, explain_cppi.out,
     explain_fixiy_v.out, declare_f_pi.test, explain_cpcpi.test,
     explain_cppi.test, explain_fixiy_v.test: More tests.
   * ast_util.c, cdgram.y, test/Makefile.am, explain_cpbv_pi.out,
     explain_cpbv_pi.test: Fixed pointer to blocks.
   * declare_cpfv_pi.out, explain_cpfv_pi.out, declare_cpfv_pi.test,
     explain_cpfv_pi.test: More tests.
   * cdgram.y: s/func/block/
   * test/Makefile.am, declare_cpi.out, explain_cpa3pa5i.out,
     explain_cpa9ci.out, explain_cpa9i.out, declare_cpi.test,
     explain_cpa3pa5i.test, explain_cpa9ci.test, explain_cpa9i.test: More
     tests.
   * test/Makefile.am, cast_pci.out, cast_pfii_i.out, cast_pi.out,
     explain_cast_pci.out, explain_cast_pfpi_i.out, explain_cast_pi.out,
     explain_cast_pic.out, cast_pci.test, cast_pf_i-02.test, cast_pfii_i.test,
     cast_pi.test, explain_cast_pci.test, explain_cast_pfpi_i.test,
     explain_cast_pi.test, explain_cast_pic.test: Test reorganization.
   * cast_pc.test, cast_pcc.test, cast_pf_i-01.test, cast_pf_i-02.test,
     cast_pfpci_i.test, cast_pfx_i.test, cast_pmi.test: Expanded abbreviations.
   * ast_util.c, ast_util.h, cdgram.y, test/Makefile.am, explain_cpa3cpa5i.out,
     explain_cpa3cpa5i.test: Now handling pointer to array of pointer to array.
   * AUTHORS, cdgram.y, test/Makefile.am, declare_fg_v.out, declare_fgi_v.out,
     declare_fg_v.test, declare_fgi_v.test: Changed "register" to be a modifier
     to handle register function arguments.
   * cdgram.y, test/Makefile.am, declare_gi.out, explain_fg_v.out,
     explain_fgi_v.out, explain_gi.out, explain_ig.out, declare_gi.test,
     explain_fg_v.test, explain_fgi_v.test, explain_gi.test, explain_ig.test:
     Added some register tests; fixed default int type.
   * ast.c: Moved function.
   * ast.c, ast.h: Removed clone functions -- not used.
   * english.c, gibberish.c: Added @file comments.
   * src/Makefile.am, ast.c, ast.h, ast_util.c, ast_util.h, cdgram.y: Moved AST
     algorithm functions to ast_util.c.

2017-03-21  Paul J. Lucas <paul@lucasmail.org>

   * ast.c, ast.h, cdgram.y: Moved c_ast_is_parent() to ast.h.
   * test/Makefile.am: More tests.
   * test/Makefile.am, explain_a3a5pfv_ppi.out, explain_a9cpi.out,
     explain_bii_d.out, explain_a3a5pfv_ppi.test, explain_a9cpi.test,
     explain_bii_d.test: More tests.
   * ast.c, ast.h, cdgram.y, test/Makefile.am, explain_a3a5pfv_ppa7pi.out,
     explain_a3a5pfv_ppa7pi.test: c_ast_patch_none() now traverses to root, if
     necessary.
   * test/Makefile.am, explain_a3a5pfv_ppa7i.out, explain_a3a5pfv_ppa7i.test:
     More tests.
   * test/Makefile.am, declare_cpri.out, declare_pfv_ri.out, explain_ri.out,
     explain_rpi.out, declare_cpri.test, declare_pfv_ri.test, explain_ri.test,
     explain_rpi.test: More reference tests.
   * test/Makefile.am: Renamed test.
   * test/Makefile.am, declare_pi.out, declare_pi.test: Renamed test.
   * ast.c: s/c_ast_head/c_ast_gc_head/
   * ast.c: Minor clean-up.
   * cdgram.y, common.h: Renamed syn_attr to c_ast_pair.
   * cdgram.y: Put assert() back; removed temp.
   * ast.c: All tests pass.

2017-03-19  Paul J. Lucas <paul@lucasmail.org>

   * cdgram.y: Got rid of using c_ast_clone().
   * ast.c: Added assert( loc ).
   * ast.c, ast.h, gibberish.c: Now only 1 copy of c_ast_vistor_kind().
   * cdgram.y, common.h: Temporary commit on syn_attr branch.
   * ast.c, ast.h, debug.c: Added AST node unique id.
   * test/Makefile.am, explain_a3a5pfv_pi.out, explain_a3a5pfv_ppa7a9i.out,
     explain_a3a5pfv_pi.test, explain_a3a5pfv_ppa7a9i.test: More tests.
   * cdgram.y: Now using literals in more places.

2017-03-17  Paul J. Lucas <paul@lucasmail.org>

   * cdlex.l, literals.c, literals.h: Added "mbr" as synonym for "member".
   * cdgram.y: Removed TYPE_PEEK() where apparently not needed.
   * ast.c: Fixed c_ast_list_clone() since c_ast_clone() no longer clones next.
   * types.h: Added comment.
   * ast.c, autocomplete.c, gibberish.c, util.h: Added C++-like CONST_CAST and
     REINTERPRET_CAST macros.

2017-03-16  Paul J. Lucas <paul@lucasmail.org>

   * cdgram.y: Now using bitwise or.
   * test/Makefile.am: Renamed tests so r no longer means "returning".
   * ast.c, ast.h, gibberish.c: Change c_kind to use individual bits.
   * cdgram.y, test/Makefile.am, explain_a3a5pfv_ri.out,
     explain_a3a5pfv_ri.test: Fixed another explain test.
   * cdgram.y: No longer using qualifier_push() for block_decl_c.
   * gibberish.c: Reference fix.
   * gibberish.c, test/Makefile.am, declare_bii_rd.out, declare_cpbv_rpi.out,
     declare_pbv_rpi.out, declare_bii_rd.test, declare_cpbv_rpi.test,
     declare_pbv_rpi.test: Blocks now work.
   * cdlex.l: Added (missing) L_BLOCK.
   * cdgram.y: Now calling yyclearin to clear lookahead after error.
   * configure.ac, cdecl.c, common.h, options.c: Now disabling color prompts on
     non-genuine GNU readline.

2017-03-15  Paul J. Lucas <paul@lucasmail.org>

   * gibberish.c: Added g_param_space().
   * ast.c, ast.h, cdgram.y, english.c, test/Makefile.am, explain_fid_rv.out,
     explain_fid_rv.test: Fixed named function arguments.
   * cdgram.y: Makde block closer to function.
   * gibberish.c: Added c_ast_has_ancestor().
   * gibberish.c: Array and function unification.
   * declare_a3a5pfv_rppa7pi.out: Correction.
   * test/Makefile.am: Added another (currently failing) test.
   * gibberish.c: Function reordering.
   * test/Makefile.am, declare_a3a5pfv_rppa7a9i.out,
     declare_a3a5pfv_rppa7i.out, declare_a3a5pfv_rppa7pi.out,
     declare_a3a5pfv_rppa7a9i.test, declare_a3a5pfv_rppa7i.test,
     declare_a3a5pfv_rppa7pi.test: More tests.
   * src/Makefile.am, ast.c, debug.c: Moved debug code to its own .c file.
   * src/Makefile.am, ast.c, english.c: Moved english code to its own .c file.
   * src/Makefile.am, ast.c, ast.h, gibberish.c, util.h: Moved gibberish code
     to its own .c file.
   * ast.c: Added root param to g_param_init().
   * ast.c, test/Makefile.am, declare_fv_rpa3a5i.out, declare_fv_rpa3a5pi.out,
     declare_fv_rpa3pi.out, declare_fv_rpa3a5i.test, declare_fv_rpa3a5pi.test,
     declare_fv_rpa3pi.test: Fixed another test.

2017-03-14  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c, color.c, color.h, common.h, util.c, util.h: Prompt is in color.
   * help_c.out, help_cxx.out: Updated expected help.
   * color.c, color.h, help.c: Help is now in color.
   * ast.c: Removed erroneous "return".
   * ast.c: Added comment.
   * ast.c: Now using false_set().
   * ast.c, test/Makefile.am, declare_fv_rpa3i.out, declare_fv_rpa3i.test:
     Fixed function returning pointer to array test.
   * ast.c: Added temporarily braces.

2017-03-13  Paul J. Lucas <paul@lucasmail.org>

   * ast.c, ast.h, test/Makefile.am, declare_a3a5pfv_rppi.out,
     declare_a3a5pfv_rppi.test: Now using visitor data; fixed another test.
   * ast.c, test/Makefile.am, declare_a3a5pfv_rpi.out, declare_pfv_rpi.out,
     declare_a3a5pfv_rpi.test, declare_pfv_rpi.test: pointer to function
     returning pointer fix.
   * test/Makefile.am, declare_a3a5pfv_ri.out, declare_a3a5pfv_ri.test: Another
     test.
   * ast.c: Added c_ast_gibberish_space_name(), comments.
   * ast.c: Fixed another function test.
   * ast.c: Updated comment.
   * ast.c: Removed blank line.
   * color.h: Added more color constants.
   * test/Makefile.am, declare_cpmi.out, declare_pmci.out, declare_cpmi.test,
     declare_pmci.test: More pointer-to-member tests.
   * cdgram.y: Moved default_case.
   * cdgram.y: Added c_ast_add_func().
   * test/Makefile.am, declare_a3ppfv_ri.out, explain_a3ppfv_ri.out,
     declare_a3ppfv_ri.test, explain_a3ppfv_ri.test: More tests; one still
     fails.
   * cdgram.y, declare_a3a5pfv_rppa7a9pc.out, explain_a3a5pfv_rppa7a9pc.out,
     declare_a3a5pfv_rppa7a9pc.test, explain_a3a5pfv_rppa7a9pc.test: Fixed
     array-of-pointer-to-function test.
   * ast.c, test/Makefile.am, declare_a3pfv_ri.out, explain_a3pfv_ri.out,
     declare_a3pfv_ri.test, explain_a3pfv_ri.test: More tests; one failing.
   * test/Makefile.am, declare_a9cpi.out, declare_cpa3cpa5i.out,
     declare_cpa3pa5i.out, declare_cpa9ci.out, declare_cpa9i.out,
     declare_pa3cpa5i.out, declare_a9cpi.test, declare_cpa3cpa5i.test,
     declare_cpa3pa5i.test, declare_cpa9ci.test, declare_cpa9i.test,
     declare_pa3cpa5i.test: More tests.
   * ast.c, ast.h, cdgram.y: Fixed tests; needs clean-up.

2017-03-12  Paul J. Lucas <paul@lucasmail.org>

   * ast.c: c_ast_gibberish_impl() arg reordering.
   * ast.c, test/Makefile.am, declare_pa3pa5i.out, declare_pa3pa5i.test: Added
     (currently failing) nester pointer/array test.

2017-03-11  Paul J. Lucas <paul@lucasmail.org>

   * cdgram.y: Factored out c_ast_add_array() code.
   * cdgram.y, test/Makefile.am, explain_pa3a5i.out, explain_pa3a5i.test: Fixed
     pointer to array of array.
   * ast.c, ast.h, cdgram.y, test/Makefile.am, explain_a3a5a7i.out,
     explain_a3a5i.out, explain_a3a5a7i.test, explain_a3a5i.test: Fixed
     declaration of multiply dimensioned arrays.
   * test/Makefile.am, declare_a9i.out, declare_a9pi.out, declare_pa9i.out,
     explain_a9i.out, explain_a9pi.out, explain_pa9i.out, declare_a9i.test,
     declare_a9pi.test, declare_pa9i.test, explain_a9i.test, explain_a9pi.test,
     explain_pa9i.test: Array test renaming.
   * ast.c, test/Makefile.am, declare_a3a5a7i.out, declare_a3a5i.out,
     declare_a3a5a7i.test, declare_a3a5i.test: Fixed multidimensional array
     gibberish.
   * common.c, common.h: Fixed headers.
   * cdgram.y, cdlex.l, common.c, common.h, test/Makefile.am, cast_x.cdecl,
     declare_x.cdecl, explain_x.cdecl, file-cast_x.test, file-declare_x.test,
     file-explain_x.test: Added file tests.
   * test/Makefile.am, cast_i.cdecl, declare_i.cdecl, explain_i.cdecl,
     file-cast_i.out, file-declare_i.out, file-explain_i.out, file-cast_i.test,
     file-declare_i.test, file-explain_i.test: Added file tests.
   * cdgram.y: Added yyerror() comment.
   * cdgram.y: Now printing yacc error in color.
   * cdgram.y: Now printing literal \n instead of newline.

2017-03-10  Paul J. Lucas <paul@lucasmail.org>

   * cdgram.y: Shorted in/out notation.
   * ast.c: Added comment.
   * cdgram.y: Macro renaming.
   * src/Makefile.am, cdgram.y, cdlex.l: yylval is not a pointer again.
   * src/Makefile.am, ast.c, ast.h, cdgram.y, cdlex.l, common.c, common.h,
     types.c, types.h: Now using Bison token location.

2017-03-09  Paul J. Lucas <paul@lucasmail.org>

   * lang.h: Added 'u'.
   * cdgram.y: Now clearing the qualifier stack and zeroing out in_attr.
   * test/Makefile.am, declare_ti-01.out, declare_ti-02.out,
     declare_ti-01.test, declare_ti-02.test: declare typedef tests.
   * test/Makefile.am, declare_ai-10.out, declare_fii_rv.out,
     declare_fixiy_rv.out, declare_fv_rv.out, declare_ai-10.test,
     declare_fii_rv.test, declare_fixiy_rv.test, declare_fv_rv.test: More
     tests.
   * cdgram.y, cdlex.l: Now printing column in error message; added
     parse_cleanup().
   * ast.c: Fixed printing of array names.
   * cdlex.l: s/n/caret_col/

2017-03-08  Paul J. Lucas <paul@lucasmail.org>

   * cdgram.y, types.c, test/Makefile.am, declare_ll.out, declare_sc.out,
     declare_si.out, declare_sll.out, declare_u.out, declare_uc.out,
     declare_ui.out, declare_ull.out, declare_ll.test, declare_sc.test,
     declare_si.test, declare_sll.test, declare_u.test, declare_uc.test,
     declare_ui.test, declare_ull.test: Fixed unsiged; more tests.
   * types.c: Now using true_or_set().
   * ast.c, test/Makefile.am, declare_cpcpi.out, declare_cvpi.out,
     declare_pcpi.out, declare_rci.out, declare_rcpi.out, declare_rpi.out,
     declare_cpcpi.test, declare_cvpi.test, declare_pcpi.test,
     declare_rci.test, declare_rcpi.test, declare_rpi.test: Fixed reference to
     pointer gibberish; more tests.
   * ast.c, ast.h, cdgram.y, util.c, util.h, test/Makefile.am,
     declare_cppi.out, declare_cppi.test: Fixed handling of const pointers.
   * cdgram.y: Removed name & storage inherited attributes.

2017-03-07  Paul J. Lucas <paul@lucasmail.org>

   * cdgram.y: Added more DUMPing.
   * ast.c, util.h, test/Makefile.am, declare_ppi.out, declare_ppi.test: Fixed:
     int * *x
   * ast.c: Fixed indent.
   * test/Makefile.am, declare_ci-01.out, declare_ci-02.out, explain_cpi.out,
     explain_cvpi.out, explain_pi.out, explain_vcpi.out, declare_ci-01.test,
     declare_ci-02.test, explain_cpi.test, explain_cvpi.test, explain_pi.test,
     explain_vcpi.test: More tests.
   * test/Makefile.am, declare_ri-01.out, declare_ri-02.out,
     declare_ri-01.test, declare_ri-02.test: Renamed some tests; additional
     reference test.
   * ast.c: More comments.
   * ast.c, test/Makefile.am, declare_pai-10.out, declare_pai-10.test: New
     declare array test and fix.
   * ast.c, test/Makefile.am, declare_api-10.out, explain_pai-10.out,
     declare_api-10.test, explain_pai-10.test: New declare array test and fix.
   * cdgram.y: Removed array size checks.
   * test/Makefile.am, explain_api-10.out, explain_api-10.test: Array of
     pointer test.
   * test/Makefile.am: Test renaming.

2017-03-06  Paul J. Lucas <paul@lucasmail.org>

   * ast.c, cdgram.y, color.h, keywords.h, lang.h, literals.h, options.h,
     types.h: Added @file comments; added C_TYPE_ADD.
   * test/Makefile.am: Test renaming.
   * test/Makefile.am, explain_cpc.out, explain_cvpc.out, explain_ppc.out,
     explain_rpc.out, explain_vcpc.out, explain_vpc.out, explain_cpc.test,
     explain_cvpc.test, explain_ppc.test, explain_rpc.test, explain_vcpc.test,
     explain_vpc.test: More tests.
   * test/Makefile.am, explain_ia-012.out, explain_ia-0xA_01.out,
     explain_ia-0xa_02.out, explain_ia-10.out, explain_ia-012.test,
     explain_ia-0xA_01.test, explain_ia-0xa_02.test, explain_ia-10.test: Some
     array tests.
   * types.c, test/Makefile.am, explain_is.out, explain_it.out, explain_ll.out,
     explain_si.out, explain_ti.out, explain_is.test, explain_it.test,
     explain_ll.test, explain_si.test, explain_ti.test: Fixed long long; more
     tests.
   * ast.c, cdgram.y: All tests pass.
   * cdgram.y, lang.c, set.c, test/Makefile.am, set.out, set_options.out,
     set.test: Fixed several tests.
   * help.c, help_c.out, help_cxx.out: Fixed help tests.
   * ast.c, ast.h, cdgram.y: DUMP_AST_LIST now dumps the whole list.
   * cdlex.l: Removed unnecessary cast; comment fixes.
   * cdgram.y, cdlex.l: Moved yywrap() to lex file.
   * cdgram.y, cdlex.l: Merged inherited attributes. Now using YYTEXT_POINTER.
   * cdgram.y: cast_list -> arg_list.
   * AUTHORS: Added mention of _Thread_local and typedef.
   * ast.c, ast.h, cdgram.y, cdlex.l, literals.c, literals.h: Better support
     for typedef.

2017-03-05  Paul J. Lucas <paul@lucasmail.org>

   * types.h: Fixed typo.
   * cast_pfpci_ri.out, cast_pfx_ri.out: Changed expected results.
   * types.c, types.h: c_type_add() now returns bool.
   * cdgram.y: Rule renaming.
   * ast.c, ast.h, cdgram.y: Split into c_ast_gibberish_cast() and
     c_ast_gibberish_declare().
   * ast.c: Refactoring.
   * ast.h: Updated comment.
   * util.h: Added @file comment.

2017-03-04  Paul J. Lucas <paul@lucasmail.org>

   * ast.c, ast.h: Added c_ast_take_storage(); fixed c_ast_json().
   * util.h: Added true_or_set().
   * types.h: Added bit masks.

2017-03-03  Paul J. Lucas <paul@lucasmail.org>

   * ast.c, ast.h, cdgram.y: Now using garbage collection for c_ast.
   * types.h: Added comment.

2017-02-28  Paul J. Lucas <paul@lucasmail.org>

   * ast.c, ast.h: Fixed printing English of function args; added
     c_ast_list_append().
   * ast.c: check_strdup() ignores null now.
   * cdgram.y: Fixed: type_c { PUSH_TYPE( $1 ); } cast_c

2017-02-27  Paul J. Lucas <paul@lucasmail.org>

   * autocomplete.c: Fixed readline #include.
   * cdgram.y: Now using ^^ -> and <-.
   * cdgram.y: Now cloning PEEK_TYPE().
   * ast.c: Better c_ast_free(); now allowing nunll for c_ast_pop().
   * cdgram.y: pointer to array of char works.
   * util.c, util.h: check_strdup() now allows null.
   * src/Makefile.am: s/readline_support/autocomplete/
   * ast.c: Got rid of c_ast_json_impl().
   * readline_support.c: Added c++98 and c++03.
   * lib/Makefile.am, errno.in.h, getdelim.c, getline.c, limits.in.h,
     stdint.in.h, stdio.in.h, errno_h.m4, getdelim.m4, getline.m4,
     gnulib-cache.m4, gnulib-comp.m4, limits-h.m4, longlong.m4, multiarch.m4,
     stdint.m4, stdio_h.m4, wint_t.m4: Added GNU getline().
   * configure.ac, lib/Makefile.am, gnulib-cache.m4, gnulib-comp.m4, cdecl.c,
     readline_support.c, set.c, util.c, util.h: Proper readline() support.
   * ast.c, cdgram.y, help.c, keywords.c, lang.c, lang.h, options.c, types.c:
     Improved LANG_ macros.
   * cdgram.y: Colon no longer in color.

2017-02-26  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c, util.c, util.h: Now only adding history for non-blank lines.
   * cdgram.y: Properly doing inherited attributes with pointers/references.
   * ast.c, ast.h: Added clone functions.
   * readline_support.c: Added rl_bind_key() -- but it still doesn't work.
   * cdgram.y: Reworked DUMP_RULE into DUMP_START.
   * cdlex.l, color.h: SGR_START/END macros now take stream parameter.

2017-02-25  Paul J. Lucas <paul@lucasmail.org>

   * util.c, util.h: Removed unused functions.
   * cdecl.c, cdlex.l: Can't trim leading whitespace: ^ needs it.
   * ast.c, common.h: Simplified print_indent().
   * cdlex.l: Now doing proper accounting for y_token_col.
   * cdgram.y: Reworked parse_erro().
   * cdecl.c: Reworked readline_wrapper().
   * util.c, util.h: Removed cat().
   * src/Makefile.am, ast.c, cdgram.y, cdlex.l, color.c, color.h, common.h,
     lang.c, options.c, set.c, types.c, util.c, util.h: Added color.
   * cdgram.y: Added some error cases.

2017-02-24  Paul J. Lucas <paul@lucasmail.org>

   * cdgram.y: Lots more DUMP code; added inherited attributes.
   * cdgram.y: Fixed DUMP_NUM.
   * cdgram.y: Fixed DUMP_NAME.
   * ast.c, cdgram.y, util.c, util.h: Improved JSON printing.
   * types.c, types.h: More comments.

2017-02-23  Paul J. Lucas <paul@lucasmail.org>

   * ast.c, ast.h, cdgram.y: Added separate node types for builtin and ecsu.
   * ast.c, ast.h: Added c_ast push/pop.

2017-02-22  Paul J. Lucas <paul@lucasmail.org>

   * types.c, types.h: Moved c_add_type() here.
   * cdgram.y: Reworking of DUMP macros.
   * cdlex.l: Minor change.

2017-02-21  Paul J. Lucas <paul@lucasmail.org>

   * ast.c, ast.h: Now exposing "indent" argument.
   * keywords.c, literals.c, literals.h, readline_support.c, types.c, types.h:
     Added typedef.
   * ast.c, ast.h: Added skeletal c_ast_gibberish().

2017-02-20  Paul J. Lucas <paul@lucasmail.org>

   * cdgram.y: Now distinguishing between "block" and "__block".
   * keywords.c, literals.c, literals.h, readline_support.c, types.c: Now
     distinguishing between "block" and "__block".
   * cdgram.y: Removed extraneous characters.
   * options.c: Setting yydebug to false.
   * options.c, options.h: Fixed yydebug.
   * types.c: Added missing T_UNION.
   * types.c: Now using STRCAT().
   * types.c: Now using strcpy_len().
   * util.c, util.h: Replaced visible() with printable_char().
   * types.c: Fixed c_type_name().
   * types.h: Fixed enum bits.
   * types.c: Fixed error messagein c_type_name().
   * ast.c: Fixed K_ENUM_CLASS_STRUCT_UNION.
   * cdgram.y: Switched to CDEBUG macro.
   * ast.c: Added assert().
   * ast.c, ast.h: Reordering; put assert() on object count back.
   * ast.c: Fixed JSON indenting.
   * ast.c: JSON fixes.
   * ast.c, ast.h: Initial JSON implementation.
   * util.h: Added FPUTC.
   * cdlex.l: Now strdup()'ing name tokens.
   * cdecl.c: Now using " in help message.
   * util.c, util.h: Added FREE().
   * keywords.c, keywords.h: Added c_keyword_find_token().
   * options.c: Reworked options.
   * cdlex.l: Fixed ? token.
   * types.c, types.h: Made c_type_check() return bool.
   * keywords.c: Moved THREAD_LOCAL to be C11 & CPP_11.
   * cdecl.c: Added call to c_ast_cleanup().

2017-02-19  Paul J. Lucas <paul@lucasmail.org>

   * lang.h: Added LANG_ALL.
   * types.c, types.h: Added enum, struct, union, class to restrictions.
   * keywords.c: L_CLASS and L_UNION now have distinct types.
   * literals.c, literals.h: thread_local is now also C++11.
   * types.h: Added T_UNION.
   * src/Makefile.am, help.c: Moved print_help() to its own file.

2017-02-18  Paul J. Lucas <paul@lucasmail.org>

   * cdecl.c: Now adding only non-whitespace lines to readline history.
   * util.c, util.h: Added trim_ws().
   * cdlex.l: Added keyword_find; copying yytext to local.
   * cdlex.l: Removed yywrap().
   * cdlex.l, keywords.c, keywords.h: s/keyword_find/c_keyword_find/
   * util.h: Added FPRINTF and FPUTS.
   * keywords.c: Fixed types.
   * cdlex.l, literals.c, literals.h: Added "restricted".

2017-02-17  Paul J. Lucas <paul@lucasmail.org>

   * util.c, util.h: Added strcpy_len().
   * src/Makefile.am, ast.c, ast.h, keywords.c, keywords.h, lang.c, lang.h,
     literals.c, literals.h, options.c, options.h, readline_support.c, types.c,
     types.h: Major refactoring.
   * configure.ac: Added --enable-yydebug.

2017-02-15  Paul J. Lucas <paul@lucasmail.org>

   * lang.c, lang.h: New files.

2017-02-14  Paul J. Lucas <paul@lucasmail.org>

   * cdgram.y: Fixed explain cast to accept (char const*).
   * AUTHORS, cdgram.y, cdlex.l, readline_support.c: Addde complex and
     restrict.

2017-02-13  Paul J. Lucas <paul@lucasmail.org>

   * cdgram.y, options.c, options.h: Added special long long handling.
   * readline_support.c: Added bool and wchar_t.
   * options.c, options.h: Now using format_opt().
   * test/Makefile.am, cast_pf_ri-01.out, cast_pf_ri-02.out, cast_pfpci_ri.out,
     cast_pfx_ri.out, cast_pmi.out, declare_pmi.out, declare_rc.out,
     explain_cast_pmi.out, explain_pmfxx_rps.out, explain_pmi.out,
     cast_pf_ri-01.test, cast_pf_ri-02.test, cast_pfpci_ri.test,
     cast_pfx_ri.test, cast_pmi.test, cdecl-ap.test, cdecl-x.test,
     declare_pmi.test, declare_rc.test, explain_cast_pmi.test,
     explain_pmfxx_rps.test, explain_pmi.test: More tests.
   * options.c: Now handling short options without long options.

2017-02-12  Paul J. Lucas <paul@lucasmail.org>

   * Makefile.am: Added "test".
   * test/Makefile.am, explain_fpci_rpi.out, explain_fpci_rpi.test: More tests.
   * test/Makefile.am, explain_ci.out, explain_ic.out, explain_ci.test,
     explain_ic.test, help_cxx.test: More tests.
   * AUTHORS, cdecl.c: Moved author info to AUTHORS file.
   * configure.ac, cdgram.y, options.c: Now using WITH_CDECL_DEBUG throughout.
   * cdecl.c, options.c: Fixed prompt.
   * test/Makefile.am, explain_cast_pf_ri.out, explain_cast_pfpc_ri.out,
     explain_cast_pfpci_ri.out, explain_cast_pf_ri.test,
     explain_cast_pfpc_ri.test, explain_cast_pfpci_ri.test: More tests.
   * configure.ac, test/Makefile.am, cast_pc.out, cast_pcc-01.out,
     cast_pcc-02.out, declare_fx_rpi.out, declare_pc.out, explain_cast_pc.out,
     explain_cast_pcc-01.out, explain_cast_pcc-02.out, explain_f_rpi.out,
     explain_fpc_rpi.out, explain_fv_rpi.out, explain_fx_rpi.out,
     explain_pc.out, help_c.out, help_cxx.out, set_options.out, run_test.sh,
     cast_pc.test, cast_pcc-01.test, cast_pcc-02.test, declare_fx_rpi.test,
     declare_pc.test, explain_cast_pc.test, explain_cast_pcc-01.test,
     explain_cast_pcc-02.test, explain_f_rpi.test, explain_fpc_rpi.test,
     explain_fv_rpi.test, explain_fx_rpi.test, explain_pc.test, help_c.test,
     help_cxx.test, set_options.test: Some tests.
   * cdlex.l: Added Apple comment.

2017-02-11  Paul J. Lucas <paul@lucasmail.org>

   * config.rpath, lib/Makefile.am, errno.in.h, getdelim.c, getline.c,
     limits.in.h, readline.c, readline.h, stdarg.in.h, stdint.in.h, stdio.in.h,
     errno_h.m4, getdelim.m4, getline.m4, gnulib-cache.m4, gnulib-comp.m4,
     lib-ld.m4, lib-link.m4, lib-prefix.m4, limits-h.m4, longlong.m4,
     multiarch.m4, readline.m4, stdarg.m4, stdint.m4, stdio_h.m4, wint_t.m4:
     Added GNUlib stdarg and readline.

2017-02-10  Paul J. Lucas <paul@lucasmail.org>

   * Makefile.am, lib/Makefile.am, getopt.c, getopt.in.h, getopt1.c,
     getopt_int.h, gettext.h, stdbool.in.h, stddef.in.h, stdlib.in.h,
     sys_types.in.h, sysexits.in.h, unistd.c, unistd.in.h, 00gnulib.m4,
     absolute-header.m4, ax_append_flag.m4, ax_cflags_gcc_option.m4,
     ax_cflags_warn_all.m4, ax_check_compile_flag.m4, extensions.m4,
     extern-inline.m4, getopt.m4, gnulib-cache.m4, gnulib-common.m4,
     gnulib-comp.m4, gnulib-tool.m4, include_next.m4, nocrash.m4, off_t.m4,
     onceonly.m4, ssize_t.m4, stdbool.m4, stddef_h.m4, stdlib_h.m4,
     sys_types_h.m4, sysexits.m4, unistd_h.m4, warn-on-use.m4, wchar_t.m4,
     man/Makefile.am, man/man1/Makefile.am, man/man1/c++decl.1,
     snippet/_Noreturn.h, snippet/arg-nonnull.h, snippet/c++defs.h,
     snippet/warn-on-use.h, src/Makefile.am, cdecl.c, cdgram.y, cdlex.l: Post
     gnulib import.

2016-11-29  ridiculousfish <corydoras@ridiculousfish.com>

   * cdecl.c: Fix some warnings about dangling elses
   * Makefile, cdecl.c, cdgram.y, test_expected_output.txt, testset: First
     attempt to support const-after-type
   * Makefile: make test to output unified diffs with context
   * Makefile, test_expected_output.txt: Make `make test` actually output the
     result of the test
   * Makefile: Don't run C++ tests by default

2016-11-28  ridiculousfish <corydoras@ridiculousfish.com>

   * README: Toot my horn in the README
   * Makefile: Compile explicitly as C89 via -std=c89
