mirror of https://github.com/tmux/tmux.git
UTF-8 keys need to be big endian so the size bits are at the top.
This commit is contained in:
parent
822ee4e0a6
commit
7e501f1993
10
utf8.c
10
utf8.c
|
@ -162,14 +162,14 @@ utf8_from_data(const struct utf8_data *ud, utf8_char *uc)
|
||||||
m.data[1] = (offset >> 8) & 0xff;
|
m.data[1] = (offset >> 8) & 0xff;
|
||||||
m.data[2] = (offset >> 16);
|
m.data[2] = (offset >> 16);
|
||||||
}
|
}
|
||||||
*uc = m.uc;
|
*uc = htonl(m.uc);
|
||||||
return (UTF8_DONE);
|
return (UTF8_DONE);
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
if (ud->width == 1)
|
if (ud->width == 1)
|
||||||
*uc = utf8_space1.uc;
|
*uc = htonl(utf8_space1.uc);
|
||||||
else
|
else
|
||||||
*uc = utf8_space2.uc;
|
*uc = htonl(utf8_space2.uc);
|
||||||
return (UTF8_ERROR);
|
return (UTF8_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ fail:
|
||||||
void
|
void
|
||||||
utf8_to_data(utf8_char uc, struct utf8_data *ud)
|
utf8_to_data(utf8_char uc, struct utf8_data *ud)
|
||||||
{
|
{
|
||||||
union utf8_map m = { .uc = uc };
|
union utf8_map m = { .uc = ntohl(uc) };
|
||||||
struct utf8_item *ui;
|
struct utf8_item *ui;
|
||||||
u_int offset;
|
u_int offset;
|
||||||
|
|
||||||
|
@ -210,7 +210,7 @@ utf8_build_one(char c, u_int width)
|
||||||
|
|
||||||
if (width == 2)
|
if (width == 2)
|
||||||
m.flags |= UTF8_FLAG_WIDTH2;
|
m.flags |= UTF8_FLAG_WIDTH2;
|
||||||
return (m.uc);
|
return (htonl(m.uc));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set a single character. */
|
/* Set a single character. */
|
||||||
|
|
Loading…
Reference in New Issue