diff options
| author | aarne <unknown> | 2003-11-14 12:36:23 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2003-11-14 12:36:23 +0000 |
| commit | 5a7d6e542d7fc0c01bec9163e4be732ac1c6d217 (patch) | |
| tree | 7e7899236393081209aa494b391d3409d087fcc3 /src/GF/Text | |
| parent | 37384dbe06913a0352d4459050c1382874a45a62 (diff) | |
New unicodings.
New unicodings.
Module with works.
Better compilation of old GF.
Diffstat (limited to 'src/GF/Text')
| -rw-r--r-- | src/GF/Text/Hebrew.hs | 19 | ||||
| -rw-r--r-- | src/GF/Text/Unicode.hs | 14 |
2 files changed, 31 insertions, 2 deletions
diff --git a/src/GF/Text/Hebrew.hs b/src/GF/Text/Hebrew.hs index ebcc078e3..abd2855b8 100644 --- a/src/GF/Text/Hebrew.hs +++ b/src/GF/Text/Hebrew.hs @@ -1,13 +1,28 @@ module Hebrew where mkHebrew :: String -> String -mkHebrew = reverse . unwords . (map mkHebrewWord) . words +mkHebrew = mkHebrewWord --- reverse : assumes everything's on same line type HebrewChar = Char +-- HH 031103 added code for spooling the markup +-- removed reverse, words, unwords (seemed obsolete and come out wrong on the screen) + mkHebrewWord :: String -> [HebrewChar] -mkHebrewWord = map mkHebrewChar +-- mkHebrewWord = map mkHebrewChar + +mkHebrewWord s = case s of + [] -> [] + '<' : cs -> '<' : spoolMarkup cs + ' ' : cs -> ' ' : mkHebrewWord cs + c1 : cs -> mkHebrewChar c1 : mkHebrewWord cs + +spoolMarkup :: String -> String +spoolMarkup s = case s of + [] -> [] -- Shouldn't happen + '>' : cs -> '>' : mkHebrewWord cs + c1 : cs -> c1 : spoolMarkup cs mkHebrewChar c = case lookup c cc of Just c' -> c' ; _ -> c where diff --git a/src/GF/Text/Unicode.hs b/src/GF/Text/Unicode.hs index 78aba0461..734879e70 100644 --- a/src/GF/Text/Unicode.hs +++ b/src/GF/Text/Unicode.hs @@ -4,6 +4,13 @@ import Greek (mkGreek) import Arabic (mkArabic) import Hebrew (mkHebrew) import Russian (mkRussian, mkRusKOI8) +import Ethiopic (mkEthiopic) +import Tamil (mkTamil) +import OCSCyrillic (mkOCSCyrillic) +import LatinASupplement (mkLatinASupplement) +import Devanagari (mkDevanagari) +import Hiragana (mkJapanese) +import ExtendedArabic (mkExtendedArabic) -- ad hoc Unicode conversions from different alphabets @@ -15,6 +22,13 @@ mkUnicode s = case s of '/':'-':cs -> mkArabic (remClosing cs) '/':'_':cs -> mkRussian (remClosing cs) '/':'*':cs -> mkRusKOI8 (remClosing cs) + '/':'E':cs -> mkEthiopic (remClosing cs) + '/':'T':cs -> mkTamil (remClosing cs) + '/':'C':cs -> mkOCSCyrillic (remClosing cs) + '/':'&':cs -> mkDevanagari (remClosing cs) + '/':'L':cs -> mkLatinASupplement (remClosing cs) + '/':'J':cs -> mkJapanese (remClosing cs) + '/':'A':cs -> mkExtendedArabic (remClosing cs) _ -> s remClosing cs |
