make/tests/scripts/functions
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
..
abspath Add test suite support to Windows 2017-06-04 18:37:20 -04:00
addprefix
addsuffix
andor - New code capability: a read-only string cache. Start of solution for 2006-02-10 05:29:00 +00:00
basename
call [SV 46995] Strip leading/trailing space from variable names 2016-03-23 01:25:51 -04:00
dir
error [SV 46433] Show recipe line offsets in line number messages. 2016-04-11 07:51:05 -04:00
eval tests: Simplify customization of %ENV 2020-04-01 02:02:57 -04:00
file Fix build and test issues on Windows 2021-03-28 16:25:52 -04:00
filter-out [SV 59093] Rewrite filter/filter-out to avoid large stack usage 2020-11-13 00:44:24 -05:00
findstring
flavor Implemented the flavor function which returns the flavor of 2005-11-17 07:27:28 +00:00
foreach tests: Simplify customization of %ENV 2020-04-01 02:02:57 -04:00
guile * tests/scripts/function/guile: Valgrind doesn't work with Guile. 2019-09-21 15:38:52 -04:00
if
intcmp * src/function.c (parse_textint): Handle ints without 0 properly. 2022-01-17 19:11:59 -05:00
join
let Create $(let ...) providing lexically scoped variables 2020-12-06 18:30:58 -05:00
notdir
origin tests: Simplify customization of %ENV 2020-04-01 02:02:57 -04:00
realpath Add test suite support to Windows 2017-06-04 18:37:20 -04:00
shell [SV 63040] shell: Fall back to the callers environment 2022-09-10 16:27:47 -04:00
sort [SV 46995] Strip leading/trailing space from variable names 2016-03-23 01:25:51 -04:00
strip
substitution
suffix
value
warning [SV 46433] Show recipe line offsets in line number messages. 2016-04-11 07:51:05 -04:00
wildcard * tests/scripts/functions/wildcard: Skip slash tests for local glob. 2019-10-05 17:48:19 -04:00
word Use a well-known error string for out-of-bound function arguments 2021-12-19 16:34:19 -05:00