From: Jakub Narębski Date: Fri, 10 Oct 2014 11:19:40 GMT Subject: Re: [PATCH v2] mergetool: use more conservative temporary filenames Message-ID: <5437C0CC.7030102@gmail.com> In-Reply-To: <1412929187-57936-1-git-send-email-davvid@gmail.com> David Aguilar wrote: > Avoid filenames with multiple dots so that overly-picky tools do > not misinterpret their extension. > > Previously, foo/bar.ext in the worktree would result in e.g. > > ./foo/bar.ext.BASE.1234.ext > > This can be improved by having only a single .ext and using > underscore instead of dot so that the extension cannot be > misinterpreted. The resulting path becomes: > > ./foo/bar_BASE_1234.ext > > Suggested-by: Sergio Ferrero > Helped-by: Junio C Hamano > Signed-off-by: David Aguilar > --- > + if BASE=$(expr "$MERGED" : '\(.*\)\.[^/]*$') > + then > + ext=$(expr "$MERGED" : '.*\(\.[^/]*\)$') > + else > + BASE=$MERGED > + ext= > + fi Why use expr and not POSIX shell parameter substitution? BASE=${MERGED%.*} ext=.${MERGED##*.} Or something like that... -- Jakub Narębski