Shell utilities: Guard against expr' magic tokens.

Some words, e.g., `match', are special to expr(1), and cause strange
parsing effects.  Track down all uses of expr and mangle the arguments
so that this isn't a problem.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Mark Wooding
2006-04-13 22:01:24 +00:00
committed by Junio C Hamano
parent 2283645b85
commit f327dbced2
9 changed files with 30 additions and 30 deletions

View File

@ -38,12 +38,12 @@ Perhaps git-update-server-info needs to be run there?"
}
while read sha1 refname
do
name=`expr "$refname" : 'refs/\(.*\)'` &&
name=`expr "z$refname" : 'zrefs/\(.*\)'` &&
case "$name" in
*^*) continue;;
esac
if test -n "$use_separate_remote" &&
branch_name=`expr "$name" : 'heads/\(.*\)'`
branch_name=`expr "z$name" : 'zheads/\(.*\)'`
then
tname="remotes/$origin/$branch_name"
else
@ -346,7 +346,7 @@ then
# new style repository with a symref HEAD).
# Ideally we should skip the guesswork but for now
# opt for minimum change.
head_sha1=`expr "$head_sha1" : 'ref: refs/heads/\(.*\)'`
head_sha1=`expr "z$head_sha1" : 'zref: refs/heads/\(.*\)'`
head_sha1=`cat "$GIT_DIR/$remote_top/$head_sha1"`
;;
esac