[Buildroot] [PATH for-next] package/htop: remove 0xe2 from MetersPanel.c
Romain Naour
romain.naour at gmail.com
Sun Feb 25 20:30:23 UTC 2018
Hi Arnout,
Le 25/02/2018 à 17:54, Arnout Vandecappelle a écrit :
>
>
> On 20-02-18 23:20, Romain Naour wrote:
>> This non ascii character trigger an issue with MakeHeader.py.
>>
>> ./scripts/MakeHeader.py MetersPanel.c
>> Traceback (most recent call last):
>> File "./scripts/MakeHeader.py", line 32, in <module>
>> for line in file.readlines():
>> File "[...]/output/host/lib/python3.6/encodings/ascii.py", line 26, in decode
>> return codecs.ascii_decode(input, self.errors)[0]
>> UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 956: ordinal not in range(128)
>
> It would be better to patch MakeHeader.py to avoid this error entirely, which
> could also be upstreamed. I *think* it is sufficient to do:
>
> file = open(sys.argv[1], 'rb')
>
> and later
>
> for line in file.readlines():
> line = line[:-1]
> line = line.decode('utf-8')
>
> That should work both in Python 2 and 3.
The problem is that Matt and I can't reproduce the issue, even on the same machine.
I'm not sure your proposal can fix the issue, the error seems come from
"file.readlines()" call.
Best regards,
Romain
>
> Regards,
> Arnout
>
>>
>> Fixes:
>> http://autobuild.buildroot.net/results/8ed/8edb78b054a265447fd0e83f67cba5f978be4ed6
>>
>> Signed-off-by: Romain Naour <romain.naour at gmail.com>
>> ---
>> Matt, can you test on "U16.04 Bacon" autobuilder ? I can't reproduce here.
>>
>> I just looked what changed recently in htop and this commit looks
>> suspicious:
>> https://github.com/hishamhm/htop/commit/0108117d0b4f1e822f434db173e976aac20b26b5
>>
>> Thanks !
>>
>> Romain
>> ---
>> ...etersPanel-remove-0xe2-from-MetersPanel.c.patch | 52 ++++++++++++++++++++++
>> 1 file changed, 52 insertions(+)
>> create mode 100644 package/htop/0001-MetersPanel-remove-0xe2-from-MetersPanel.c.patch
>>
>> diff --git a/package/htop/0001-MetersPanel-remove-0xe2-from-MetersPanel.c.patch b/package/htop/0001-MetersPanel-remove-0xe2-from-MetersPanel.c.patch
>> new file mode 100644
>> index 0000000000..81f9d1bd97
>> --- /dev/null
>> +++ b/package/htop/0001-MetersPanel-remove-0xe2-from-MetersPanel.c.patch
>> @@ -0,0 +1,52 @@
>> +From ae32d292ca641c08b6db8d2f7cfcce2a54d00835 Mon Sep 17 00:00:00 2001
>> +From: Romain Naour <romain.naour at gmail.com>
>> +Date: Tue, 20 Feb 2018 23:09:24 +0100
>> +Subject: [PATCH] MetersPanel: remove 0xe2 from MetersPanel.c
>> +
>> +This non ascii character trigger an issue with MakeHeader.py.
>> +
>> +./scripts/MakeHeader.py MetersPanel.c
>> +Traceback (most recent call last):
>> + File "./scripts/MakeHeader.py", line 32, in <module>
>> + for line in file.readlines():
>> + File "[...]/output/host/lib/python3.6/encodings/ascii.py", line 26, in decode
>> + return codecs.ascii_decode(input, self.errors)[0]
>> +UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 956: ordinal not in range(128)
>> +
>> +http://autobuild.buildroot.net/results/8ed/8edb78b054a265447fd0e83f67cba5f978be4ed6/build-end.log
>> +
>> +Signed-off-by: Romain Naour <romain.naour at gmail.com>
>> +---
>> + MetersPanel.c | 2 +-
>> + MetersPanel.h | 2 +-
>> + 2 files changed, 2 insertions(+), 2 deletions(-)
>> +
>> +diff --git a/MetersPanel.c b/MetersPanel.c
>> +index 3cf3e07..47296a4 100644
>> +--- a/MetersPanel.c
>> ++++ b/MetersPanel.c
>> +@@ -37,7 +37,7 @@ static const char* const MetersFunctions[] = {"Style ", "Move ", "
>> + static const char* const MetersKeys[] = {"Space", "Enter", " ", "Del", "F10"};
>> + static int MetersEvents[] = {' ', 13, ERR, KEY_DC, KEY_F(10)};
>> +
>> +-// We avoid UTF-8 arrows ← → here as they might display full-width on Chinese
>> ++// We avoid UTF-8 arrows <- -> here as they might display full-width on Chinese
>> + // terminals, breaking our aligning.
>> + // In <http://unicode.org/reports/tr11/>, arrows (U+2019..U+2199) are
>> + // considered "Ambiguous characters".
>> +diff --git a/MetersPanel.h b/MetersPanel.h
>> +index e00169c..e80754a 100644
>> +--- a/MetersPanel.h
>> ++++ b/MetersPanel.h
>> +@@ -29,7 +29,7 @@ struct MetersPanel_ {
>> +
>> + // Note: In code the meters are known to have bar/text/graph "Modes", but in UI
>> + // we call them "Styles".
>> +-// We avoid UTF-8 arrows ← → here as they might display full-width on Chinese
>> ++// We avoid UTF-8 arrows <- -> here as they might display full-width on Chinese
>> + // terminals, breaking our aligning.
>> + // In <http://unicode.org/reports/tr11/>, arrows (U+2019..U+2199) are
>> + // considered "Ambiguous characters".
>> +--
>> +2.14.3
>> +
>>
>
More information about the buildroot
mailing list