2023-02-26 05:13:40 +01:00
|
|
|
void
|
|
|
|
apply_fribidi(char *str)
|
|
|
|
{
|
2023-03-02 17:51:25 +01:00
|
|
|
#if !USERTL
|
|
|
|
return;
|
|
|
|
#endif
|
2023-02-26 05:13:40 +01:00
|
|
|
FriBidiStrIndex len = strlen(str);
|
|
|
|
FriBidiChar logical[BUFSIZ];
|
|
|
|
FriBidiChar visual[BUFSIZ];
|
|
|
|
FriBidiParType base = FRIBIDI_PAR_ON;
|
|
|
|
FriBidiCharSet charset;
|
|
|
|
fribidi_boolean result;
|
|
|
|
|
|
|
|
fribidi_text[0] = 0;
|
2023-03-06 21:19:12 +01:00
|
|
|
if (len>0) {
|
2023-02-26 05:13:40 +01:00
|
|
|
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-03-06 21:19:12 +01:00
|
|
|
|
|
|
|
if (result)
|
|
|
|
return;
|
|
|
|
else
|
|
|
|
return;
|
2023-02-26 05:13:40 +01:00
|
|
|
}
|