make/tests/scripts
Paul Smith 70ba0357a0 [SV 63040] shell: Fall back to the callers environment
If we detect a recursive variable reference when constructing the
environment for the shell function, return the original value from the
caller's environment.  Other options such as failing, returning the
empty string, or returning the unexpanded make variable value have
been shown to not behave well in real-world environments.  If the
variable doesn't exist in the caller's environment, return the empty
string.

Found by Sergei Trofimovich <slyich@gmail.com> when testing older
versions of autoconf.

* NEWS: Clarify this behavior.
* doc/make.texi (Shell Function): Ditto.  Also add info about !=.
* src/expand.c (recursively_expand_for_file): Search the caller's
environment if we detect a recursive variable expansion.
* tests/scripts/functions/shell: Add tests for this behavior.
2022-09-10 16:27:47 -04:00
..
features Fix tests for MacOS and Windows 2022-08-30 21:05:34 -04:00
functions [SV 63040] shell: Fall back to the callers environment 2022-09-10 16:27:47 -04:00
misc tests: Allow run_make_test() to avoid passing -f 2022-02-27 17:47:42 -05:00
options [SV 62100] Add '--shuffle' option support 2022-06-04 19:04:37 -04:00
targets Remove extraneous characters from fatal() calls 2022-02-27 18:01:13 -05:00
variables Fix tests for MacOS and Windows 2022-08-30 21:05:34 -04:00
vms Refresh the test suite framework implementation. 2019-09-16 08:25:33 -04:00
test_template Update the test template. A few fixes in run_make_test(). 2004-09-22 04:36:17 +00:00