Subject: Re: [PATCHv3 2/2] git submodule: Fix adding of submodules at paths with ./, .. and //

From: Johannes Sixt <[email-masked]>
Date: Tue, 03 Mar 2009 14:08:54 +0100

Michael J Gruber schrieb:
> +	# normalize path:
> +	# multiple //; leading ./; /./; /../; trailing /
> +	path=$(printf '%s/\n' "$path" |
> +		sed -e '
> +			s|//*|/|g
> +			s|^\(\./\)*||
> +			s|/\./|/|g
> +			:start
> +			s|\([^/]*\)/\.\./||g

Sorry to say: not yet. This turns "a/b/c/d/../../../d" into "a/b/c/d"
instead of "a/d". Drop the 'g'.

Once this is fixed, I have to ask what should happen with path names like
"../a/b", "../../a/b"? Should there be a warning or error?

Other than that, this expression works on AIX 4.3.3! Note in particular
that '\n' in the printf format string is essential!

> +			tstart
> +			s|/*$||
> +		')

-- Hannes