tests: expose automake bug#14441

* t/suffix-custom-pr14441.sh: New test, still failing.
* t/list-of-tests.mk (handwritten_TESTS, XFAIL_TESTS): Add it.

Helped-by: Felix Salfelder <felix@salfelder.org>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Automake::Rule: expose suffix rules as a function, not a scalar

This is just a preparatory refactoring in view of future patches.
No semantic change is intended.

* lib/Automake/Rule.pm ($suffix_rules): Turn from a package-level
variable to a lexical variable.
(suffix_rule): New function, expose the details of $suffix_rules
that are actually required by code outside thus modules --- and
only those details, no more.
(@EXPORT): Adjust.
* automake.in (derive_suffix): Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
suffix rules: better distinction between builtin and user-derived

Fixes automake bug#14441.

* lib/Automake/Rule.pm ($_suffix_rules_default): Remove, superseded by ...
(%suffix_rules_builtin): ... this lexical variable.
($suffix_rules): Remove, superseded by ...
(%suffix_rules): ... this lexical variable.
(suffix_rules, suffix_rules_count): Adjust.
(register_suffix_rule): Update '%suffix_rules_builtin' rather than
'%suffix_rules' if the location (as passed by the '$where' argument)
is an "internal" one (doesn't come from user-provided Makefile.am).
(reset): Simplify resetting of '%suffix_rules' to the default ones
accordingly.
* t/list-of-tests.mk (XFAIL_TESTS): Drop test 'suffix-custom-pr14441.sh'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Automake::Rule: make private variables lexically scoped

* lib/Automake/Rule.pm (@_known_extensions_list): This one.
(@_suffixes): And this one.
(%_rule_dict): And this one.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Automake::Rule: adjust comments and POD according to previous changes

* lib/Automake/Rule.pm: Here, in several places.
* automake.in (register_language): And a tiny adjustment here as well.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain()

* lib/Automake/Rule.pm (suffix_rule): Rename ...
(next_in_suffix_chain): ... like this.
(%suffix_rules): Adjust comments.
(@EXPORT): Adjust.
* automake.in (derive_suffix): Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Automake::Rule: consistently prepend underscore to private variables

* lib/Automake/Rule.pm (%suffix_rules): Rename ...
(%_suffix_rules): ... like this.
(%suffix_rules_builtin): Rename ...
(%_suffix_rules_builtin): ... like this.
(reset, next_in_suffix_chain, register_suffix_rule, suffix_rules_count):
Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: document fix for bug#14441

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'suffix-rules-work' into micro

* suffix-rules-work:
  NEWS: document fix for bug#14441
  Automake::Rule: consistently prepend underscore to private variables
  Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain()
  Automake::Rule: adjust comments and POD according to previous changes
  Automake::Rule: make private variables lexically scoped
  suffix rules: better distinction between builtin and user-derived
  Automake::Rule: expose suffix rules as a function, not a scalar
  tests: expose automake bug#14441
NEWS: fix Automake versions

Reported-by: Peter Rosin <peda@lysator.liu.se>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: fix typos and grammaros

Reported-by: Peter Rosin <peda@lysator.liu.se>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: drop an idiomatic use of latinism 'sic'

Reported-by: Peter Rosin <peda@lysator.liu.se>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint

* micro:
  NEWS: fix typos and grammaros
  NEWS: document fix for bug#14441
  Automake::Rule: consistently prepend underscore to private variables
  Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain()
  Automake::Rule: adjust comments and POD according to previous changes
  Automake::Rule: make private variables lexically scoped
  suffix rules: better distinction between builtin and user-derived
  Automake::Rule: expose suffix rules as a function, not a scalar
  tests: expose automake bug#14441
Merge branch 'maint'

* maint:
  NEWS: fix typos and grammaros
  NEWS: document fix for bug#14441
  Automake::Rule: consistently prepend underscore to private variables
  Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain()
  Automake::Rule: adjust comments and POD according to previous changes
  Automake::Rule: make private variables lexically scoped
  suffix rules: better distinction between builtin and user-derived
  Automake::Rule: expose suffix rules as a function, not a scalar
  tests: expose automake bug#14441
tests: avoid a spurious failure when $CC != cc

Fixes automake bug#14500.

* t/subpkg.sh: Improve the grepping of configure output.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid a spurious failure when TeX is not installed.

Fixes automake bug#14499.

* t/txinfo-no-split.sh: If TeX is not available, redefine 'dvi' to be a
dummy target, so that "make distcheck" doesn't fail while trying to build
the DVI version of the Texinfo manual.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid a spurious failure on non-POSIX systems

Fixes automake bug#14495.

* t/lex-header.sh: Make sure unistd.h isn't included.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
tests: avoid a spurious failure with MSVC

Fixes automake bug#14498.

* t/yacc-bison-skeleton.sh: inline was not standardized prior to C99.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
Merge branch 'master' into ng/master

* master:
  tests: avoid a spurious failure when $CC != cc
  NEWS: drop an idiomatic use of latinism 'sic'
  NEWS: fix typos and grammaros
  NEWS: fix Automake versions
  NEWS: document fix for bug#14441
  Automake::Rule: consistently prepend underscore to private variables
  Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain()
  Automake::Rule: adjust comments and POD according to previous changes
  Automake::Rule: make private variables lexically scoped
  suffix rules: better distinction between builtin and user-derived
  Automake::Rule: expose suffix rules as a function, not a scalar
  tests: expose automake bug#14441

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>

+ Extra non-trivial changes:

* bin/automake.in, lib/Automake/Rule.pm: Drop changes related to
user-defined source extensions, that are not supported in Automake-NG
(see section "Source Files with Unknown Extensions" in NG-NEWS for
details).
t/suffix-custom-pr14441.sh: Remove, since this script tested features
related to user-defined source.
cosmetics: tiny whitespace fixlets

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>