mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-16 11:06:49 +01:00
fcitx: removed incompatibly-licensed code.
This commit is contained in:
parent
d4086e4a70
commit
a1faea980c
@ -118,71 +118,6 @@ GetAppName()
|
||||
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
|
||||
DBus_MessageFilter(DBusConnection *conn, DBusMessage *msg, void *data)
|
||||
{
|
||||
@ -214,8 +149,8 @@ DBus_MessageFilter(DBusConnection *conn, DBusMessage *msg, void *data)
|
||||
size_t cursor = 0;
|
||||
|
||||
while (i < text_bytes) {
|
||||
size_t sz = SDL_utf8strlcpy(buf, text + i, sizeof(buf));
|
||||
size_t chars = _fcitx_utf8_strlen(buf);
|
||||
const size_t sz = SDL_utf8strlcpy(buf, text + i, sizeof(buf));
|
||||
const size_t chars = SDL_utf8strlen(buf);
|
||||
|
||||
SDL_SendEditingText(buf, cursor, chars);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user