Merge change 26632 into eclair

* changes:
  Integrate patch from SVOX to complete IPA to XSAMPA mapping.
diff --git a/pico/tts/com_svox_picottsengine.cpp b/pico/tts/com_svox_picottsengine.cpp
index 3386a06..258f32c 100644
--- a/pico/tts/com_svox_picottsengine.cpp
+++ b/pico/tts/com_svox_picottsengine.cpp
@@ -801,13 +801,16 @@
     char        strXSAMPA[6];       /* SAMPA sequence           */
 } PArr;
 
-#define phn_cnt (134)
+#define phn_cnt (134+7)
 
 PArr    PhnAry[phn_cnt] = {
 
-    /* XSAMPA conversion table      */
+    /* XSAMPA conversion table
+	   This maps a single IPA symbol to a sequence representing XSAMPA.
+       This relies upon a direct one-to-one correspondance
+       including diphthongs and affricates.						      */
 
-    /* Vowels (23) incomplete     */
+    /* Vowels (23) complete     */
     {0x025B,        "E"},
     {0x0251,        "A"},
     {0x0254,        "O"},
@@ -832,7 +835,7 @@
     {0x025E,        "3\\\\"},
     {0x0258,        "@\\\\"},
 
-    /* Consonants (60) incomplete */
+    /* Consonants (60) complete */
     {0x0288,        "t`"},
     {0x0256,        "d`"},
     {0x025F,        "J\\\\"},
@@ -883,6 +886,7 @@
     {0x029C,        "H\\\\"},
     {0x02A1,        ">\\\\"},
     {0x02A2,        "<\\\\"},
+    {0x0267,        "x\\\\"},		/* hooktop heng	*/
     {0x0298,        "O\\\\"},
     {0x01C0,        "|\\\\"},
     {0x01C3,        "!\\\\"},
@@ -891,10 +895,10 @@
     {0x027A,        "l\\\\"},
     {0x0255,        "s\\\\"},
     {0x0291,        "z\\\\"},
-    {0x0267,        "x\\\\"},
     {0x026B,        "l_G"},
 
-    /* Diacritics (34) incomplete */
+
+    /* Diacritics (37) complete */
     {0x02BC,        "_>"},
     {0x0325,        "_0"},
     {0x030A,        "_0"},
@@ -910,7 +914,7 @@
     {0x031C,        "_c"},
     {0x031F,        "_+"},
     {0x0320,        "_-"},
-    {0x0308,        "_\""},     /* centralized  */
+    {0x0308,        "_\""},     /* centralized		*/
     {0x033D,        "_x"},
     {0x0318,        "_A"},
     {0x0319,        "_q"},
@@ -918,30 +922,39 @@
     {0x02B7,        "_w"},
     {0x02B2,        "_j"},
     {0x02E0,        "_G"},
-    {0x02E4,        "_?\\\\"},
-    {0x0303,        "~"},
+    {0x02E4,        "_?\\\\"},	/* pharyngealized	*/
+    {0x0303,        "~"},		/* nasalized		*/
     {0x207F,        "_n"},
     {0x02E1,        "_l"},
     {0x031A,        "_}"},
     {0x0334,        "_e"},
-    {0x031D,        "_r"},
-    {0x031E,        "_o"},
-    {0x0329,        "="},
-    {0x032F,        "_^"},
-    {0x02D0,        ":"},
-
-    /* Others (11) complete */
-    {0x0361,        "_"},
+    {0x031D,        "_r"},		/* raised  equivalent to 02D4 */
+    {0x02D4,        "_r"},		/* raised  equivalent to 031D */
+    {0x031E,        "_o"},		/* lowered equivalent to 02D5 */
+    {0x02D5,        "_o"},		/* lowered equivalent to 031E */
+    {0x0329,        "="},		/* sylabic			*/
+    {0x032F,        "_^"},		/* non-sylabic		*/
+    {0x0361,        "_"},		/* top tie bar		*/
     {0x035C,        "_"},
-    {0x02C8,        "\""},
-    {0x02CC,        "%"},
-    {0x02D1,        ":\\\\"},
-    {0x0306,        "_X"},
-    {0x2016,        "||"},
-    {0x203F,        "-\\\\"},
-    {0x2197,        "<R>"},
-    {0x2198,        "<F>"},
-    {0x025D,                "3`"},
+
+    /* Suprasegmental (15) incomplete */
+    {0x02C8,        "\""},		/* primary   stress	*/
+    {0x02CC,        "%"},		/* secondary stress	*/
+    {0x02D0,        ":"},		/* long				*/
+    {0x02D1,        ":\\\\"},	/* half-long		*/
+    {0x0306,        "_X"},		/* extra short		*/
+
+    {0x2016,        "||"},		/* major group		*/
+    {0x203F,        "-\\\\"},	/* bottom tie bar	*/
+    {0x2197,        "<R>"},		/* global rise		*/
+    {0x2198,        "<F>"},		/* global fall		*/
+    {0x2193,        "<D>"},		/* downstep			*/
+    {0x2191,        "<U>"},		/* upstep			*/
+    {0x02E5,        "<T>"},		/* extra high level	*/
+    {0x02E7,        "<M>"},		/* mid level		*/
+    {0x02E9,        "<B>"},		/* extra low level	*/
+
+    {0x025D,        "3`"},		/* non-IPA	%%		*/
 
     /* Affricates (6) complete  */
     {0x02A3,        "d_z"},