Re: 'git diff' command doesn't honor utf8 symbol boundaries, and doesn't use actual terminal width
On Sat, Jan 25, 2014 at 10:34 AM, Yuri <yuri@rawbw.com> wrote:
Show 20 quoted lines
> The fragment of 'git diff' output looks like this:
> - <translation>Ошибка: адрес %1 содержит запрещенные символы. Пожалуйста,
> перепро�
> + <translation>Ошибка: адрес %1 содержит запрещённые символы. Пожалуйста,
> перепро�
>
> Two issues here:
> 1. Cyrilic text in utf8 got truncated not at utf8 boundary, causing this
> garbage symbol in the end
> 2. Truncation is done at somewhat ~70% of the actual screen width. git could
> go all the way to the whole screen with, but it didn't. Shrinking terminal
> width causes the output truncation limit to shrink in the same proportion.
> So some bad decision about truncation size is made somewhere in 'git diff'
> command.
>
> Suggested behavior:
> 1. git should respect utf8, and in case of truncation it should add …
> symbol.
> 2. truncation algorithm should read current terminal width and truncate at
> width-1 length to allow for the above-mentioned symbol
I don't think git diff truncates its output (it does truncate @@ lines, but not the real diff). Perhaps your pager did that?
--
Duy