FYI: It should be possible to test this patch on a modern system by doing something like: make SHELL_PATH=/bin/false and you should see something like this: make: *** [please_set_SHELL_PATH_to_a_more_modern_shell] Error 1 But beware, GNU make 3.81 seems to have a bug which sends it into an infinite loop. make 3.80 produces the desired results, as does 3.77 which I have installed on an old machine. GNU make 3.82 seems to be the latest but I don't have access to it. If anyone does, I'd appreciate if you could test. -Brandon On 09/06/2011 02:09 PM, Brandon Casey wrote: > 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 > -- 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