|Subject:||basename function in 4.3 cygwin|
|Date:||Fri, 21 May 2021 08:31:13 +0000|
I have noticed a nasty difference in behavior between 4.3 and 3.81 versions of gnu-make in cygwin.
I have checked and confirmed that this doesn’t occur in the gnu-linux version of make.
The difference happens when a suffix contains one or more backslashes. This is sometimes needed to escape special behavior of meta characters in the shell. The basename function in 3.81 would return everything up to the last period like documented in the info file, but the basename function in 4.3 apparently considers the backslash in the suffix as a path separator (I guess...).
I did find a workaround to emulate the old behavior:
$(foreach x,$(INPUT),$(firstword $(subst ., ,$x)))
used to return.
I’m not sure if this qualifies as a bug per-se, but it is a nasty difference in behavior anyway. At least this should be documented in the info file.
|[Prev in Thread]||Current Thread||[Next in Thread]|