expand: Fix scanright zero handling when fnmatch is disabled
Herbert Xu <[email protected]> Sun, 9 Mar 2025 16:51:53 +0800
| Newsgroups | org.kernel.vger.dash |
|---|---|
| Message-ID | <[email protected]> |
Johannes Altmanninger <[email protected]> wrote: > I noticed another regression in c5bf970 (expand: Add multi-byte > support to pmatch, 2024-06-02). > > This command now prints "abc-def" but used to print "ef". > > x=abc-def > y="${x##*d}" > echo "$y" Fix this by setting s to the correct value in scanright based on FNMATCH_IS_ENABLED. Fixes: c5bf9702ea11 ("expand: Add multi-byte support to pmatch") Signed-off-by: Herbert Xu <[email protected]> diff --git a/src/expand.c b/src/expand.c index 7a30648..0066e1a 100644 --- a/src/expand.c +++ b/src/expand.c @@ -650,7 +650,7 @@ static char *scanright(char *startp, char *endp, char *rmesc, char *rmescend, if (zero) { *s = '\0'; - s = rmesc; + s = FNMATCH_IS_ENABLED ? rmesc : startp; } match = pmatch(str, s); *(FNMATCH_IS_ENABLED ? loc2 : loc) = c; Thanks, -- Email: Herbert Xu <[email protected]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt