spmenu/libs/rtl.c

31 lines
812 B
C
Raw Normal View History

2023-05-14 00:21:16 +02:00
/* See LICENSE file for copyright and license details. */
2023-08-07 05:54:59 +02:00
static char fribidi_text[BUFSIZ] = "";
static void apply_fribidi(char *str);
2023-03-13 21:21:40 +01:00
#if USERTL
void apply_fribidi(char *str) {
2023-05-08 23:00:45 +02:00
FriBidiStrIndex len = strlen(str);
FriBidiChar logical[BUFSIZ];
FriBidiChar visual[BUFSIZ];
FriBidiParType base = FRIBIDI_PAR_ON;
FriBidiCharSet charset;
fribidi_boolean result = 0;
2023-04-05 20:44:09 +02:00
2023-05-08 23:00:45 +02:00
fribidi_text[0] = 0;
2023-05-08 23:00:45 +02:00
if (len > 0) {
charset = fribidi_parse_charset("UTF-8");
len = fribidi_charset_to_unicode(charset, str, len, logical);
result = fribidi_log2vis(logical, len, &base, visual, NULL, NULL, NULL);
len = fribidi_unicode_to_charset(charset, visual, len, fribidi_text);
}
2023-04-05 20:44:09 +02:00
2023-05-08 23:00:45 +02:00
if (result||!result) return;
2023-04-05 20:44:09 +02:00
}
2023-03-17 15:35:40 +01:00
#else
void apply_fribidi(char *str) {
2023-03-17 15:35:40 +01:00
return;
}
2023-03-13 21:21:40 +01:00
#endif