Use sed instead of expr to split a flag from its argument.

Fixes a problem with expr interpreting its arguments as a flag
when they start with a dash.
This commit is contained in:
Todd C. Miller
2010-09-13 16:34:38 -04:00
parent fdf877d53b
commit 607eab1151

View File

@@ -71,7 +71,7 @@ while ${MORETODO} ; do
;; ;;
X-b*) X-b*)
BACKIT=true BACKIT=true
BACKUP=`expr "$1" : '-b\(.*\)'` BACKUP="`echo \"$1\" | sed 's/^..//'`"
;; ;;
X-c) X-c)
# backwards compatibility # backwards compatibility
@@ -85,7 +85,7 @@ while ${MORETODO} ; do
shift shift
;; ;;
X-g*) X-g*)
GROUP=`expr "$1" : '-g\(.*\)'` GROUP="`echo \"$1\" | sed 's/^..//'`"
CHGROUPIT=true CHGROUPIT=true
;; ;;
X-G) X-G)
@@ -95,7 +95,7 @@ while ${MORETODO} ; do
;; ;;
X-G*) X-G*)
if ${ROOT} ; then if ${ROOT} ; then
GROUP=`expr "$1" : '-g\(.*\)'` GROUP="`echo \"$1\" | sed 's/^..//'`"
CHGROUPIT=true CHGROUPIT=true
fi fi
;; ;;
@@ -105,7 +105,7 @@ while ${MORETODO} ; do
shift shift
;; ;;
X-m*) X-m*)
MODE=`expr "$1" : '-m\(.*\)'` MODE="`echo \"$1\" | sed 's/^..//'`"
CHMODIT=true CHMODIT=true
;; ;;
X-M) X-M)
@@ -114,7 +114,7 @@ while ${MORETODO} ; do
shift shift
;; ;;
X-M*) X-M*)
MODE=`expr "$1" : '-m\(.*\)'` MODE="`echo \"$1\" | sed 's/^..//'`"
${ROOT} && CHMODIT=true ${ROOT} && CHMODIT=true
;; ;;
X-n) X-n)
@@ -126,7 +126,7 @@ while ${MORETODO} ; do
shift shift
;; ;;
X-o*) X-o*)
OWNER=`expr "$1" : '-o\(.*\)'` OWNER="`echo \"$1\" | sed 's/^..//'`"
CHOWNIT=true CHOWNIT=true
;; ;;
X-O) X-O)
@@ -136,7 +136,7 @@ while ${MORETODO} ; do
;; ;;
X-O*) X-O*)
if ${ROOT} ; then if ${ROOT} ; then
OWNER=`expr "$1" : '-o\(.*\)'` OWNER="`echo \"$1\" | sed 's/^..//'`"
CHOWNIT=true CHOWNIT=true
fi fi
;; ;;