lib/ucs2_string: Correct ucs2 -> utf8 conversion
commit63e236fd7ab3a9fc10cfe7d27e218a8116ae8cf6
authorJason Andryuk <jandryuk@gmail.com>
Fri, 12 Feb 2016 23:13:33 +0000 (12 23:13 +0000)
committerSasha Levin <sasha.levin@oracle.com>
Tue, 12 Apr 2016 21:06:29 +0000 (12 17:06 -0400)
treee5f275c6933a2afcca529cb50b2a0d510065b807
parent67427f6025518f1fb1332823a0d1810d5b220b96
lib/ucs2_string: Correct ucs2 -> utf8 conversion

[ Upstream commit a68075908a37850918ad96b056acc9ac4ce1bd90 ]

The comparisons should be >= since 0x800 and 0x80 require an additional bit
to store.

For the 3 byte case, the existing shift would drop off 2 more bits than
intended.

For the 2 byte case, there should be 5 bits bits in byte 1, and 6 bits in
byte 2.

Signed-off-by: Jason Andryuk <jandryuk@gmail.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Cc: Peter Jones <pjones@redhat.com>
Cc: Matthew Garrett <mjg59@coreos.com>
Cc: "Lee, Chun-Yi" <jlee@suse.com>
Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
lib/ucs2_string.c