summaryrefslogtreecommitdiff
path: root/src/GF/Text/ExtraDiacritics.hs
diff options
context:
space:
mode:
authoraarne <unknown>2003-12-19 16:57:48 +0000
committeraarne <unknown>2003-12-19 16:57:48 +0000
commit9127333575b4db850828ba9391649eeb5cb781a0 (patch)
tree1f6704186c0586e16998bc2bbbad7dbda73676cf /src/GF/Text/ExtraDiacritics.hs
parent08c9a2ab8cf7b77a5c0392f5f8e9643e39c89c5b (diff)
Starting Finnish for new API
Diffstat (limited to 'src/GF/Text/ExtraDiacritics.hs')
-rw-r--r--src/GF/Text/ExtraDiacritics.hs23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/GF/Text/ExtraDiacritics.hs b/src/GF/Text/ExtraDiacritics.hs
new file mode 100644
index 000000000..75eb5d48e
--- /dev/null
+++ b/src/GF/Text/ExtraDiacritics.hs
@@ -0,0 +1,23 @@
+module ExtraDiacritics where
+
+mkExtraDiacritics :: String -> String
+mkExtraDiacritics = mkExtraDiacriticsWord
+
+mkExtraDiacriticsWord :: String -> String
+mkExtraDiacriticsWord str = case str of
+ [] -> []
+ '<' : cs -> '<' : spoolMarkup cs
+ --
+ '/' : cs -> toEnum 0x0301 : mkExtraDiacriticsWord cs
+ '~' : cs -> toEnum 0x0306 : mkExtraDiacriticsWord cs
+ ':' : cs -> toEnum 0x0304 : mkExtraDiacriticsWord cs -- some of these could be put in LatinA
+ '.' : cs -> toEnum 0x0323 : mkExtraDiacriticsWord cs
+ 'i' : '-' : cs -> toEnum 0x0268 : mkExtraDiacriticsWord cs -- in IPA extensions
+ -- Default
+ c : cs -> c : mkExtraDiacriticsWord cs
+
+spoolMarkup :: String -> String
+spoolMarkup s = case s of
+ [] -> [] -- Shouldn't happen
+ '>' : cs -> '>' : mkExtraDiacriticsWord cs
+ c1 : cs -> c1 : spoolMarkup cs