mirror of https://github.com/encounter/SDL.git
fcitx: removed incompatibly-licensed code.
This commit is contained in:
parent
d4086e4a70
commit
a1faea980c
|
@ -118,71 +118,6 @@ GetAppName()
|
||||||
return SDL_strdup("SDL_App");
|
return SDL_strdup("SDL_App");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Copied from fcitx source
|
|
||||||
*/
|
|
||||||
#define CONT(i) ISUTF8_CB(in[i])
|
|
||||||
#define VAL(i, s) ((in[i]&0x3f) << s)
|
|
||||||
|
|
||||||
static char *
|
|
||||||
_fcitx_utf8_get_char(const char *i, uint32_t *chr)
|
|
||||||
{
|
|
||||||
const unsigned char* in = (const unsigned char *)i;
|
|
||||||
if (!(in[0] & 0x80)) {
|
|
||||||
*(chr) = *(in);
|
|
||||||
return (char *)in + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 2-byte, 0x80-0x7ff */
|
|
||||||
if ((in[0] & 0xe0) == 0xc0 && CONT(1)) {
|
|
||||||
*chr = ((in[0] & 0x1f) << 6) | VAL(1, 0);
|
|
||||||
return (char *)in + 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 3-byte, 0x800-0xffff */
|
|
||||||
if ((in[0] & 0xf0) == 0xe0 && CONT(1) && CONT(2)) {
|
|
||||||
*chr = ((in[0] & 0xf) << 12) | VAL(1, 6) | VAL(2, 0);
|
|
||||||
return (char *)in + 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 4-byte, 0x10000-0x1FFFFF */
|
|
||||||
if ((in[0] & 0xf8) == 0xf0 && CONT(1) && CONT(2) && CONT(3)) {
|
|
||||||
*chr = ((in[0] & 0x7) << 18) | VAL(1, 12) | VAL(2, 6) | VAL(3, 0);
|
|
||||||
return (char *)in + 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 5-byte, 0x200000-0x3FFFFFF */
|
|
||||||
if ((in[0] & 0xfc) == 0xf8 && CONT(1) && CONT(2) && CONT(3) && CONT(4)) {
|
|
||||||
*chr = ((in[0] & 0x3) << 24) | VAL(1, 18) | VAL(2, 12) | VAL(3, 6) | VAL(4, 0);
|
|
||||||
return (char *)in + 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 6-byte, 0x400000-0x7FFFFFF */
|
|
||||||
if ((in[0] & 0xfe) == 0xfc && CONT(1) && CONT(2) && CONT(3) && CONT(4) && CONT(5)) {
|
|
||||||
*chr = ((in[0] & 0x1) << 30) | VAL(1, 24) | VAL(2, 18) | VAL(3, 12) | VAL(4, 6) | VAL(5, 0);
|
|
||||||
return (char *)in + 6;
|
|
||||||
}
|
|
||||||
|
|
||||||
*chr = *in;
|
|
||||||
|
|
||||||
return (char *)in + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static size_t
|
|
||||||
_fcitx_utf8_strlen(const char *s)
|
|
||||||
{
|
|
||||||
unsigned int l = 0;
|
|
||||||
|
|
||||||
while (*s) {
|
|
||||||
uint32_t chr;
|
|
||||||
|
|
||||||
s = _fcitx_utf8_get_char(s, &chr);
|
|
||||||
l++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return l;
|
|
||||||
}
|
|
||||||
|
|
||||||
static DBusHandlerResult
|
static DBusHandlerResult
|
||||||
DBus_MessageFilter(DBusConnection *conn, DBusMessage *msg, void *data)
|
DBus_MessageFilter(DBusConnection *conn, DBusMessage *msg, void *data)
|
||||||
{
|
{
|
||||||
|
@ -214,8 +149,8 @@ DBus_MessageFilter(DBusConnection *conn, DBusMessage *msg, void *data)
|
||||||
size_t cursor = 0;
|
size_t cursor = 0;
|
||||||
|
|
||||||
while (i < text_bytes) {
|
while (i < text_bytes) {
|
||||||
size_t sz = SDL_utf8strlcpy(buf, text + i, sizeof(buf));
|
const size_t sz = SDL_utf8strlcpy(buf, text + i, sizeof(buf));
|
||||||
size_t chars = _fcitx_utf8_strlen(buf);
|
const size_t chars = SDL_utf8strlen(buf);
|
||||||
|
|
||||||
SDL_SendEditingText(buf, cursor, chars);
|
SDL_SendEditingText(buf, cursor, chars);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue