diff options
Diffstat (limited to 'charset/fribidi-char-sets-cap-rtl.c')
-rw-r--r-- | charset/fribidi-char-sets-cap-rtl.c | 36 |
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; } |