Subject: Re: [PATCH] submodule: fix quoting in relative_path()

From: John Keeping <[email-masked]>
Date: Wed, 24 Apr 2013 17:28:50 +0100

On Wed, Apr 24, 2013 at 09:21:38AM -0700, Junio C Hamano wrote:
> John Keeping <[email-masked]> writes:
> 
> >> > Why not just replace the six-liner by this one-liner:
> >> >
> >> > 		target=${target#"$curdir"/}
> >> 
> >> Simple enough ;-)
> >
> > This seems to have arrived on next without this fix, so here's a patch
> > on top.
> >
> >  git-submodule.sh | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/git-submodule.sh b/git-submodule.sh
> > index 0eee703..db9f260 100755
> > --- a/git-submodule.sh
> > +++ b/git-submodule.sh
> > @@ -127,7 +127,7 @@ relative_path ()
> >  	do
> >  		case "$target" in
> >  		"$curdir/"*)
> > -			target=${target#$curdir/}
> > +			target=${target#"$curdir"/}
> >  			break
> >  			;;
> >  		esac
> 
> J6t meant a patch to remove the entire case...esac and replace it
> with a single liner (target=${target#"$curdir"/}).

Ah, I missed the "six-liner" part.  But that doesn't work because we
break out of the do...while loop when "$target" starts with "$curdir/"
and replacing the case statement will remove that.