bittorrent: Fix mojibake introduced in parsing arai2c progress output.

hGetSomeString reads one byte at a time, so unicode bytes are not composed.
The problem comes when outputting that to the console with hPut; that
tried to apply the handle's encoding, and so we get mojibake.

Instead, use ByteStrings, and only convert it to a string for parsing, not
for display.

Note that there are a couple of other things that use hGetSomeString,
which I've left as-is for now.
This commit is contained in:
Joey Hess 2015-02-10 12:34:34 -04:00
parent b80a434685
commit a787cead35
4 changed files with 23 additions and 4 deletions

View file

@ -0,0 +1,14 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2015-02-10T16:11:09Z"
content="""
This is because aria2c detects it's not outputting to a terminal, so it
stops using \r for progress displays. You can get the same effect by piping
aria2c to less. There does not seem to be any switch to force console-style
output.
The only solution would be the complexity of making git-annex use a pty
internally, or just not showing aria2c progress output (or not intercepting
it for metering).
"""]]

View file

@ -173,3 +173,5 @@ LC_ALL=
"""]]
Previous similar UTF-8 bug: [[forget_corrupts_non-ascii_chars]]. Looks similar. --[[anarcat]]
> [[fixed|done]] --[[Joey]]