Subject: Re: [PATCH] git-p4: add "--path-encoding" option

From: Torsten Bögershausen <[email-masked]>
Date: Mon, 31 Aug 2015 21:22:13 +0200

On 2015-08-31 19.40, Junio C Hamano wrote:
> [email-masked] writes:

>> +test_expect_success 'Create a repo containing cp1251 encoded paths' '
>> +	cd "$cli" &&
>> +
>> +	FILENAME="$(echo "a-¤_o-¶_u-¼.txt" | iconv -f utf-8 -t cp1252)" &&
> 
> Hmm, we'd be better off not having a bare UTF-8 sequence in the
> source like this, especially when you already have the same thing
> backslash-escaped in the "expect" file below.  Perhaps
> 
> 	NAME="a-\303\244_o-\303\266_u-\303\274.txt" &&
> 
> 	UTF8=$(printf "$NAME") &&
>         CP1252=$(printf "$NAME" | iconv -t cp1252) &&
>         echo "\"$UTF8\"" >expect &&
> 
>         >"$CP1252" &&
>         p4 add "$CP1252" &&
>         ...
> 
Using file names and iconv like this may not be portable:
- cp1252 may be called CP1252 (or may not be available)
- reading from stdin is not necessarily supported by iconv
- creating files in CP1252 may not be supported under Mac OS
   (Not sure about Windows)

One solution could be to use ISO-8859-1, convert into UTF-8,
and "convert into UTF-8" one more time.

We can skip using iconv in the test case completely, and use
something like this:
(Fully untested)

UTF8=$(printf '\303\203\302\204')
NAME=$(printf '\303\204')