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 * Added the test suite to the main distribution. 1999-09-14 02:03:19 +00:00
addsuffix * Various fixes for problems in the 3.79.0.1 pretest. 2000-06-19 21:22:44 +00:00
andor - New code capability: a read-only string cache. Start of solution for 2006-02-10 05:29:00 +00:00
basename * Added the test suite to the main distribution. 1999-09-14 02:03:19 +00:00
call [SV 46995] Strip leading/trailing space from variable names 2016-03-23 01:25:51 -04:00
dir * Added the test suite to the main distribution. 1999-09-14 02:03:19 +00:00
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 * Added the test suite to the main distribution. 1999-09-14 02:03:19 +00:00
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 Fix bugs 5798 and 6195. 2003-11-04 07:40:29 +00:00
intcmp * src/function.c (parse_textint): Handle ints without 0 properly. 2022-01-17 19:11:59 -05:00
join * Added the test suite to the main distribution. 1999-09-14 02:03:19 +00:00
let Create $(let ...) providing lexically scoped variables 2020-12-06 18:30:58 -05:00
notdir * Added the test suite to the main distribution. 1999-09-14 02:03:19 +00:00
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 * Various bug fixes. 2000-04-22 02:11:17 +00:00
substitution Fix some bugs in variable pattern substitution (e.g. $(VAR:A=B)), 2004-09-21 04:00:31 +00:00
suffix * Added the test suite to the main distribution. 1999-09-14 02:03:19 +00:00
value Major updates in preparation for 3.80. 2002-07-08 02:26:47 +00:00
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