summaryrefslogtreecommitdiff
path: root/charset/fribidi-char-sets-cap-rtl.c
diff options
context:
space:
mode:
Diffstat (limited to 'charset/fribidi-char-sets-cap-rtl.c')
-rw-r--r--charset/fribidi-char-sets-cap-rtl.c36
1 files changed, 32 insertions, 4 deletions
diff --git a/charset/fribidi-char-sets-cap-rtl.c b/charset/fribidi-char-sets-cap-rtl.c
index 9d70c51..54ffd85 100644
--- a/charset/fribidi-char-sets-cap-rtl.c
+++ b/charset/fribidi-char-sets-cap-rtl.c
@@ -64,7 +64,7 @@ enum
static FriBidiCharType CapRTLCharTypes[] = {
/* *INDENT-OFF* */
ON, ON, ON, ON, LTR,RTL,ON, ON, ON, ON, ON, ON, ON, BS, RLO,RLE, /* 00-0f */
- LRO,LRE,PDF,WS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, /* 10-1f */
+ LRO,LRE,PDF,WS, LRI, RLI, FSI, PDI, ON, ON, ON, ON, ON, ON, ON, ON, /* 10-1f */
WS, ON, ON, ON, ET, ON, ON, ON, ON, ON, ON, ET, CS, ON, ES, ES, /* 20-2f */
EN, EN, EN, EN, EN, EN, AN, AN, AN, AN, CS, ON, ON, ON, ON, ON, /* 30-3f */
RTL,AL, AL, AL, AL, AL, AL, RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL, /* 40-4f */
@@ -216,6 +216,18 @@ fribidi_cap_rtl_to_unicode (
case 'R':
us[j++] = FRIBIDI_CHAR_RLO;
break;
+ case 'i':
+ us[j++] = FRIBIDI_CHAR_LRI;
+ break;
+ case 'y':
+ us[j++] = FRIBIDI_CHAR_RLI;
+ break;
+ case 'f':
+ us[j++] = FRIBIDI_CHAR_FSI;
+ break;
+ case 'I':
+ us[j++] = FRIBIDI_CHAR_PDI;
+ break;
case '_':
us[j++] = '_';
break;
@@ -248,8 +260,9 @@ fribidi_unicode_to_cap_rtl (
for (i = 0; i < len; i++)
{
FriBidiChar ch = us[i];
- if (!FRIBIDI_IS_EXPLICIT (fribidi_get_bidi_type (ch)) && ch != '_'
- && ch != FRIBIDI_CHAR_LRM && ch != FRIBIDI_CHAR_RLM)
+ if (!FRIBIDI_IS_EXPLICIT (fribidi_get_bidi_type (ch))
+ && !FRIBIDI_IS_ISOLATE (fribidi_get_bidi_type (ch))
+ && ch != '_' && ch != FRIBIDI_CHAR_LRM && ch != FRIBIDI_CHAR_RLM)
s[j++] = fribidi_unicode_to_cap_rtl_c (ch);
else
{
@@ -277,6 +290,18 @@ fribidi_unicode_to_cap_rtl (
case FRIBIDI_CHAR_RLO:
s[j++] = 'R';
break;
+ case FRIBIDI_CHAR_LRI:
+ s[j++] = 'i';
+ break;
+ case FRIBIDI_CHAR_RLI:
+ s[j++] = 'y';
+ break;
+ case FRIBIDI_CHAR_FSI:
+ s[j++] = 'f';
+ break;
+ case FRIBIDI_CHAR_PDI:
+ s[j++] = 'I';
+ break;
case '_':
s[j++] = '_';
break;
@@ -333,7 +358,10 @@ fribidi_char_set_desc_cap_rtl (
" * _> LRM\n" " * _< RLM\n"
" * _l LRE\n" " * _r RLE\n"
" * _L LRO\n" " * _R RLO\n"
- " * _o PDF\n" " * __ `_' itself\n" "\n");
+ " * _o PDF\n" " * _i LRI\n"
+ " * _y RLI\n" " * _f FSI\n"
+ " * _I PDI\n" " * __ `_' itself\n"
+ "\n");
return s;
}