From: Brandon Casey <drafnel@xxxxxxxxx> Add an entry to the please_set_SHELL_PATH_to_a_more_modern_shell target which tests whether the shell supports ${parameter%word} expansion. I assume this one test is enough to indicate whether the shell supports the entire family of prefix and suffix removal syntax: ${parameter%word} ${parameter%%word} ${parameter#word} ${parameter##word} FreeBSD, for one, has a /bin/sh that, apparently, supports $() notation but not the above prefix/suffix removal notation. --- On 09/05/2011 02:09 AM, Junio C Hamano wrote: > Naohiro Aota <naota@xxxxxxxxx> writes: > >> Variable expansions like "${foo#bar}" or "${foo%bar}" doesn't work on >> shells like FreeBSD sh and they made the test to fail. > > Sorry, I do appreciate the effort, but a patch like this takes us in the > wrong direction. > > While we do not allow blatant bashisms like ${parameter:offset:length} > (substring expansion), ${parameter/pattern/string} (pattern substitution), > "local" variables, "function" noiseword, and shell arrays in our shell > scripts, the two kinds of substitution you quoted above are purely POSIX, > and our coding guideline does allow them to be used in the scripts. Perhaps we should add a test for this shell feature. -Brandon Makefile | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/Makefile b/Makefile index 8d6d451..46d9c5d 100644 --- a/Makefile +++ b/Makefile @@ -1738,6 +1738,7 @@ endif please_set_SHELL_PATH_to_a_more_modern_shell: @$$(:) + @foo=bar_suffix && test bar = "$${foo%_*}" shell_compatibility_test: please_set_SHELL_PATH_to_a_more_modern_shell -- 1.7.6.1 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html