hf_rule.c
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:159k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*****************************************************************************
  36.  *
  37.  * Filename:
  38.  * ---------
  39.  *    hf_rules.c
  40.  *
  41.  * Project:
  42.  * --------
  43.  *   Maui_Software
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *   c file of hindi font rule 
  48.  *
  49.  *
  50.  * Author:
  51.  * -------
  52.  * -------
  53.  *
  54.  *============================================================================
  55.  *             HISTORY
  56.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  57.  *------------------------------------------------------------------------------
  58.  * removed!
  59.  *
  60.  * removed!
  61.  * removed!
  62.  * removed!
  63.  *
  64.  * removed!
  65.  * removed!
  66.  * removed!
  67.  *
  68.  *------------------------------------------------------------------------------
  69.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  70.  *============================================================================
  71.  ****************************************************************************/
  72. #include "MMI_features.h"
  73. #ifdef __MMI_HINDI_ALG__
  74. #include "PixtelDataTypes.h"
  75. #include "gui.h"
  76. #include "UCS2Prot.h"
  77. #include "hf_rules.h"
  78. #include "DebugInitDef.h"
  79. PU8 cluster_start_p;
  80. PU8 cluster_end_p = 0;
  81. S32 use_multitap = 0;
  82. S32 parse_hindi = 1;
  83. S32 reset_hindi_pms = 1;
  84. S32 prev_char_text_x = 0;
  85. S32 prev_char_dwidth = 0;
  86. S32 prev_char_width = 0;
  87. U16 prev_character = 0;
  88. S32 new_line = 1;
  89. U16 temp_array[C_MAX] = {0};
  90. S32 hf_padding = HF_DEFAULT_PADDING;
  91. S32 prev_char_btext_x = 0;
  92. S32 prev_char_bdwidth = 0;
  93. S32 new_bline = 1;
  94. /* PMT RAKESH START 20061006 */
  95. #include "SSCStringHandle.h"
  96. extern sLanguageDetails *gLanguageArray;
  97. extern U16 gCurrLangIndex;
  98. const HindiRulesLangSSC HRLangSSC[] = 
  99. {
  100.     {SSC_HINDI, MMI_HINDI_LANG},
  101.     {SSC_MARATHI, MMI_MARATHI_LANG},
  102. };
  103. HINDI_RULES_LANGUAGE_ENUM hf_rules_current_set_language;
  104. HINDI_RULES_LANGUAGE_ENUM hf_rules_prefered_set_language;
  105. /* PMT RAKESH END 20061006 */
  106. #define HINDI_CONVERT_U8_U16(character) ((character)[0]|((character)[1]<<8))
  107. #define HINDI_FILL_CLUSTER()                                
  108. {                                                           
  109.    start_cluster[nFill] = HINDI_CONVERT_U8_U16(start_char); 
  110.    nFill++;                                                 
  111.    start_char+=2;                                           
  112. }
  113. #define HF_END_CLUSTER(start_cluster,start_char,nFill)
  114. {                                                     
  115.    if( start_char == cluster_end_p)                   
  116.    {                                                  
  117.       start_cluster[nFill] = (U16)NULL;               
  118.       cluster_start_p += nFill;                       
  119.       return nFill;                                   
  120.    }                                                  
  121. }
  122. /* START TARUN 20041029 */
  123. PU8 cursor_pointer_end_current_cluster;
  124. /* END TARUN 20041029 */
  125.                        /*    CONSONANT'S TABLES   */
  126. const GLYPH_INFO_TABLE KA_Tbl[] = 
  127. {
  128.     /* ka + space */
  129. /* PMT RAKESH START 20061006 */
  130.     {0, 1, 1, MMI_ALL_LANG, {C_KA, 0x0}, {C_KA, 0x0}},
  131.     /* Ka + nukta -> QA */
  132.     {0, 2, 1, MMI_ALL_LANG, {C_KA, S_NUKTA, 0x0}, {AC_QA, 0x0}},
  133.     /* Ka + Halant/Virama -> Half form of Ka */
  134.     {1, 2, 1, MMI_ALL_LANG, {C_KA, S_HALANT, 0x0}, {H_KA, 0x0}},
  135.     /* Ka + Nukta +Halant -> half form of Ka with Nukta */
  136.     {1, 3, 1, MMI_ALL_LANG, {C_KA, S_NUKTA, S_HALANT, 0x0}, {L_KA_N, 0x0}},
  137.     /* Ka + Halant + KA -> ligature form of KKA */
  138.     {1, 3, 1, MMI_ALL_LANG, {C_KA, S_HALANT, C_KA, 0x0}, {L_KKA, 0x0}},
  139.     /* Ka + Halant + Ta -> Kta */
  140.     {1, 3, 1, MMI_ALL_LANG, {C_KA, S_HALANT, C_TA, 0x0}, {L_KTA, 0x0}},
  141.     /* Ka + Halant + Ra -> Kra */
  142.     {1, 3, 1, MMI_ALL_LANG, {C_KA, S_HALANT, C_RA, 0x0}, {L_KRA, 0x0}},
  143.     /* Ka + Halant + Sha -> Ksha */
  144.     {1, 3, 1, MMI_ALL_LANG, {C_KA, S_HALANT, C_SSA, 0x0}, {L_KSHA, 0x0}},
  145.     /* Ka + Halant + Ra +Halant -> Kra +Halant */
  146.     /* {1,4,2,MMI_ALL_LANG,     {C_KA,S_HALANT,C_RA,S_HALANT,0x0},  {L_KRA,S_HALANT,0x0}}, */
  147.     /* Ka + Halant + Ra +Halant -> Kra +Halant */
  148.     {1, 4, 1, MMI_ALL_LANG, {C_KA, S_NUKTA, S_HALANT, C_RA, 0x0}, {L_KRA_N, 0x0}},
  149.     /* Ka + Halant + Sha + Halant -> Half form of Ksha */
  150.     //{1,4,1,MMI_ALL_LANG,     {C_KA,S_HALANT,C_SSA,S_HALANT,0x0},  {H_KHSA,0x0}}
  151.     //START FARHAD PMT 20050211     
  152.     /* Ka + Halant + Ra + Halant -> Half Form of Ka + Ra + Halant */
  153.     {1, 4, 3, MMI_ALL_LANG, {C_KA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_KA, C_RA, S_HALANT, 0x0}}
  154.     /* END FARHAD PMT 20050211 */
  155. /* PMT RAKESH END 20061006 */
  156. };
  157. const GLYPH_INFO_TABLE KHA_Tbl[] = 
  158. {
  159.     /* kha + space */
  160. /* PMT RAKESH START 20061006 */
  161.     {0, 1, 1, MMI_ALL_LANG, {C_KHA, 0x0}, {C_KHA, 0x0}},
  162.     /* kha + nukta -> khha */
  163.     {0, 2, 1, MMI_ALL_LANG, {C_KHA, S_NUKTA, 0x0}, {AC_KHHA, 0x0}},
  164.     /* Kha + halant  -> half form of kha */
  165.     {1, 2, 1, MMI_ALL_LANG, {C_KHA, S_HALANT, 0x0}, {H_KHA, 0x0}},
  166.     /* kha + nukta +halant -> half form of kha with nukta */
  167.     {1, 3, 1, MMI_ALL_LANG, {C_KHA, S_NUKTA, S_HALANT, 0x0}, {L_KHA_N, 0x0}},
  168.     /* kha + halant + ra -> Kha + subscript form of RA OR KHRA as a whole */
  169.     {1, 3, 1, MMI_ALL_LANG, {C_KHA, S_HALANT, C_RA, 0x0}, {L_KHRA, 0x0}},       /* Question */
  170.     /* kha + halant + ra + halant -> kha + RA subscript +halant */
  171.     //{1,4,2,MMI_ALL_LANG,     {C_KHA,S_HALANT,C_RA,S_HALANT,0x0},  {L_KHRA,S_HALANT,0x0}},/*Question*/
  172.     // START FARHAD PMT 20050211
  173.     {1, 4, 1, MMI_ALL_LANG, {C_KHA, S_NUKTA, S_HALANT, C_RA, 0x0}, {L_KHRA_N, 0x0}},    /* Question */
  174.     /* kha + halant + ra + halant -> half kha + RA subscript +halant */
  175.     {1, 4, 3, MMI_ALL_LANG, {C_KHA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_KHA, C_RA, S_HALANT, 0x0}}
  176.     /* END FARHAD PMT 20050211 */
  177. /* PMT RAKESH END 20061006 */
  178. };
  179. const GLYPH_INFO_TABLE GA_Tbl[] = 
  180. {
  181.     /* ga + space */
  182. /* PMT RAKESH START 20061006 */
  183.     {0, 1, 1, MMI_ALL_LANG, {C_GA, 0x0}, {C_GA, 0x0}},
  184.     /* ga + nukta -> nukta form of ga */
  185.     {0, 2, 1, MMI_ALL_LANG, {C_GA, S_NUKTA, 0x0}, {AC_GHHA, 0x0}},
  186.     /* ga + halant -> half form of ga */
  187.     {1, 2, 1, MMI_ALL_LANG, {C_GA, S_HALANT, 0x0}, {H_GA, 0x0}},
  188.     /* ga + nukta + halant -> half ga with nukta */
  189.     {1, 3, 1, MMI_ALL_LANG, {C_GA, S_NUKTA, S_HALANT, 0x0}, {L_GA_N, 0x0}},
  190.     /* ga + halant + ra -> ga + subscript form of RA */
  191.     {1, 3, 1, MMI_ALL_LANG, {C_GA, S_HALANT, C_RA, 0x0}, {L_GRA, 0x0}}, /* Q */
  192.     /* ga + halant + ra + halant -> ga + subscript form of RA + halant */
  193.     /* START FARHAD PMT 20050211 */
  194.     {1, 4, 1, MMI_ALL_LANG, {C_GA, S_NUKTA, S_HALANT, C_RA, 0x0}, {L_GRA_N, 0x0}},      /* Q */
  195.     /* ga + halant + ra + halant -> halfga + RA + halant */
  196.     {1, 4, 3, MMI_ALL_LANG, {C_GA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_GA, C_RA, S_HALANT, 0x0}},
  197.     /* END FARHAD PMT 20050211 */
  198.     {1, 3, 1, MMI_MARATHI_LANG, {C_GA, S_HALANT, C_NA, 0x0}, {L_GA_NA, 0x0}}
  199.     /* PMT RAKESH END 20061006 */
  200. };
  201. const GLYPH_INFO_TABLE GHA_Tbl[] = 
  202. {
  203.     /* gha + space */
  204. /* PMT RAKESH START 20061006 */
  205.     {0, 1, 1, MMI_ALL_LANG, {C_GHA, 0x0}, {C_GHA, 0x0}},
  206.     /* gha + halant -> half form of gha */
  207.     {1, 2, 1, MMI_ALL_LANG, {C_GHA, S_HALANT, 0x0}, {H_GHA, 0x0}},
  208.     /* gha + halant + RA  -> gha + subscript form of RA */
  209.     {1, 3, 1, MMI_ALL_LANG, {C_GHA, S_HALANT, C_RA, 0x0}, {L_GHRA, 0x0}},       /* Q */
  210.     /* gha + halant + RA + halant -> gha + RA subscript + halant */
  211.     /* START FARHAD PMT 20050211 */
  212.     {1, 4, 3, MMI_ALL_LANG, {C_GHA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_GHA, C_RA, S_HALANT, 0x0}}       /* Q */
  213.     /* END FARHAD PMT 20050211 */
  214. /* PMT RAKESH END 20061006 */
  215. };
  216. const GLYPH_INFO_TABLE NGA_Tbl[] = 
  217. {
  218.     /* nga + space */
  219. /* PMT RAKESH START 20061006 */
  220.     {0, 1, 1, MMI_ALL_LANG, {C_NGA, 0x0}, {C_NGA, 0x0}},
  221.     /* nga + halant + RA -> nga + subscript RA(special representation) */
  222.     {1, 3, 2, MMI_ALL_LANG, {C_NGA, S_HALANT, C_RA, 0x0}, {C_NGA, SUB_RA, 0x0}},
  223.     /* nga + halant + ka -> ligature L_DAKA */
  224.     {1, 3, 1, MMI_ALL_LANG, {C_NGA, S_HALANT, C_KA, 0x0}, {L_DAKA, 0x0}},
  225.     /* nga + halant + ka -> ligature L_DAKHA */
  226.     {1, 3, 1, MMI_ALL_LANG, {C_NGA, S_HALANT, C_KHA, 0x0}, {L_DAKHA, 0x0}},
  227.     /* nga + halant + ka -> ligature L_DAGA */
  228.     {1, 3, 1, MMI_ALL_LANG, {C_NGA, S_HALANT, C_GA, 0x0}, {L_DAGA, 0x0}},
  229.     /* nga + halant + ka -> ligature L_DAGHA */
  230.     {1, 3, 1, MMI_ALL_LANG, {C_NGA, S_HALANT, C_GHA, 0x0}, {L_DAGHA, 0x0}},
  231.     /* nga + halant + ka ->  */
  232.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_KA, S_HALANT, 0x0}, {C_NGA, S_HALANT, C_KA, S_HALANT, 0x0}},
  233.     /* nga + halant + ka ->  */
  234.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_KHA, S_HALANT, 0x0}, {C_NGA, S_HALANT, C_KHA, S_HALANT, 0x0}},
  235.     /* nga + halant + ka ->  */
  236.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_GA, S_HALANT, 0x0}, {C_NGA, S_HALANT, C_GA, S_HALANT, 0x0}},
  237.     /* nga + halant + ka -> ligature L_DAGHA */
  238.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_GHA, S_HALANT, 0x0}, {C_NGA, S_HALANT, C_GHA, S_HALANT, 0x0}},
  239.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_KA, DV_U, 0x0}, {C_NGA, S_HALANT, C_KA, DV_U, 0x0}},
  240.     /* nga + halant + ka ->  */
  241.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_KHA, DV_U, 0x0}, {C_NGA, S_HALANT, C_KHA, DV_U, 0x0}},
  242.     /* nga + halant + ka ->  */
  243.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_GA, DV_U, 0x0}, {C_NGA, S_HALANT, C_GA, DV_U, 0x0}},
  244.     /* nga + halant + ka -> ligature L_DAGHA */
  245.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_GHA, DV_U, 0x0}, {C_NGA, S_HALANT, C_GHA, DV_U, 0x0}},
  246.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_KA, DV_UU, 0x0}, {C_NGA, S_HALANT, C_KA, DV_UU, 0x0}},
  247.     /* nga + halant + ka ->  */
  248.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_KHA, DV_UU, 0x0}, {C_NGA, S_HALANT, C_KHA, DV_UU, 0x0}},
  249.     /* nga + halant + ka ->  */
  250.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_GA, DV_UU, 0x0}, {C_NGA, S_HALANT, C_GA, DV_UU, 0x0}},
  251.     /* nga + halant + ka -> ligature L_DAGHA */
  252.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_GHA, DV_UU, 0x0}, {C_NGA, S_HALANT, C_GHA, DV_UU, 0x0}},
  253.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_KA, DV_R, 0x0}, {C_NGA, S_HALANT, C_KA, DV_R, 0x0}},
  254.     /* nga + halant + ka ->  */
  255.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_KHA, DV_R, 0x0}, {C_NGA, S_HALANT, C_KHA, DV_R, 0x0}},
  256.     /* nga + halant + ka ->  */
  257.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_GA, DV_R, 0x0}, {C_NGA, S_HALANT, C_GA, DV_R, 0x0}},
  258.     /* nga + halant + ka -> ligature L_DAGHA */
  259.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_GHA, DV_R, 0x0}, {C_NGA, S_HALANT, C_GHA, DV_R, 0x0}},
  260.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_RA, S_HALANT, 0x0}, {C_NGA, S_HALANT, C_RA, S_HALANT, 0x0}},
  261.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_RA, DV_U, 0x0}, {C_NGA, S_HALANT, C_RA, DV_U, 0x0}},
  262.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_RA, DV_UU, 0x0}, {C_NGA, S_HALANT, C_RA, DV_UU, 0x0}},
  263.     {1, 4, 4, MMI_ALL_LANG, {C_NGA, S_HALANT, C_RA, DV_R, 0x0}, {C_NGA, S_HALANT, C_RA, DV_R, 0x0}},
  264. /* PMT RAKESH END 20061006 */
  265. };
  266. const GLYPH_INFO_TABLE CHA_Tbl[] = 
  267. {
  268.     /* cha + space */
  269. /* PMT RAKESH START 20061006 */
  270.     {0, 1, 1, MMI_ALL_LANG, {C_CHA, 0x0}, {C_CHA, 0x0}},
  271.     /* cha  + halant -> half form of cha   */
  272.     {1, 2, 1, MMI_ALL_LANG, {C_CHA, S_HALANT, 0x0}, {H_CHA, 0x0}},
  273.     /* cha + halant ra -> chra  OR cha + ra subscript */
  274.     {1, 3, 1, MMI_ALL_LANG, {C_CHA, S_HALANT, C_RA, 0x0}, {L_CHRA, 0x0}},       /* Q */
  275.     /* cha  + halant + ra + halant  -> chra + halant */
  276.     /* START FARHAD PMT 20050211 */
  277.     {1, 4, 3, MMI_ALL_LANG, {C_CHA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_CHA, C_RA, S_HALANT, 0x0}}       /* Q */
  278.     /* END FARHAD PMT 20050211 */
  279. /* PMT RAKESH END 20061006 */
  280. };
  281. const GLYPH_INFO_TABLE CHHA_Tbl[] = 
  282. {
  283.     /* chha + space */
  284. /* PMT RAKESH START 20061006 */
  285.     {0, 1, 1, MMI_ALL_LANG, {C_CHHA, 0x0}, {C_CHHA, 0x0}},
  286.     /* chha + halant -> chha + halant */
  287.     {0, 2, 2, MMI_ALL_LANG, {C_CHHA, S_HALANT, 0x0}, {C_CHHA, S_HALANT, 0x0}},
  288.     /* chha + halant + ra -> chha + RA subscriprt(special representation) */
  289.     {0, 3, 2, MMI_ALL_LANG, {C_CHHA, S_HALANT, C_RA, 0x0}, {C_CHHA, SUB_RA, 0x0}},
  290.     {0, 4, 4, MMI_ALL_LANG, {C_CHHA, S_HALANT, C_RA, S_HALANT, 0x0}, {C_CHHA, S_HALANT, C_RA, S_HALANT, 0x0}},
  291.     {1, 4, 4, MMI_ALL_LANG, {C_CHHA, S_HALANT, C_RA, DV_U, 0x0}, {C_CHHA, S_HALANT, C_RA, DV_U, 0x0}},
  292.     {1, 4, 4, MMI_ALL_LANG, {C_CHHA, S_HALANT, C_RA, DV_UU, 0x0}, {C_CHHA, S_HALANT, C_RA, DV_UU, 0x0}},
  293.     {1, 4, 4, MMI_ALL_LANG, {C_CHHA, S_HALANT, C_RA, DV_R, 0x0}, {C_CHHA, S_HALANT, C_RA, DV_R, 0x0}},
  294.     {1, 3, 1, MMI_MARATHI_LANG, {C_CHHA, S_HALANT, C_YA, 0x0}, {L_CHHA_YA, 0x0}},
  295.     /* PMT RAKESH END 20061006 */
  296. };
  297. const GLYPH_INFO_TABLE JA_Tbl[] = 
  298. {
  299.     /* ja + space */
  300. /* PMT RAKESH START 20061006 */
  301.     {0, 1, 1, MMI_ALL_LANG, {C_JA, 0x0}, {C_JA, 0x0}},
  302.     /* ja + halant -> half form of ja  */
  303.     {1, 2, 1, MMI_ALL_LANG, {C_JA, S_HALANT, 0x0}, {H_JA, 0x0}},
  304.     /* ja + nukta -> za */
  305.     {0, 2, 1, MMI_ALL_LANG, {C_JA, S_NUKTA, 0x0}, {AC_ZA, 0x0}},
  306.     /* ja + nukta + halant -> half za */
  307.     {1, 3, 1, MMI_ALL_LANG, {C_JA, S_NUKTA, S_HALANT, 0x0}, {H_JA_N, 0x0}},
  308.     /* ja + halant + ra -> jra  */
  309.     {1, 3, 1, MMI_ALL_LANG, {C_JA, S_HALANT, C_RA, 0x0}, {L_JRA, 0x0}},
  310.     /* ja + halant + nya -> GYA */
  311.     {1, 3, 1, MMI_ALL_LANG, {C_JA, S_HALANT, C_NYA, 0x0}, {L_GYA, 0x0}},
  312.     /* ja + halant + ra + halant -> jra + halant or ja + subscript RA + halant */
  313.     {1, 4, 1, MMI_ALL_LANG, {C_JA, S_NUKTA, S_HALANT, C_RA, 0x0}, {L_JRA_N, 0x0}},
  314.     /* ja + halant + nya + halant -> half form of GYA */
  315.     /* START FARHAD PMT 20050211 */
  316.     {1, 4, 2, MMI_ALL_LANG, {C_JA, S_HALANT, C_NYA, S_HALANT, 0x0}, {L_GYA, S_HALANT, 0x0}},
  317.     /* ja + halant + ra + halant -> half ja + RA + halant */
  318.     {1, 4, 3, MMI_ALL_LANG, {C_JA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_JA, C_RA, S_HALANT, 0x0}}
  319.     /* END FARHAD PMT 20050211 */
  320. /* PMT RAKESH END 20061006 */
  321. };
  322. const GLYPH_INFO_TABLE JHA_Tbl[] = 
  323. {
  324.     /* jha + space */
  325. /* PMT RAKESH START 20061006 */
  326.     {0, 1, 1, MMI_ALL_LANG, {C_JHA, 0x0}, {C_JHA, 0x0}},
  327.     /* jha + halant -> half jha  */
  328.     {1, 2, 1, MMI_ALL_LANG, {C_JHA, S_HALANT, 0x0}, {H_JHA, 0x0}},
  329.     /* jha + halant + ra-> jhra OR jha + subscript RA form */
  330.     {1, 3, 1, MMI_ALL_LANG, {C_JHA, S_HALANT, C_RA, 0x0}, {L_JHRA, 0x0}},
  331.     /*  jha + halant+ ra + halant  -> half jhra */
  332.     /* START FARHAD PMT 20050211 */
  333.     {1, 4, 3, MMI_ALL_LANG, {C_JHA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_JHA, C_RA, S_HALANT, 0x0}}
  334.     /* END FARHAD PMT 20050211 */
  335. /* PMT RAKESH END 20061006 */
  336. };
  337. const GLYPH_INFO_TABLE NYA_Tbl[] = 
  338. {
  339.     /* nya + space */
  340. /* PMT RAKESH START 20061006 */
  341.     {0, 1, 1, MMI_ALL_LANG, {C_NYA, 0x0}, {C_NYA, 0x0}},
  342.     /* nya + halant  -> half form of nya */
  343.     {1, 2, 1, MMI_ALL_LANG, {C_NYA, S_HALANT, 0x0}, {H_NYA, 0x0}},
  344. /* PMT RAKESH END 20061006 */
  345. };
  346. const GLYPH_INFO_TABLE TTA_Tbl[] = 
  347. {
  348.     /* TTa + space -> TTa */
  349. /* PMT RAKESH START 20061006 */
  350.     {0, 1, 1, MMI_ALL_LANG, {C_TTA, 0x0}, {C_TTA, 0x0}},
  351.     /* TTA + Halant -> TTA + Halant */
  352.     {0, 2, 2, MMI_ALL_LANG, {C_TTA, S_HALANT, 0x0}, {C_TTA, S_HALANT, 0x0}},
  353.     /* TTA + Halant + Ra -> TA + subscript RA */
  354.     {1, 3, 2, MMI_ALL_LANG, {C_TTA, S_HALANT, C_RA, 0x0}, {C_TTA, SUB_RA, 0x0}},
  355.     /* TTa + halant + TTa -> Ligature form of TTA below TTA */
  356.     {1, 3, 1, MMI_ALL_LANG, {C_TTA, S_HALANT, C_TTA, 0x0}, {L_TTTTA, 0x0}},
  357.     /* TTa + halant + TTHA -> Ligature form of TTHA below TTA */
  358.     {1, 3, 1, MMI_ALL_LANG, {C_TTA, S_HALANT, C_TTHA, 0x0}, {L_TTHA, 0x0}},
  359.     /* TTa + halant + TTa -> Ligature form of TTA below TTA */
  360.     {1, 4, 4, MMI_ALL_LANG, {C_TTA, S_HALANT, C_TTA, S_HALANT, 0x0}, {C_TTA, S_HALANT, C_TTA, S_HALANT, 0x0}},
  361.     /* TTa + halant + TTa -> Ligature form of TTA below TTA */
  362.     {1, 4, 4, MMI_ALL_LANG, {C_TTA, S_HALANT, C_TTHA, S_HALANT, 0x0}, {C_TTA, S_HALANT, C_TTHA, S_HALANT, 0x0}},
  363.     {1, 4, 4, MMI_ALL_LANG, {C_TTA, S_HALANT, C_TTA, DV_U, 0x0}, {C_TTA, S_HALANT, C_TTA, DV_U, 0x0}},
  364.     {1, 4, 4, MMI_ALL_LANG, {C_TTA, S_HALANT, C_TTHA, DV_U, 0x0}, {C_TTA, S_HALANT, C_TTHA, DV_U, 0x0}},
  365.     {1, 4, 4, MMI_ALL_LANG, {C_TTA, S_HALANT, C_TTA, DV_UU, 0x0}, {C_TTA, S_HALANT, C_TTA, DV_UU, 0x0}},
  366.     {1, 4, 4, MMI_ALL_LANG, {C_TTA, S_HALANT, C_TTHA, DV_UU, 0x0}, {C_TTA, S_HALANT, C_TTHA, DV_UU, 0x0}},
  367.     {1, 4, 4, MMI_ALL_LANG, {C_TTA, S_HALANT, C_TTA, DV_R, 0x0}, {C_TTA, S_HALANT, C_TTA, DV_R, 0x0}},
  368.     {1, 4, 4, MMI_ALL_LANG, {C_TTA, S_HALANT, C_TTHA, DV_R, 0x0}, {C_TTA, S_HALANT, C_TTHA, DV_R, 0x0}},
  369.     {1, 4, 4, MMI_ALL_LANG, {C_TTA, S_HALANT, C_RA, S_HALANT, 0x0}, {C_TTA, S_HALANT, C_RA, S_HALANT, 0x0}},
  370.     {1, 4, 4, MMI_ALL_LANG, {C_TTA, S_HALANT, C_RA, DV_U, 0x0}, {C_TTA, S_HALANT, C_RA, DV_U, 0x0}},
  371.     {1, 4, 4, MMI_ALL_LANG, {C_TTA, S_HALANT, C_RA, DV_UU, 0x0}, {C_TTA, S_HALANT, C_RA, DV_UU, 0x0}},
  372.     {1, 4, 4, MMI_ALL_LANG, {C_TTA, S_HALANT, C_RA, DV_R, 0x0}, {C_TTA, S_HALANT, C_RA, DV_R, 0x0}},
  373.     {1, 3, 1, MMI_MARATHI_LANG, {C_TTA, S_HALANT, C_YA, 0x0}, {L_TTA_YA, 0x0}},
  374.     /* PMT RAKESH END 20061006 */
  375. };
  376. const GLYPH_INFO_TABLE TTHA_Tbl[] = 
  377. {
  378.     /* Tha -> Tha + space */
  379. /* PMT RAKESH START 20061006 */
  380.     {0, 1, 1, MMI_ALL_LANG, {C_TTHA, 0x0}, {C_TTHA, 0x0}},
  381.     /* TTHA + halant -> TTHA + Halant */
  382.     {0, 2, 2, MMI_ALL_LANG, {C_TTHA, S_HALANT, 0x0}, {C_TTHA, S_HALANT, 0x0}},
  383.     /* TTha + halant + Ra -> TTHA + subscript form of RA(special type) */
  384.     {1, 3, 2, MMI_ALL_LANG, {C_TTHA, S_HALANT, C_RA, 0x0}, {C_TTHA, SUB_RA, 0x0}},
  385.     /* TTha + halant + TTha -> TTHA + subscript form of RA(special type) */
  386.     {1, 3, 1, MMI_ALL_LANG, {C_TTHA, S_HALANT, C_TTHA, 0x0}, {L_TTTHA, 0x0}},
  387.     /* TTha + halant + TTha -> TTHA + subscript form of RA(special type) */
  388.     {1, 4, 4, MMI_ALL_LANG, {C_TTHA, S_HALANT, C_TTHA, S_HALANT, 0x0}, {C_TTHA, S_HALANT, C_TTHA, S_HALANT, 0x0}},
  389.     {1, 4, 4, MMI_ALL_LANG, {C_TTHA, S_HALANT, C_RA, S_HALANT, 0x0}, {C_TTHA, S_HALANT, C_RA, S_HALANT, 0x0}},
  390.     {1, 4, 4, MMI_ALL_LANG, {C_TTHA, S_HALANT, C_RA, DV_U, 0x0}, {C_TTHA, S_HALANT, C_RA, DV_U, 0x0}},
  391.     {1, 4, 4, MMI_ALL_LANG, {C_TTHA, S_HALANT, C_RA, DV_UU, 0x0}, {C_TTHA, S_HALANT, C_RA, DV_UU, 0x0}},
  392.     {1, 4, 4, MMI_ALL_LANG, {C_TTHA, S_HALANT, C_RA, DV_R, 0x0}, {C_TTHA, S_HALANT, C_RA, DV_R, 0x0}},
  393.     {1, 3, 1, MMI_MARATHI_LANG, {C_TTHA, S_HALANT, C_YA, 0x0}, {L_TTHA_YA, 0x0}},
  394.     /* PMT RAKESH END 20061006 */
  395. };
  396. const GLYPH_INFO_TABLE DDA_Tbl[] = 
  397. {
  398.     /* dda + space */
  399. /* PMT RAKESH START 20061006 */
  400.     {0, 1, 1, MMI_ALL_LANG, {C_DDA, 0x0}, {C_DDA, 0x0}},
  401.     /* dda + halant -> dda+ halant */
  402.     {1, 2, 2, MMI_ALL_LANG, {C_DDA, S_HALANT, 0x0}, {C_DDA, S_HALANT, 0x0}},
  403.     /* Dda + nukta -> dda with nukta */
  404.     {1, 2, 1, MMI_ALL_LANG, {C_DDA, S_NUKTA, 0x0}, {AC_DDDHA, 0x0}},
  405.     /* Dda + nukta+ halant  -> dda with nukta + halant */
  406.     {1, 3, 2, MMI_ALL_LANG, {C_DDA, S_NUKTA, S_HALANT, 0x0}, {AC_DDDHA, S_HALANT, 0x0}},
  407.     /* dda + halant + ra -> dda + subscript ra(special represenatio */
  408.     {1, 3, 2, MMI_ALL_LANG, {C_DDA, S_HALANT, C_RA, 0x0}, {C_DDA, SUB_RA, 0x0}},
  409.     /* dda + halant + ga -> ligature L_DDAGA */
  410.     {1, 3, 1, MMI_ALL_LANG, {C_DDA, S_HALANT, C_GA, 0x0}, {L_DDAGA, 0x0}},
  411.     /* dda + halant + ra -> ligature L_DADA */
  412.     {1, 3, 1, MMI_ALL_LANG, {C_DDA, S_HALANT, C_DDA, 0x0}, {L_DADA, 0x0}},
  413.     /* dda + halant + ga -> ligature L_DDAGA */
  414.     {1, 3, 1, MMI_ALL_LANG, {C_DDA, S_HALANT, C_DDHA, 0x0}, {L_DADDHA, 0x0}},
  415.     /* dda + halant + ga -> ligature L_DDAGA */
  416.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_DDHA, S_HALANT, 0x0}, {C_DDA, S_HALANT, C_DDHA, S_HALANT, 0x0}},
  417.     /* dda + halant + ga -> ligature L_DDAGA */
  418.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_GA, S_HALANT, 0x0}, {C_DDA, S_HALANT, C_GA, S_HALANT, 0x0}},
  419.     /* dda + halant + ga -> ligature L_DDAGA */
  420.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_DDA, S_HALANT, 0x0}, {C_DDA, S_HALANT, C_DDA, S_HALANT, 0x0}},
  421.     /* dda + halant + ga -> ligature L_DDAGA */
  422.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_DDHA, DV_U, 0x0}, {C_DDA, S_HALANT, C_DDHA, DV_U, 0x0}},
  423.     /* dda + halant + ga -> ligature L_DDAGA */
  424.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_GA, DV_U, 0x0}, {C_DDA, S_HALANT, C_GA, DV_U, 0x0}},
  425.     /* dda + halant + ga -> ligature L_DDAGA */
  426.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_DDA, DV_U, 0x0}, {C_DDA, S_HALANT, C_DDA, DV_U, 0x0}},
  427.     /* dda + halant + ga -> ligature L_DDAGA */
  428.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_DDHA, DV_UU, 0x0}, {C_DDA, S_HALANT, C_DDHA, DV_UU, 0x0}},
  429.     /* dda + halant + ga -> ligature L_DDAGA */
  430.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_GA, DV_UU, 0x0}, {C_DDA, S_HALANT, C_GA, DV_UU, 0x0}},
  431.     /* dda + halant + ga -> ligature L_DDAGA */
  432.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_DDA, DV_UU, 0x0}, {C_DDA, S_HALANT, C_DDA, DV_UU, 0x0}},
  433.     /* dda + halant + ga -> ligature L_DDAGA */
  434.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_DDHA, DV_R, 0x0}, {C_DDA, S_HALANT, C_DDHA, DV_R, 0x0}},
  435.     /* dda + halant + ga -> ligature L_DDAGA */
  436.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_GA, DV_R, 0x0}, {C_DDA, S_HALANT, C_GA, DV_R, 0x0}},
  437.     /* dda + halant + ga -> ligature L_DDAGA */
  438.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_DDA, DV_R, 0x0}, {C_DDA, S_HALANT, C_DDA, DV_R, 0x0}},
  439.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_RA, S_HALANT, 0x0}, {C_DDA, S_HALANT, C_RA, S_HALANT, 0x0}},
  440.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_RA, DV_U, 0x0}, {C_DDA, S_HALANT, C_RA, DV_U, 0x0}},
  441.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_RA, DV_UU, 0x0}, {C_DDA, S_HALANT, C_RA, DV_UU, 0x0}},
  442.     {1, 4, 4, MMI_ALL_LANG, {C_DDA, S_HALANT, C_RA, DV_R, 0x0}, {C_DDA, S_HALANT, C_RA, DV_R, 0x0}},
  443.     {1, 3, 1, MMI_MARATHI_LANG, {C_DDA, S_HALANT, C_YA, 0x0}, {L_DDA_YA, 0x0}},
  444.     /* PMT RAKESH END 20061006 */
  445. };
  446. const GLYPH_INFO_TABLE DDHA_Tbl[] = 
  447. {
  448.     /* ddha + space */
  449. /* PMT RAKESH START 20061006 */
  450.     {0, 1, 1, MMI_ALL_LANG, {C_DDHA, 0x0}, {C_DDHA, 0x0}},
  451.     /* ddha + halant -> ddha + halant */
  452.     {0, 2, 2, MMI_ALL_LANG, {C_DDHA, S_HALANT, 0x0}, {C_DDHA, S_HALANT, 0x0}},
  453.     /* Ddha + nukta -> ddha with nukta form */
  454.     {0, 2, 1, MMI_ALL_LANG, {C_DDHA, S_NUKTA, 0x0}, {AC_RHA, 0x0}},
  455.     /* ddha + nukta + halant -> ddha with nukta form + halant */
  456.     {1, 3, 2, MMI_ALL_LANG, {C_DDHA, S_NUKTA, S_HALANT, 0x0}, {AC_RHA, S_HALANT, 0x0}},
  457.     /* ddha + halant + ra -> ddha + subscript ra(special form) */
  458.     {1, 3, 2, MMI_ALL_LANG, {C_DDHA, S_HALANT, C_RA, 0x0}, {C_DDHA, SUB_RA, 0x0}},
  459.     /* ddha + nukta + halant + ra -> ddha with nukta form + subscript ra(special form) */
  460.     {1, 4, 2, MMI_ALL_LANG, {C_DDHA, S_NUKTA, S_HALANT, C_RA, 0x0}, {AC_RHA, SUB_RA, 0x0}},
  461.     {1, 4, 4, MMI_ALL_LANG, {C_DDHA, S_HALANT, C_RA, S_HALANT, 0x0}, {C_DDHA, S_HALANT, C_RA, S_HALANT, 0x0}},
  462.     {1, 4, 4, MMI_ALL_LANG, {C_DDHA, S_HALANT, C_RA, DV_U, 0x0}, {C_DDHA, S_HALANT, C_RA, DV_U, 0x0}},
  463.     {1, 4, 4, MMI_ALL_LANG, {C_DDHA, S_HALANT, C_RA, DV_UU, 0x0}, {C_DDHA, S_HALANT, C_RA, DV_UU, 0x0}},
  464.     {1, 4, 4, MMI_ALL_LANG, {C_DDHA, S_HALANT, C_RA, DV_R, 0x0}, {C_DDHA, S_HALANT, C_RA, DV_R, 0x0}},
  465.     {1, 3, 1, MMI_MARATHI_LANG, {C_DDHA, S_HALANT, C_YA, 0x0}, {L_DDHA_YA, 0x0}},
  466.     /* PMT RAKESH END 20061006 */
  467. };
  468. const GLYPH_INFO_TABLE NNA_Tbl[] = 
  469. {
  470.     /* Nna+ space */
  471. /* PMT RAKESH START 20061006 */
  472.     {0, 1, 1, MMI_ALL_LANG, {C_NNA, 0x0}, {C_NNA, 0x0}},
  473.     /* Nna + halant -> half Nna */
  474.     {1, 2, 1, MMI_ALL_LANG, {C_NNA, S_HALANT, 0x0}, {H_ANNA, 0x0}},
  475.     /* Nna + halant + ra -> half Nna + ra(nominal form) */
  476.     {1, 3, 2, MMI_ALL_LANG, {C_NNA, S_HALANT, C_RA, 0x0}, {H_ANNA, C_RA, 0x0}}
  477. /* PMT RAKESH END 20061006 */
  478. };
  479. const GLYPH_INFO_TABLE TA_Tbl[] = 
  480. {
  481.     /* ta + space */
  482. /* PMT RAKESH START 20061006 */
  483.     {0, 1, 1, MMI_ALL_LANG, {C_TA, 0x0}, {C_TA, 0x0}},
  484.     /* ta + halant -> half form of ta */
  485.     {1, 2, 1, MMI_ALL_LANG, {C_TA, S_HALANT, 0x0}, {H_TA, 0x0}},
  486.     /* ta + halant + ra ->  tra(ligature) */
  487.     {1, 3, 1, MMI_ALL_LANG, {C_TA, S_HALANT, C_RA, 0x0}, {L_TRA, 0x0}},
  488.     /* ta + halant + ra + halant -> half tra  */
  489.     /* {1,4,1,MMI_ALL_LANG,           {C_TA,S_HALANT,C_RA,S_HALANT,0x0},  {H_TRA,0x0} },//vj 01/12/04 */
  490.     /* ta + halant + ta -> TTA(ligature form) */
  491.     {1, 3, 1, MMI_ALL_LANG, {C_TA, S_HALANT, C_TA, 0x0}, {L_TTTA, 0x0}}
  492.     /* ta + halant + ta + halant -> half form of tta(ligature form) */
  493.     /* {1,4,1,MMI_ALL_LANG,       {C_TA,S_HALANT,C_TA,S_HALANT,0x0},  {H_TTA,0x0} } */
  494. /* PMT RAKESH END 20061006 */
  495. };
  496. const GLYPH_INFO_TABLE THA_Tbl[] = 
  497. {
  498.     /* tha + space */
  499. /* PMT RAKESH START 20061006 */
  500.     {0, 1, 1, MMI_ALL_LANG, {C_THA, 0x0}, {C_THA, 0x0}},
  501.     /* tha + halant -> half form of tha */
  502.     {1, 2, 1, MMI_ALL_LANG, {C_THA, S_HALANT, 0x0}, {H_THA, 0x0}},
  503.     /* tha + halant + ra ->  tha + subscript form of RA */
  504.     {1, 3, 1, MMI_ALL_LANG, {C_THA, S_HALANT, C_RA, 0x0}, {L_THRA, 0x0}},       /* Q */
  505.     /* START FARHAD PMT 20050211 */
  506.     /* tha + halant + ra + halant -> half tha + RA + halant */
  507.     {1, 4, 3, MMI_ALL_LANG, {C_THA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_THA, C_RA, S_HALANT, 0x0}}       /* Q */
  508.     /* END FARHAD PMT 20050211 */
  509. /* PMT RAKESH END 20061006 */
  510. };
  511. const GLYPH_INFO_TABLE DA_Tbl[] = 
  512. {
  513.     /* da + space */
  514. /* PMT RAKESH START 20061006 */
  515.     {0, 1, 1, MMI_ALL_LANG, {C_DA, 0x0}, {C_DA, 0x0}},
  516.     /* da + halant -> da + halant */
  517.     {0, 2, 2, MMI_ALL_LANG, {C_DA, S_HALANT, 0x0}, {C_DA, S_HALANT, 0x0}},
  518.     /* da + halant + ra -> da + subscript ra  */
  519.     {1, 3, 1, MMI_ALL_LANG, {C_DA, S_HALANT, C_RA, 0x0}, {L_DRA, 0x0}}, /* Q */
  520.     /* da + halant + ya  ->  ligature dya */
  521.     {1, 3, 1, MMI_ALL_LANG, {C_DA, S_HALANT, C_DA, 0x0}, {L_DYA, 0x0}},
  522.     /* da +halant + da ->   ligature ddya */
  523.     {1, 3, 1, MMI_ALL_LANG, {C_DA, S_HALANT, C_YA, 0x0}, {L_DDYA, 0x0}},
  524.     /* da + halant + va   ->  ligature DVA */
  525.     {1, 3, 1, MMI_ALL_LANG, {C_DA, S_HALANT, C_VA, 0x0}, {L_DVA, 0x0}},
  526.     /* da + halant + dha   ->  ligature L_DADHA */
  527.     {1, 3, 1, MMI_ALL_LANG, {C_DA, S_HALANT, C_DHA, 0x0}, {L_DADHA, 0x0}},
  528.     /* da + halant + bha   ->  ligature L_DABHA */
  529.     {1, 3, 1, MMI_ALL_LANG, {C_DA, S_HALANT, C_BHA, 0x0}, {L_DABHA, 0x0}},
  530.     {1, 3, 1, MMI_ALL_LANG, {C_DA, S_HALANT, C_MA, 0x0}, {L_DAMA, 0x0}},
  531.     /* da + halant + ya  ->  ligature dya */
  532.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_DA, S_HALANT, 0x0}, {C_DA, S_HALANT, C_DA, S_HALANT, 0x0}},
  533.     /* da + halant + ya  ->  ligature dya */
  534.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_YA, S_HALANT, 0x0}, {C_DA, S_HALANT, C_YA, S_HALANT, 0x0}},
  535.     /* da + halant + va +halant  ->   */
  536.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_VA, S_HALANT, 0x0}, {C_DA, S_HALANT, C_VA, S_HALANT, 0x0}},
  537.     /* da + halant + va +halant  ->   */
  538.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_DHA, S_HALANT, 0x0}, {C_DA, S_HALANT, C_DHA, S_HALANT, 0x0}},
  539.     /* da + halant + va +halant  ->   */
  540.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_BHA, S_HALANT, 0x0}, {C_DA, S_HALANT, C_BHA, S_HALANT, 0x0}},
  541.     /* da + halant + ma   ->  ligature L_DAMA */
  542.     /* da + halant + ma   ->  ligature L_DAMA */
  543.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_MA, S_HALANT, 0x0}, {C_DA, S_HALANT, C_MA, S_HALANT, 0x0}},
  544.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_DA, DV_U, 0x0}, {C_DA, S_HALANT, C_DA, DV_U, 0x0}},
  545.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_YA, DV_U, 0x0}, {C_DA, S_HALANT, C_YA, DV_U, 0x0}},
  546.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_VA, DV_U, 0x0}, {C_DA, S_HALANT, C_VA, DV_U, 0x0}},
  547.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_DHA, DV_U, 0x0}, {C_DA, S_HALANT, C_DHA, DV_U, 0x0}},
  548.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_BHA, DV_U, 0x0}, {C_DA, S_HALANT, C_BHA, DV_U, 0x0}},
  549.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_MA, DV_U, 0x0}, {C_DA, S_HALANT, C_MA, DV_U, 0x0}},
  550.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_DA, DV_UU, 0x0}, {C_DA, S_HALANT, C_DA, DV_UU, 0x0}},
  551.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_YA, DV_UU, 0x0}, {C_DA, S_HALANT, C_YA, DV_UU, 0x0}},
  552.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_VA, DV_UU, 0x0}, {C_DA, S_HALANT, C_VA, DV_UU, 0x0}},
  553.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_DHA, DV_UU, 0x0}, {C_DA, S_HALANT, C_DHA, DV_UU, 0x0}},
  554.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_BHA, DV_UU, 0x0}, {C_DA, S_HALANT, C_BHA, DV_UU, 0x0}},
  555.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_MA, DV_UU, 0x0}, {C_DA, S_HALANT, C_MA, DV_UU, 0x0}},
  556.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_DA, DV_R, 0x0}, {C_DA, S_HALANT, C_DA, DV_R, 0x0}},
  557.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_YA, DV_R, 0x0}, {C_DA, S_HALANT, C_YA, DV_R, 0x0}},
  558.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_VA, DV_R, 0x0}, {C_DA, S_HALANT, C_VA, DV_R, 0x0}},
  559.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_DHA, DV_R, 0x0}, {C_DA, S_HALANT, C_DHA, DV_R, 0x0}},
  560.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_BHA, DV_R, 0x0}, {C_DA, S_HALANT, C_BHA, DV_R, 0x0}},
  561.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_MA, DV_R, 0x0}, {C_DA, S_HALANT, C_MA, DV_R, 0x0}},
  562.     {1, 4, 4, MMI_ALL_LANG, {C_DA, S_HALANT, C_RA, S_HALANT, 0x0}, {C_DA, S_HALANT, C_RA, S_HALANT, 0x0}},
  563.     {1, 3, 1, MMI_MARATHI_LANG, {C_DA, S_HALANT, C_MA, 0x0}, {L_DA_MA, 0x0}},
  564.     /* PMT RAKESH END 20061006 */
  565. };
  566. const GLYPH_INFO_TABLE DHA_Tbl[] = 
  567. {
  568.     /* Dha +space */
  569. /* PMT RAKESH START 20061006 */
  570.     {0, 1, 1, MMI_ALL_LANG, {C_DHA, 0x0}, {C_DHA, 0x0}},
  571.     /* Dha + halant - > half form of Dha */
  572.     {1, 2, 1, MMI_ALL_LANG, {C_DHA, S_HALANT, 0x0}, {H_DHA, 0x0}},
  573.     /* Dha + halant + ra ->  Dhra OR dha + subscript ra */
  574.     /* START FARHAD PMT 20050211 */
  575.     {1, 3, 1, MMI_ALL_LANG, {C_DHA, S_HALANT, C_RA, 0x0}, {L_DHRA, 0x0}},
  576.     /* Dha + halant + ra + halant ->  half dha + Ra + halant */
  577.     {1, 4, 3, MMI_ALL_LANG, {C_DHA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_DHA, C_RA, S_HALANT, 0x0}}
  578.     /* END FARHAD PMT 20050211 */
  579. /* PMT RAKESH END 20061006 */
  580. };
  581. const GLYPH_INFO_TABLE NA_Tbl[] = 
  582. {
  583.     /* na + space */
  584. /* PMT RAKESH START 20061006 */
  585.     {0, 1, 1, MMI_ALL_LANG, {C_NA, 0x0}, {C_NA, 0x0}},
  586.     /* na + halant  ->  half form of na */
  587.     {1, 2, 1, MMI_ALL_LANG, {C_NA, S_HALANT, 0x0}, {H_NA, 0x0}},
  588.     /* na + halant + ra  -> na + subscript RA */
  589.     {1, 3, 1, MMI_ALL_LANG, {C_NA, S_HALANT, C_RA, 0x0}, {L_NRA, 0x0}}, /* Q */
  590.     /* na + halant + na -> (ligature form) NNA */
  591.     {1, 3, 1, MMI_ALL_LANG, {C_NA, S_HALANT, C_NA, 0x0}, {L_NNNA, 0x0}},
  592.     /* START FARHAD PMT 20050211 */
  593.     /* na + halant + ra + halant -> half na + RA + halant */
  594.     {1, 4, 3, MMI_ALL_LANG, {C_NA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_NA, C_RA, S_HALANT, 0x0}},        /* Q */
  595.     /* END FARHAD PMT 20050211 */
  596.     /* na + halant + na + halant -> (ligature form) NNA + halant */
  597.     {1, 4, 2, MMI_ALL_LANG, {C_NA, S_HALANT, C_NA, S_HALANT, 0x0}, {L_NNNA, S_HALANT, 0x0}}
  598. /* PMT RAKESH END 20061006 */
  599. };
  600. const GLYPH_INFO_TABLE NNNA_Tbl[] = 
  601. {
  602.     /* nna + space */
  603. /* PMT RAKESH START 20061006 */
  604.     {0, 1, 1, MMI_ALL_LANG, {C_NNNA, 0x0}, {C_NNNA, 0x0}},
  605.     /* nna + halant  ->  half form of na */
  606.     {1, 2, 1, MMI_ALL_LANG, {C_NNNA, S_HALANT, 0x0}, {H_NNNA, 0x0}},
  607.     //  /* nna + halant + ra  -> na + subscript RA*/
  608.     //{1,3,2,MMI_ALL_LANG,                     {C_NNNA,S_HALANT,C_RA,0x0},         {C_NNNA,DV_R,0x0} },/*Q*/
  609.     /* nna + halant + na -> (ligature form) NNA */
  610.     {1, 3, 1, MMI_ALL_LANG, {C_NNA, S_HALANT, C_NNA, 0x0}, {L_NNNA, 0x0}},
  611.     /* START FARHAD PMT 20050211 */
  612.     /* nna + halant + ra + halant -> half nna + RA + halant */
  613.     {1, 4, 3, MMI_ALL_LANG, {C_NNNA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_NNNA, C_RA, S_HALANT, 0x0}},
  614.     /* END FARHAD PMT 20050211 */
  615.     /* nna + halant + na + halant -> (ligature form) NNA + halant */
  616.     {1, 4, 2, MMI_ALL_LANG, {C_NNNA, S_HALANT, C_NNNA, S_HALANT, 0x0}, {L_NNNA, S_HALANT, 0x0}}
  617. /* PMT RAKESH END 20061006 */
  618. };
  619. const GLYPH_INFO_TABLE PA_Tbl[] = 
  620. {
  621.     /* pa + space */
  622. /* PMT RAKESH START 20061006 */
  623.     {0, 1, 1, MMI_ALL_LANG, {C_PA, 0x0}, {C_PA, 0x0}},
  624.     /* pa + halant -> half of pa */
  625.     {1, 2, 1, MMI_ALL_LANG, {C_PA, S_HALANT, 0x0}, {H_PA, 0x0}},
  626.     /* pa + halant + ra -> pra OR pa + subscript RA */
  627.     {1, 3, 1, MMI_ALL_LANG, {C_PA, S_HALANT, C_RA, 0x0}, {L_PRA, 0x0}},
  628.     /* START FARHAD PMT 20050211 */
  629.     /* pa + halant + ra + halant -> half pa + RA + halant */
  630.     {1, 4, 3, MMI_ALL_LANG, {C_PA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_PA, C_RA, S_HALANT, 0x0}}
  631.     /* END FARHAD PMT 20050211 */
  632. /* PMT RAKESH END 20061006 */
  633. };
  634. const GLYPH_INFO_TABLE PHA_Tbl[] = 
  635. {
  636.     /* pha +space */
  637. /* PMT RAKESH START 20061006 */
  638.     {0, 1, 1, MMI_ALL_LANG, {C_PHA, 0x0}, {C_PHA, 0x0}},
  639.     /* pha + halant -> half form of pha */
  640.     {1, 2, 1, MMI_ALL_LANG, {C_PHA, S_HALANT, 0x0}, {H_PHA, 0x0}},
  641.     /* pha + nukta -> pha with nukta form  */
  642.     {1, 2, 1, MMI_ALL_LANG, {C_PHA, S_NUKTA, 0x0}, {AC_FA, 0x0}},
  643.     /* pha + nukta + halant-> half pha with nukta */
  644.     {1, 3, 1, MMI_ALL_LANG, {C_PHA, S_NUKTA, S_HALANT, 0x0}, {H_PHA_N, 0x0}},
  645.     /* pha + halant + ra -> fra OR pha + subscript RA */
  646.     {1, 3, 1, MMI_ALL_LANG, {C_PHA, S_HALANT, C_RA, 0x0}, {L_FRA, 0x0}},
  647.     /* pha + nukta + halant + ra -> pha with nukta + subscript RA */
  648.     /* START FARHAD PMT 20050211 */
  649.     {1, 4, 1, MMI_ALL_LANG, {C_PHA, S_NUKTA, S_HALANT, C_RA, 0x0}, {L_FRA_N, 0x0}},
  650.     /* pha + halant + ra + halant -> half pha + RA + halant */
  651.     {1, 4, 3, MMI_ALL_LANG, {C_PHA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_PHA, C_RA, S_HALANT, 0x0}}
  652.     /* END FARHAD PMT 20050211 */
  653.     /* pha + nukta + halant + ra + halant -> pha with nukta + subscript RA + halant */
  654.     /* {1,4,1,MMI_ALL_LANG,                  {C_PHA,S_NUKTA,S_HALANT,C_RA,0x0},  {L_FRA_N,0x0} } */
  655. /* PMT RAKESH END 20061006 */
  656. };
  657. const GLYPH_INFO_TABLE BA_Tbl[] = 
  658. {
  659.     /* ba + space */
  660. /* PMT RAKESH START 20061006 */
  661.     {0, 1, 1, MMI_ALL_LANG, {C_BA, 0x0}, {C_BA, 0x0}},
  662.     /* ba + halant -> half form of ba */
  663.     {1, 2, 1, MMI_ALL_LANG, {C_BA, S_HALANT, 0x0}, {H_BA, 0x0}},
  664.     /* ba + halant + ra -> ba + subscript RA */
  665.     {1, 3, 1, MMI_ALL_LANG, {C_BA, S_HALANT, C_RA, 0x0}, {L_BRA, 0x0}}, /* Q */
  666.     /* ba + halant + ra + halant -> ba + subscript RA + halant */
  667.     /* START FARHAD PMT 20050211 */
  668.     {1, 4, 3, MMI_ALL_LANG, {C_BA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_BA, C_RA, S_HALANT, 0x0}} /* Q */
  669.     /* END FARHAD PMT 20050211 */
  670. /* PMT RAKESH END 20061006 */
  671. };
  672. const GLYPH_INFO_TABLE BHA_Tbl[] = 
  673. {
  674.     /* bha  + space */
  675. /* PMT RAKESH START 20061006 */
  676.     {0, 1, 1, MMI_ALL_LANG, {C_BHA, 0x0}, {C_BHA, 0x0}},
  677.     /* bha + halant -> half form of bha   */
  678.     {1, 2, 1, MMI_ALL_LANG, {C_BHA, S_HALANT, 0x0}, {H_BHA, 0x0}},
  679.     /* bha + halant + ra ->  bha + subscript RA */
  680.     {1, 3, 1, MMI_ALL_LANG, {C_BHA, S_HALANT, C_RA, 0x0}, {L_BHRA, 0x0}},       /* Q */
  681.     /* START FARHAD PMT 20050211 */
  682.     /* bha + halant + ra + halant -> half bha + RA + halant */
  683.     {1, 4, 3, MMI_ALL_LANG, {C_BHA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_BHA, C_RA, S_HALANT, 0x0}}       /* Q */
  684.     /* END FARHAD PMT 20050211 */
  685. /* PMT RAKESH END 20061006 */
  686. };
  687. const GLYPH_INFO_TABLE MA_Tbl[] = 
  688. {
  689.     /* ma  + space */
  690. /* PMT RAKESH START 20061006 */
  691.     {0, 1, 1, MMI_ALL_LANG, {C_MA, 0x0}, {C_MA, 0x0}},
  692.     /* ma + halant -> half form of ma */
  693.     {1, 2, 1, MMI_ALL_LANG, {C_MA, S_HALANT, 0x0}, {H_MA, 0x0}},
  694.     /* ma + halant + ra -> ma + subscript RA */
  695.     {1, 3, 1, MMI_ALL_LANG, {C_MA, S_HALANT, C_RA, 0x0}, {L_MRA, 0x0}}, /* Q */
  696.     /* START FARHAD PMT 20050211 */
  697.     /* ma + halant + ra + halant ->half ma + RA + halant */
  698.     {1, 4, 3, MMI_ALL_LANG, {C_MA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_MA, C_RA, S_HALANT, 0x0}} /* Q */
  699.     /* END FARHAD PMT 20050211 */
  700. /* PMT RAKESH END 20061006 */
  701. };
  702. const GLYPH_INFO_TABLE YA_Tbl[] = 
  703. {
  704.     /* ya + space */
  705. /* PMT RAKESH START 20061006 */
  706.     {0, 1, 1, MMI_ALL_LANG, {C_YA, 0x0}, {C_YA, 0x0}},
  707.     /* ya + halant -> half form of ya */
  708.     {1, 2, 1, MMI_ALL_LANG, {C_YA, S_HALANT, 0x0}, {H_YA, 0x0}},
  709.     /* ya + nukta   -> ya with nukta form */
  710.     {1, 2, 1, MMI_ALL_LANG, {C_YA, S_NUKTA, 0x0}, {AC_YYA, 0x0}},
  711.     /* ya + nukta + halant -> half form of ya with nukta */
  712.     {1, 3, 1, MMI_ALL_LANG, {C_YA, S_NUKTA, S_HALANT, 0x0}, {L_YA_N, 0x0}},
  713.     /* ya + halant + ra -> ya + subscript RA */
  714.     {1, 3, 1, MMI_ALL_LANG, {C_YA, S_HALANT, C_RA, 0x0}, {L_YRA, 0x0}}, /* Q */
  715.     /* ya + halant + ra + halant -> ya+ subscript RA + halant */
  716.     /* START FARHAD PMT 20050211 */
  717.     {1, 4, 3, MMI_ALL_LANG, {C_YA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_YA, C_RA, S_HALANT, 0x0}},        /* Q */
  718.     /* END FARHAD PMT 20050211 */
  719.     /* ya + nukta + halant + ra -> ya with nukta + subscript form of RA */
  720.     // {1,4,2,MMI_ALL_LANG,                  {C_YA,S_HALANT,C_RA,S_HALANT,0x0},  {AC_YYA,DV_R,0x0} },/*Q*/
  721.     /* ya + nukta +halant + ra + halant -> ya with nukta + subscript RA + halant */
  722.     {1, 4, 1, MMI_ALL_LANG, {C_YA, S_NUKTA, S_HALANT, C_RA, 0x0}, {L_YRA_N, 0x0}},
  723. /* PMT RAKESH END 20061006 */
  724. };
  725. const GLYPH_INFO_TABLE RA_Tbl[] = 
  726. {
  727.     /* ra + space */
  728. /* PMT RAKESH START 20061006 */
  729.     {0, 1, 1, MMI_ALL_LANG, {C_RA, 0x0}, {C_RA, 0x0}},
  730.     /* ra + halant -> superscript form of RA */
  731.     {1, 2, 1, MMI_ALL_LANG, {C_RA, S_HALANT, 0x0}, {SUP_RA, 0x0}},
  732.     /* ra + U -> Ru  */
  733.     {1, 2, 1, MMI_ALL_LANG, {C_RA, DV_U, 0x0}, {L_RU, 0x0}},
  734.     /* ra + UU -> RU  */
  735.     {1, 2, 1, MMI_ALL_LANG, {C_RA, DV_UU, 0x0}, {L_RUU, 0x0}},
  736.     {1, 3, 1, MMI_ALL_LANG, {C_RA, S_HALANT, S_BINDU, 0x0}, {L_RABIN, 0x0}},
  737.     /* RA + HAL + DV_E -> L_DVERA */
  738.     {1, 3, 1, MMI_ALL_LANG, {C_RA, S_HALANT, DV_E, 0x0}, {L_DVERA, 0x0}},
  739.     {1, 3, 1, MMI_ALL_LANG, {C_RA, S_HALANT, DV_AI, 0x0}, {L_DVAIRA, 0x0}},
  740.     {1, 3, 1, MMI_ALL_LANG, {C_RA, S_HALANT, DV_O, 0x0}, {L_DVORA, 0x0}},
  741.     {1, 3, 1, MMI_ALL_LANG, {C_RA, S_HALANT, DV_AU, 0x0}, {L_DVAURA, 0x0}},
  742.     {1, 4, 1, MMI_ALL_LANG, {C_RA, S_HALANT, DV_E, S_BINDU, 0x0}, {L_DVEBINRA, 0x0}},
  743.     {1, 4, 1, MMI_ALL_LANG, {C_RA, S_HALANT, DV_AI, S_BINDU, 0x0}, {L_DVAIBINRA, 0x0}},
  744.     {1, 4, 1, MMI_ALL_LANG, {C_RA, S_HALANT, DV_O, S_BINDU, 0x0}, {L_DVOBINRA, 0x0}},
  745.     /* {1,4,1,MMI_ALL_LANG, {C_RA,S_HALANT,DV_AU,S_BINDU,0x0},        {L_DVAUBINRA,0x0} }, */
  746. /* PMT RAKESH END 20061006 */
  747. };
  748. const GLYPH_INFO_TABLE RRA_Tbl[] = 
  749. {
  750.     /* ra + space */
  751. /* PMT RAKESH START 20061006 */
  752.     {0, 1, 1, MMI_ALL_LANG, {C_RRA, 0x0}, {C_RRA, 0x0}},
  753.     /* ra + halant -> eyelash RA */
  754.     {1, 2, 1, MMI_ALL_LANG, {C_RRA, S_HALANT, 0x0}, {H_EYLASH, 0x0}}
  755. /* PMT RAKESH END 20061006 */
  756. };
  757. const GLYPH_INFO_TABLE LA_Tbl[] = 
  758. {
  759.     /* la + space */
  760. /* PMT RAKESH START 20061006 */
  761.     {0, 1, 1, MMI_ALL_LANG, {C_LA, 0x0}, {C_LA, 0x0}},
  762.     /* la + halant -> half form of la */
  763.     {1, 2, 1, MMI_ALL_LANG, {C_LA, S_HALANT, 0x0}, {H_LA, 0x0}},
  764.     /* la + halant + ra -> half forFm of la + ra(nominal form) */
  765.     {1, 3, 2, MMI_ALL_LANG, {C_LA, S_HALANT, C_RA, 0x0}, {H_LA, C_RA, 0x0}},
  766.     
  767.     {1, 3, 1, MMI_MARATHI_LANG, {C_LA, S_HALANT, C_LA, 0x0}, {L_LA_LA, 0x0}},
  768.     /* PMT RAKESH END 20061006 */
  769. };
  770. const GLYPH_INFO_TABLE LLA_Tbl[] = 
  771. {
  772.     /* Lla */
  773. /* PMT RAKESH START 20061006 */
  774.     {0, 1, 1, MMI_ALL_LANG, {C_LLA, 0x0}, {C_LLA, 0x0}},
  775.     //START FARHAD PMT 20050211
  776.     //START VIJAY PMT 20050728....HALF FORM ADDED
  777.     /* Lla + halant -> Half form of LLA */
  778.     {0, 2, 1, MMI_ALL_LANG, {C_LLA, S_HALANT, 0x0}, {H_LLA, 0x0}},
  779.     /* Lla + halant + ra-> Lla + halant + ra */
  780.     {0, 3, 2, MMI_ALL_LANG, {C_LLA, S_HALANT, C_RA, 0x0}, {H_LLA, C_RA, 0x0}},
  781.     /* Lla + halant + ra + Halant-> Lla + halant + ra + Halant */
  782.     {0, 4, 4, MMI_ALL_LANG, {C_LLA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_LLA, C_RA, S_HALANT, 0x0}}
  783.     //END VIJAY PMT 20050728
  784.     //END FARHAD PMT 20050211
  785. /* PMT RAKESH END 20061006 */
  786. };
  787. const GLYPH_INFO_TABLE LLLA_Tbl[] = 
  788. {
  789.     /* Llla */
  790. /* PMT RAKESH START 20061006 */
  791.     {0, 1, 1, MMI_ALL_LANG, {C_LLLA, 0x0}, {C_LLLA, 0x0}},
  792.     //START FARHAD PMT 20050211             
  793.     //START VIJAY PMT 20050728....HALF FORM ADDED
  794.     /* Llla + halant -> half form of LLLA */
  795.     {0, 2, 1, MMI_ALL_LANG, {C_LLLA, S_HALANT, 0x0}, {H_LLLA, 0x0}},
  796.     /* Llla + halant + ra-> Llla + halant + ra */
  797.     {0, 3, 2, MMI_ALL_LANG, {C_LLLA, S_HALANT, C_RA, 0x0}, {H_LLLA, C_RA, 0x0}},
  798.     /* Llla + halant + ra + Halant-> Llla + halant + ra + Halant */
  799.     {0, 4, 3, MMI_ALL_LANG, {C_LLLA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_LLLA, C_RA, S_HALANT, 0x0}}
  800.     //END VIJAY PMT 20050728
  801.     //END FARHAD PMT 20050211
  802. /* PMT RAKESH END 20061006 */
  803. };
  804. const GLYPH_INFO_TABLE VA_Tbl[] = 
  805. {
  806.     /* va */
  807. /* PMT RAKESH START 20061006 */
  808.     {0, 1, 1, MMI_ALL_LANG, {C_VA, 0x0}, {C_VA, 0x0}},
  809.     /* va + halant -> half form of va */
  810.     {1, 2, 1, MMI_ALL_LANG, {C_VA, S_HALANT, 0x0}, {H_VA, 0x0}},
  811.     /* va + halant + ra -> vra OR va + subscript RA */
  812.     {1, 3, 1, MMI_ALL_LANG, {C_VA, S_HALANT, C_RA, 0x0}, {L_VRA, 0x0}}, /* Q */
  813.     /* va + halant + ra + halant -> vra OR va + subscript RA +halant  */
  814.     /* START FARHAD PMT 20050211 */
  815.     {1, 4, 3, MMI_ALL_LANG, {C_VA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_VA, C_RA, S_HALANT, 0x0}}
  816.     /* END FARHAD PMT 20050211 */
  817. /* PMT RAKESH END 20061006 */
  818. };
  819. const GLYPH_INFO_TABLE SHA_Tbl[] = 
  820. {
  821.     /* sha */
  822. /* PMT RAKESH START 20061006 */
  823.     {0, 1, 1, MMI_ALL_LANG, {C_SHA, 0x0}, {C_SHA, 0x0}},
  824.     /* sha + halant -> half form of sha */
  825.     {1, 2, 1, MMI_ALL_LANG, {C_SHA, S_HALANT, 0x0}, {H_SHA, 0x0}},
  826.     /* sha + halant + ra -> shra ligature */
  827.     {1, 3, 1, MMI_ALL_LANG, {C_SHA, S_HALANT, C_RA, 0x0}, {L_SHRA, 0x0}},
  828.     /* sha + halant + ra + halant -> half shra OR shra + halant */
  829.     /* {1,4,1,MMI_ALL_LANG,           {C_SHA,S_HALANT,C_RA,S_HALANT,0x0},  {H_SHRA,0x0} } */
  830.     {1, 3, 1, MMI_MARATHI_LANG, {C_SHA, S_HALANT, C_CHA, 0x0}, {L_SHRA_CHA, 0x0}},
  831.     {1, 3, 1, MMI_MARATHI_LANG, {C_SHA, S_HALANT, C_VA, 0x0}, {L_SHRA_VA, 0x0}},
  832.     {1, 3, 1, MMI_MARATHI_LANG, {C_SHA, S_HALANT, C_LA, 0x0}, {L_SHRA_LA, 0x0}},
  833.     {1, 3, 1, MMI_MARATHI_LANG, {C_SHA, S_HALANT, C_NA, 0x0}, {L_SHRA_NA, 0x0}}
  834.     /* PMT RAKESH END 20061006 */
  835. };
  836. const GLYPH_INFO_TABLE SSA_Tbl[] = 
  837. {
  838.     /* Ssa */
  839. /* PMT RAKESH START 20061006 */
  840.     {0, 1, 1, MMI_ALL_LANG, {C_SSA, 0x0}, {C_SSA, 0x0}},
  841.     /* SSA + halant -> half form of SSA  */
  842.     {1, 2, 1, MMI_ALL_LANG, {C_SSA, S_HALANT, 0x0}, {H_SSA, 0x0}},
  843.     /* ssa + halant + ra -> half ssa + ra(nominal form) */
  844.     /* START FARHAD PMT 20050211 */
  845.     {1, 3, 2, MMI_ALL_LANG, {C_SSA, S_HALANT, C_RA, 0x0}, {H_SSA, C_RA, 0x0}},
  846.     /* PMT RAKESH START 20061006 */
  847.     {1, 3, 1, MMI_MARATHI_LANG, {C_SSA, S_HALANT, C_TTA, 0x0}, {L_SSA_TTA, 0x0}},
  848.     /* PMT RAKESH END 20061006 */
  849.     /* ssa + halant + ra + halant -> half ssa + ra + Halant */
  850.     {1, 4, 3, MMI_ALL_LANG, {C_SSA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_SSA, C_RA, S_HALANT, 0x0}},
  851.     {1, 5, 1, MMI_MARATHI_LANG, {C_SSA, S_HALANT, C_TTA, S_HALANT, C_RA, 0x0}, {L_SSA_TTA_RA, 0x0}}
  852.     /* END FARHAD PMT 20050211 */
  853. /* PMT RAKESH END 20061006 */
  854. };
  855. const GLYPH_INFO_TABLE SA_Tbl[] = 
  856. {
  857.     /* sa + space */
  858. /* PMT RAKESH START 20061006 */
  859.     {0, 1, 1, MMI_ALL_LANG, {C_SA, 0x0}, {C_SA, 0x0}},
  860.     /* sa + halant -> half form of sa */
  861.     {1, 2, 1, MMI_ALL_LANG, {C_SA, S_HALANT, 0x0}, {H_SA, 0x0}},
  862.     /* sa + halant + ra -> sa + subscript RA OR sra */
  863.     {1, 3, 1, MMI_ALL_LANG, {C_SA, S_HALANT, C_RA, 0x0}, {L_SRA, 0x0}},
  864.     /* START FARHAD PMT 20050211 */
  865.     /* sa + halan + ra + halant -> half sa + RA + halant */
  866.     {1, 4, 3, MMI_ALL_LANG, {C_SA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_SA, C_RA, S_HALANT, 0x0}}
  867.     /* END FARHAD PMT 20050211 */
  868. /* PMT RAKESH END 20061006 */
  869. };
  870. const GLYPH_INFO_TABLE HA_Tbl[] = 
  871. {
  872.     /* ha + space  */
  873. /* PMT RAKESH START 20061006 */
  874.     {0, 1, 1, MMI_ALL_LANG, {C_HA, 0x0}, {C_HA, 0x0}},
  875.     /* ha + halant  -> half ha */
  876.     {0, 2, 1, MMI_ALL_LANG, {C_HA, S_HALANT, 0x0}, {H_HA, 0x0}},
  877.     /* ha + halant + ra -> ligature form OR ha + subscript RA(special form) */
  878.     {1, 3, 1, MMI_ALL_LANG, {C_HA, S_HALANT, C_RA, 0x0}, {L_HRA, 0x0}},
  879.     /* ha + halant + ya -> ligature form */
  880.     {1, 3, 1, MMI_ALL_LANG, {C_HA, S_HALANT, C_YA, 0x0}, {L_HYA, 0x0}},
  881.     /* ha + halant + ma -> ligature form */
  882.     {1, 3, 1, MMI_ALL_LANG, {C_HA, S_HALANT, C_MA, 0x0}, {L_HMMA, 0x0}},
  883.     /* ha + halant + ra + halant -> ligature form + halant OR ha + subscript RA(special form) + halant */
  884.     {1, 4, 2, MMI_ALL_LANG, {C_HA, S_HALANT, C_RA, S_HALANT, 0x0}, {L_HRA, S_HALANT, 0x0}},
  885.     /* ha + halant + ya -> ligature form */
  886.     {1, 4, 4, MMI_ALL_LANG, {C_HA, S_HALANT, C_YA, S_HALANT, 0x0}, {C_HA, S_HALANT, C_YA, S_HALANT, 0x0}},
  887.     /* ha + halant + ya -> ligature form */
  888.     {1, 4, 4, MMI_ALL_LANG, {C_HA, S_HALANT, C_MA, S_HALANT, 0x0}, {C_HA, S_HALANT, C_MA, S_HALANT, 0x0}},
  889.     {1, 4, 4, MMI_ALL_LANG, {C_HA, S_HALANT, C_RA, S_HALANT, 0x0}, {C_HA, S_HALANT, C_RA, S_HALANT, 0x0}},
  890.     {1, 4, 4, MMI_ALL_LANG, {C_HA, S_HALANT, C_RA, DV_U, 0x0}, {C_HA, S_HALANT, C_RA, DV_U, 0x0}},
  891.     {1, 4, 4, MMI_ALL_LANG, {C_HA, S_HALANT, C_RA, DV_UU, 0x0}, {C_HA, S_HALANT, C_RA, DV_UU, 0x0}},
  892.     {1, 4, 4, MMI_ALL_LANG, {C_HA, S_HALANT, C_RA, DV_R, 0x0}, {C_HA, S_HALANT, C_RA, DV_R, 0x0}},
  893.     /* ha + halant + ya -> ligature form */
  894.     {1, 4, 4, MMI_ALL_LANG, {C_HA, S_HALANT, C_YA, DV_U, 0x0}, {C_HA, S_HALANT, C_YA, DV_U, 0x0}},
  895.     /* ha + halant + ya -> ligature form */
  896.     {1, 4, 4, MMI_ALL_LANG, {C_HA, S_HALANT, C_MA, DV_U, 0x0}, {C_HA, S_HALANT, C_MA, DV_U, 0x0}},
  897.     /* ha + halant + ya -> ligature form */
  898.     {1, 4, 4, MMI_ALL_LANG, {C_HA, S_HALANT, C_YA, DV_UU, 0x0}, {C_HA, S_HALANT, C_YA, DV_UU, 0x0}},
  899.     /* ha + halant + ya -> ligature form */
  900.     {1, 4, 4, MMI_ALL_LANG, {C_HA, S_HALANT, C_MA, DV_UU, 0x0}, {C_HA, S_HALANT, C_MA, DV_UU, 0x0}},
  901.     /* ha + halant + ya -> ligature form */
  902.     {1, 4, 4, MMI_ALL_LANG, {C_HA, S_HALANT, C_YA, DV_R, 0x0}, {C_HA, S_HALANT, C_YA, DV_R, 0x0}},
  903.     /* ha + halant + ya -> ligature form */
  904.     {1, 4, 4, MMI_ALL_LANG, {C_HA, S_HALANT, C_MA, DV_R, 0x0}, {C_HA, S_HALANT, C_MA, DV_R, 0x0}},
  905. /* PMT RAKESH END 20061006 */
  906. };
  907.                            /* ADDITIONAL CONSONANT'S TABLE */
  908. const GLYPH_INFO_TABLE QA_Tbl[] = 
  909. {
  910.     /* qa + space */
  911. /* PMT RAKESH START 20061006 */
  912.     {0, 1, 1, MMI_ALL_LANG, {AC_QA, 0x0}, {AC_QA, 0x0}},
  913.     /* qa + Halant/Virama -> Half form of qa */
  914.     {1, 2, 1, MMI_ALL_LANG, {AC_QA, S_HALANT, 0x0}, {L_KA_N, 0x0}},
  915.     //  /* qa + Halant + Ra -> qra */
  916.     {1, 3, 1, MMI_ALL_LANG, {AC_QA, S_HALANT, C_RA, 0x0}, {L_KRA_N, 0x0}},
  917.     /* qa + Halant + Ra + Halant -> qra +Halant */
  918.     /* {1,4,2,MMI_ALL_LANG,     {AC_QA,S_HALANT,C_RA,S_HALANT,0x0},  {L_KRA,S_HALANT,0x0}}, */
  919.     /* START FARHAD PMT 20050211 */
  920.     /* Qa + Halant + Ra + Halant -> Half Form of Ka + Ra + Halant */
  921.     {1, 4, 3, MMI_ALL_LANG, {AC_QA, S_HALANT, C_RA, S_HALANT, 0x0}, {L_KA_N, C_RA, S_HALANT, 0x0}}
  922.     /* END FARHAD PMT 20050211 */
  923. /* PMT RAKESH END 20061006 */
  924. };
  925. const GLYPH_INFO_TABLE KHHA_Tbl[] = 
  926. {
  927.     /* khha + space */
  928. /* PMT RAKESH START 20061006 */
  929.     {0, 1, 1, MMI_ALL_LANG, {AC_KHHA, 0x0}, {AC_KHHA, 0x0}},
  930.     /* Khha + halant  -> half form of khha */
  931.     {1, 2, 1, MMI_ALL_LANG, {AC_KHHA, S_HALANT, 0x0}, {L_KHA_N, 0x0}},
  932.     /* khha + halant + ra -> Khha + subscript form of RA OR KHHRA as a whole */
  933.     {1, 3, 1, MMI_ALL_LANG, {AC_KHHA, S_HALANT, C_RA, 0x0}, {L_KHRA_N, 0x0}},   /* Q *//* new */
  934.     /* START FARHAD PMT 20050211 */
  935.     /* khha + halant + ra + halant -> half khha + RA  + halant */
  936.     {1, 4, 3, MMI_ALL_LANG, {AC_KHHA, S_HALANT, C_RA, S_HALANT, 0x0}, {L_KHA_N, C_RA, S_HALANT, 0x0}}   /* Q */
  937.     /* END FARHAD PMT 20050211 */
  938. /* PMT RAKESH END 20061006 */
  939. };
  940. const GLYPH_INFO_TABLE GHHA_Tbl[] = 
  941. {
  942.     /* ghhaa + space */
  943. /* PMT RAKESH START 20061006 */
  944.     {0, 1, 1, MMI_ALL_LANG, {AC_GHHA, 0x0}, {AC_GHHA, 0x0}},
  945.     /* ghha + halant -> half form of ghha */
  946.     {1, 2, 1, MMI_ALL_LANG, {AC_GHHA, S_HALANT, 0x0}, {L_GA_N, 0x0}},
  947.     /* ghha + halant + ra -> ghha + subscript form of RA */
  948.     {1, 3, 1, MMI_ALL_LANG, {AC_GHHA, S_HALANT, C_RA, 0x0}, {L_GRA_N, 0x0}},    /* Q *//* new */
  949.     /* START FARHAD PMT 20050211 */
  950.     /* ghha + halant + ra + halant -> half ghha + RA + halant */
  951.     {1, 4, 3, MMI_ALL_LANG, {AC_GHHA, S_HALANT, C_RA, S_HALANT, 0x0}, {L_GA_N, C_RA, S_HALANT, 0x0}}    /* Q */
  952.     /* END FARHAD PMT 20050211 */
  953. /* PMT RAKESH END 20061006 */
  954. };
  955. const GLYPH_INFO_TABLE ZA_Tbl[] = 
  956. {
  957.     /* za + space */
  958. /* PMT RAKESH START 20061006 */
  959.     {0, 1, 1, MMI_ALL_LANG, {AC_ZA, 0x0}, {AC_ZA, 0x0}},
  960.     /* za + halant -> half form of za  */
  961.     {1, 2, 1, MMI_ALL_LANG, {AC_ZA, S_HALANT, 0x0}, {H_JA_N, 0x0}},
  962.     /* za + halant + ra -> zra  */
  963.     {1, 3, 1, MMI_ALL_LANG, {AC_ZA, S_HALANT, C_RA, 0x0}, {L_JRA_N, 0x0}},      /* new */
  964.     /* za + halant + ra + halant -> zra + halant or za + subscript RA + halant */
  965.     /* START FARHAD PMT 20050211 */
  966.     {1, 4, 3, MMI_ALL_LANG, {AC_ZA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_JA_N, C_RA, S_HALANT, 0x0}}
  967.     /* END FARHAD PMT 20050211 */
  968. /* PMT RAKESH END 20061006 */
  969. };
  970. const GLYPH_INFO_TABLE DDDHA_Tbl[] = 
  971. {
  972.     /* dddha + space */
  973. /* PMT RAKESH START 20061006 */
  974.     {0, 1, 1, MMI_ALL_LANG, {AC_DDDHA, 0x0}, {AC_DDDHA, 0x0}},
  975.     /* dddha + halant -> dddha+ halant */
  976.     {1, 2, 2, MMI_ALL_LANG, {AC_DDDHA, S_HALANT, 0x0}, {AC_DDDHA, S_HALANT, 0x0}},
  977.     /* dddha + halant + ra -> dddha + subscript ra(special represenatio */
  978.     /* {1,3,2,MMI_ALL_LANG,     {AC_DDDHA,S_HALANT,C_RA,0x0},                {AC_DDDHA,SUB_RA,0x0} } */
  979. /* PMT RAKESH END 20061006 */
  980. };
  981. const GLYPH_INFO_TABLE RHA_Tbl[] = 
  982. {
  983.     /* rha + space */
  984. /* PMT RAKESH START 20061006 */
  985.     {0, 1, 1, MMI_ALL_LANG, {AC_RHA, 0x0}, {AC_RHA, 0x0}},
  986.     /* rha + halant -> rha + halant */
  987.     {0, 2, 2, MMI_ALL_LANG, {AC_RHA, S_HALANT, 0x0}, {AC_RHA, S_HALANT, 0x0}},
  988.     /* rha + halant + ra -> rha + subscript ra(special form) */
  989.     /* {1,3,2,MMI_ALL_LANG,        {AC_RHA,S_HALANT,C_RA,0x0},                {AC_RHA,SUB_RA,0x0} } */
  990. /* PMT RAKESH END 20061006 */
  991. };
  992. const GLYPH_INFO_TABLE FA_Tbl[] = 
  993. {
  994.     /* fa +space */
  995. /* PMT RAKESH START 20061006 */
  996.     {0, 1, 1, MMI_ALL_LANG, {AC_FA, 0x0}, {AC_FA, 0x0}},
  997.     /* fa + halant -> half form of fa */
  998.     {1, 2, 1, MMI_ALL_LANG, {AC_FA, S_HALANT, 0x0}, {H_PHA_N, 0x0}},
  999.     /* fa + halant + ra -> fra OR fa + subscript RA */
  1000.     {1, 3, 1, MMI_ALL_LANG, {AC_FA, S_HALANT, C_RA, 0x0}, {L_FRA_N, 0x0}},      /* new */
  1001.     /* START FARHAD PMT 20050211 */
  1002.     /* fa + halant + ra + halant -> half fa + ra + halant */
  1003.     {1, 4, 3, MMI_ALL_LANG, {AC_FA, S_HALANT, C_RA, S_HALANT, 0x0}, {H_PHA_N, C_RA, S_HALANT, 0x0}}
  1004.     /* END FARHAD PMT 20050211 */
  1005. /* PMT RAKESH END 20061006 */
  1006. };
  1007. const GLYPH_INFO_TABLE YYA_Tbl[] = 
  1008. {
  1009.     /* yya + space */
  1010. /* PMT RAKESH START 20061006 */
  1011.     {0, 1, 1, MMI_ALL_LANG, {AC_YYA, 0x0}, {AC_YYA, 0x0}},
  1012.     /* yya + halant -> half form of yya */
  1013.     {1, 2, 1, MMI_ALL_LANG, {AC_YYA, S_HALANT, 0x0}, {L_YA_N, 0x0}},
  1014.     /* yya + halant + ra -> yya + subscript RA */
  1015.     {1, 3, 1, MMI_ALL_LANG, {AC_YYA, S_HALANT, C_RA, 0x0}, {L_YRA_N, 0x0}},     /* Q *//* new */
  1016.     /* START FARHAD PMT 20050211 */
  1017.     /* yya + halant + ra + halant -> half yya+ RA + halant */
  1018.     {1, 4, 3, MMI_ALL_LANG, {AC_YYA, S_HALANT, C_RA, S_HALANT, 0x0}, {L_YA_N, C_RA, S_HALANT, 0x0}}
  1019.     /* END FARHAD PMT 20050211 */
  1020. /* PMT RAKESH END 20061006 */
  1021. };
  1022.               /* VARIOUS SIGNS TABLES */
  1023. const GLYPH_INFO_TABLE CHNDR_BINDU_Tbl[] = 
  1024. {
  1025. /* PMT RAKESH START 20061006 */
  1026.     {0, 1, 1, MMI_ALL_LANG, {S_CHANDRA_BINDU, 0x0}, {S_CHANDRA_BINDU, 0x0}}
  1027. /* PMT RAKESH END 20061006 */
  1028. };
  1029. const GLYPH_INFO_TABLE BINDU_Tbl[] = 
  1030. {
  1031. /* PMT RAKESH START 20061006 */
  1032.     {0, 1, 1, MMI_ALL_LANG, {S_BINDU, 0x0}, {S_BINDU, 0x0}}
  1033. /* PMT RAKESH END 20061006 */
  1034. };
  1035. const GLYPH_INFO_TABLE VISARGA_Tbl[] = 
  1036. {
  1037. /* PMT RAKESH START 20061006 */
  1038.     {0, 1, 1, MMI_ALL_LANG, {S_VISARGA, 0x0}, {S_VISARGA, 0x0}}
  1039. /* PMT RAKESH END 20061006 */
  1040. };
  1041. const GLYPH_INFO_TABLE NUKTA_Tbl[] = 
  1042. {
  1043. /* PMT RAKESH START 20061006 */
  1044.     {0, 1, 1, MMI_ALL_LANG, {S_NUKTA, 0x0}, {S_NUKTA, 0x0}}
  1045. /* PMT RAKESH END 20061006 */
  1046. };
  1047. const GLYPH_INFO_TABLE OM_Tbl[] = 
  1048. {
  1049. /* PMT RAKESH START 20061006 */
  1050.     {0, 1, 1, MMI_ALL_LANG, {S_OM, 0x0}, {S_OM, 0x0}}
  1051. /* PMT RAKESH END 20061006 */
  1052. };
  1053.                         /* INDEPENDENT VOWEL'S TABLE */
  1054. const GLYPH_INFO_TABLE NSA_Tbl[] = 
  1055. {
  1056. /* PMT RAKESH START 20061006 */
  1057.     {0, 1, 1, MMI_ALL_LANG, {NIV_A, 0x0}, {NIV_A, 0x0}}
  1058. /* PMT RAKESH END 20061006 */
  1059. };
  1060. const GLYPH_INFO_TABLE A_Tbl[] = 
  1061. {
  1062. /* PMT RAKESH START 20061006 */
  1063.     {0, 1, 1, MMI_ALL_LANG, {IV_A, 0x0}, {IV_A, 0x0}}
  1064. /* PMT RAKESH END 20061006 */
  1065. };
  1066. const GLYPH_INFO_TABLE AA_Tbl[] = 
  1067. {
  1068. /* PMT RAKESH START 20061006 */
  1069.     {0, 1, 1, MMI_ALL_LANG, {IV_AA, 0x0}, {IV_AA, 0x0}}
  1070. /* PMT RAKESH END 20061006 */
  1071. };
  1072. const GLYPH_INFO_TABLE I_Tbl[] = 
  1073. {
  1074. /* PMT RAKESH START 20061006 */
  1075.     {0, 1, 1, MMI_ALL_LANG, {IV_I, 0x0}, {IV_I, 0x0}}
  1076. /* PMT RAKESH END 20061006 */
  1077. };
  1078. const GLYPH_INFO_TABLE II_Tbl[] = 
  1079. {
  1080. /* PMT RAKESH START 20061006 */
  1081.     {0, 1, 1, MMI_ALL_LANG, {IV_II, 0x0}, {IV_II, 0x0}}
  1082. /* PMT RAKESH END 20061006 */
  1083. };
  1084. const GLYPH_INFO_TABLE U_Tbl[] = 
  1085. {
  1086. /* PMT RAKESH START 20061006 */
  1087.     {0, 1, 1, MMI_ALL_LANG, {IV_U, 0x0}, {IV_U, 0x0}}
  1088. /* PMT RAKESH END 20061006 */
  1089. };
  1090. const GLYPH_INFO_TABLE UU_Tbl[] = 
  1091. {
  1092. /* PMT RAKESH START 20061006 */
  1093.     {0, 1, 1, MMI_ALL_LANG, {IV_UU, 0x0}, {IV_UU, 0x0}}
  1094. /* PMT RAKESH END 20061006 */
  1095. };
  1096. const GLYPH_INFO_TABLE R_Tbl[] = 
  1097. {
  1098. /* PMT RAKESH START 20061006 */
  1099.     {0, 1, 1, MMI_ALL_LANG, {IV_R, 0x0}, {IV_R, 0x0}}
  1100. /* PMT RAKESH END 20061006 */
  1101. };
  1102. const GLYPH_INFO_TABLE NVL_Tbl[] = 
  1103. {
  1104. /* PMT RAKESH START 20061006 */
  1105.     {0, 1, 1, MMI_ALL_LANG, {NIV_L, 0x0}, {NIV_L, 0x0}}
  1106. /* PMT RAKESH END 20061006 */
  1107. };
  1108. const GLYPH_INFO_TABLE NCE_Tbl[] = 
  1109. {
  1110. /* PMT RAKESH START 20061006 */
  1111.     {0, 1, 1, MMI_ALL_LANG, {NIV_CE, 0x0}, {NIV_CE, 0x0}}
  1112. /* PMT RAKESH END 20061006 */
  1113. };
  1114. const GLYPH_INFO_TABLE NSE_Tbl[] = 
  1115. {
  1116. /* PMT RAKESH START 20061006 */
  1117.     {0, 1, 1, MMI_ALL_LANG, {NIV_SE, 0x0}, {NIV_SE, 0x0}}
  1118. /* PMT RAKESH END 20061006 */
  1119. };
  1120. const GLYPH_INFO_TABLE E_Tbl[] = 
  1121. {
  1122. /* PMT RAKESH START 20061006 */
  1123.     {0, 1, 1, MMI_ALL_LANG, {IV_E, 0x0}, {IV_E, 0x0}}
  1124. /* PMT RAKESH END 20061006 */
  1125. };
  1126. const GLYPH_INFO_TABLE AI_Tbl[] = 
  1127. {
  1128. /* PMT RAKESH START 20061006 */
  1129.     {0, 1, 1, MMI_ALL_LANG, {IV_AI, 0x0}, {IV_AI, 0x0}}
  1130. /* PMT RAKESH END 20061006 */
  1131. };
  1132. const GLYPH_INFO_TABLE NCO_Tbl[] = 
  1133. {
  1134. /* PMT RAKESH START 20061006 */
  1135.     {0, 1, 1, MMI_ALL_LANG, {NIV_CO, 0x0}, {NIV_CO, 0x0}}
  1136. /* PMT RAKESH END 20061006 */
  1137. };
  1138. const GLYPH_INFO_TABLE NCSO_Tbl[] = 
  1139. {
  1140. /* PMT RAKESH START 20061006 */
  1141.     {0, 1, 1, MMI_ALL_LANG, {NIV_SO, 0x0}, {NIV_SO, 0x0}}
  1142. /* PMT RAKESH END 20061006 */
  1143. };
  1144. const GLYPH_INFO_TABLE O_Tbl[] = 
  1145. {
  1146. /* PMT RAKESH START 20061006 */
  1147.     {0, 1, 1, MMI_ALL_LANG, {IV_O, 0x0}, {IV_O, 0x0}}
  1148. /* PMT RAKESH END 20061006 */
  1149. };
  1150. const GLYPH_INFO_TABLE AU_Tbl[] = 
  1151. {
  1152. /* PMT RAKESH START 20061006 */
  1153.     {0, 1, 1, MMI_ALL_LANG, {IV_AU, 0x0}, {IV_AU, 0x0}}
  1154. /* PMT RAKESH END 20061006 */
  1155. };
  1156.                       /* DEPENDENT VOWEL SIGN/MATRAS TABLES */
  1157. const GLYPH_INFO_TABLE MAA_Tbl[] = 
  1158. {
  1159. /* PMT RAKESH START 20061006 */
  1160.     {0, 1, 1, MMI_ALL_LANG, {DV_AA, 0x0}, {DV_AA, 0x0}},
  1161.     {0, 2, 1, MMI_ALL_LANG, {DV_AA, S_CHANDRA_BINDU, 0x0}, {L_NCAND, 0x0}},
  1162.     {0, 2, 1, MMI_ALL_LANG, {DV_AA, S_BINDU, 0x0}, {L_NBINDU, 0x0}},
  1163. /* PMT RAKESH END 20061006 */
  1164. };
  1165. const GLYPH_INFO_TABLE MI_Tbl[] = 
  1166. {
  1167. /* PMT RAKESH START 20061006 */
  1168.     {0, 1, 1, MMI_ALL_LANG, {DV_I, 0x0}, {DV_I, 0x0}},
  1169.     {1, 3, 1, MMI_ALL_LANG, {DV_I, C_RA, S_HALANT, 0x0}, {L_IRAHAL, 0x0}},
  1170.     {1, 4, 1, MMI_ALL_LANG, {DV_I, C_RA, S_HALANT, S_BINDU, 0x0}, {L_IRAHALB, 0x0}}
  1171. /* PMT RAKESH END 20061006 */
  1172. };
  1173. const GLYPH_INFO_TABLE MII_Tbl[] = 
  1174. {
  1175. /* PMT RAKESH START 20061006 */
  1176.     {0, 1, 1, MMI_ALL_LANG, {DV_II, 0x0}, {DV_II, 0x0}},
  1177.     {1, 2, 1, MMI_ALL_LANG, {DV_II, S_BINDU, 0x0}, {L_MII, 0x0}},
  1178.     {1, 3, 1, MMI_ALL_LANG, {DV_II, C_RA, S_HALANT, 0x0}, {L_MIIRA, 0x0}},
  1179.     {1, 4, 1, MMI_ALL_LANG, {DV_II, C_RA, S_HALANT, S_BINDU, 0x0}, {L_IIRAHALB, 0x0}}
  1180. /* PMT RAKESH END 20061006 */
  1181. };
  1182. const GLYPH_INFO_TABLE MU_Tbl[] = 
  1183. {
  1184. /* PMT RAKESH START 20061006 */
  1185.     {0, 1, 1, MMI_ALL_LANG, {DV_U, 0x0}, {DV_U, 0x0}}
  1186. /* PMT RAKESH END 20061006 */
  1187. };
  1188. const GLYPH_INFO_TABLE MUU_Tbl[] = 
  1189. {
  1190. /* PMT RAKESH START 20061006 */
  1191.     {0, 1, 1, MMI_ALL_LANG, {DV_UU, 0x0}, {DV_UU, 0x0}}
  1192. /* PMT RAKESH END 20061006 */
  1193. };
  1194. const GLYPH_INFO_TABLE MR_Tbl[] = 
  1195. {
  1196. /* PMT RAKESH START 20061006 */
  1197.     {0, 1, 1, MMI_ALL_LANG, {DV_R, 0x0}, {DV_R, 0x0}}
  1198. /* PMT RAKESH END 20061006 */
  1199. };
  1200. const GLYPH_INFO_TABLE MC_Tbl[] = 
  1201. {
  1202. /* PMT RAKESH START 20061006 */
  1203.     {0, 1, 1, MMI_ALL_LANG, {DV_CE, 0x0}, {DV_CE, 0x0}},
  1204.     {0, 2, 1, MMI_ALL_LANG, {DV_CE, S_BINDU, 0x0}, {S_CHANDRA_BINDU, 0x0}}
  1205. /* PMT RAKESH END 20061006 */
  1206. };
  1207. const GLYPH_INFO_TABLE ME_Tbl[] = 
  1208. {
  1209. /* PMT RAKESH START 20061006 */
  1210.     {0, 1, 1, MMI_ALL_LANG, {DV_E, 0x0}, {DV_E, 0x0}},
  1211.     {0, 2, 1, MMI_ALL_LANG, {DV_E, S_BINDU, 0x0}, {L_ME, 0x0}},
  1212.     {1, 3, 1, MMI_ALL_LANG, {DV_E, C_RA, S_HALANT, 0x0}, {L_DVERA, 0x0}},
  1213.     {1, 4, 1, MMI_ALL_LANG, {DV_E, C_RA, S_HALANT, S_BINDU, 0x0}, {L_DVEBINRA, 0x0}}
  1214. /* PMT RAKESH END 20061006 */
  1215. };
  1216. const GLYPH_INFO_TABLE MAI_Tbl[] = 
  1217. {
  1218. /* PMT RAKESH START 20061006 */
  1219.     {0, 1, 1, MMI_ALL_LANG, {DV_AI, 0x0}, {DV_AI, 0x0}},
  1220.     {0, 2, 1, MMI_ALL_LANG, {DV_AI, S_BINDU, 0x0}, {L_MAI, 0x0}},
  1221.     {1, 3, 1, MMI_ALL_LANG, {DV_AI, C_RA, S_HALANT, 0x0}, {L_DVAIRA, 0x0}},
  1222.     {1, 4, 1, MMI_ALL_LANG, {DV_AI, C_RA, S_HALANT, S_BINDU, 0x0}, {L_DVAIBINRA, 0x0}}
  1223. /* PMT RAKESH END 20061006 */
  1224. };
  1225. const GLYPH_INFO_TABLE MCO_Tbl[] = 
  1226. {
  1227. /* PMT RAKESH START 20061006 */
  1228.     {0, 1, 1, MMI_ALL_LANG, {NDV_CO, 0x0}, {NDV_CO, 0x0}},
  1229.     {1, 2, 1, MMI_ALL_LANG, {NDV_CO, S_BINDU, 0x0}, {L_NCAND, 0x0}}
  1230. /* PMT RAKESH END 20061006 */
  1231. };
  1232. const GLYPH_INFO_TABLE MO_Tbl[] = 
  1233. {
  1234. /* PMT RAKESH START 20061006 */
  1235.     {0, 1, 1, MMI_ALL_LANG, {DV_O, 0x0}, {DV_O, 0x0}},
  1236.     {1, 2, 1, MMI_ALL_LANG, {DV_O, S_BINDU, 0x0}, {L_MO, 0x0}},
  1237.     {1, 3, 1, MMI_ALL_LANG, {DV_O, C_RA, S_HALANT, 0x0}, {L_DVORA, 0x0}},
  1238.     {1, 4, 1, MMI_ALL_LANG, {DV_O, C_RA, S_HALANT, S_BINDU, 0x0}, {L_DVOBINRA, 0x0}}
  1239. /* PMT RAKESH END 20061006 */
  1240. };
  1241. const GLYPH_INFO_TABLE MAU_Tbl[] = 
  1242. {
  1243. /* PMT RAKESH START 20061006 */
  1244.     {0, 1, 1, MMI_ALL_LANG, {DV_AU, 0x0}, {DV_AU, 0x0}},
  1245.     {1, 2, 1, MMI_ALL_LANG, {DV_AU, S_BINDU, 0x0}, {L_MAU, 0x0}},
  1246.     {1, 3, 1, MMI_ALL_LANG, {DV_AU, C_RA, S_HALANT, 0x0}, {L_DVAURA, 0x0}},
  1247.     {1, 4, 1, MMI_ALL_LANG, {DV_AU, C_RA, S_HALANT, S_BINDU, 0x0}, {L_DVAUBINRA, 0x0}}
  1248. /* PMT RAKESH END 20061006 */
  1249. };
  1250. const GLYPH_INFO_TABLE HAL_Tbl[] = 
  1251. {
  1252. /* PMT RAKESH START 20061006 */
  1253.     {0, 1, 1, MMI_ALL_LANG, {S_HALANT, 0x0}, {S_HALANT, 0x0}}
  1254. /* PMT RAKESH END 20061006 */
  1255. };
  1256. /* vj */
  1257. const GLYPH_INFO_TABLE NGD_Tbl[] = 
  1258. {
  1259. /* PMT RAKESH START 20061006 */
  1260.     {0, 1, 1, MMI_ALL_LANG, {NG_D, 0x0}, {NG_D, 0x0}}
  1261. /* PMT RAKESH END 20061006 */
  1262. };
  1263. /* START VIJAY PMT 20050728 */
  1264. const GLYPH_INFO_TABLE NGDD_Tbl[] = 
  1265. {
  1266. /* PMT RAKESH START 20061006 */
  1267.     {0, 1, 1, MMI_ALL_LANG, {NG_DD, 0x0}, {NG_DD, 0x0}}
  1268. /* PMT RAKESH END 20061006 */
  1269. };
  1270. const GLYPH_INFO_TABLE NABBR_Tbl[] = 
  1271. {
  1272. /* PMT RAKESH START 20061006 */
  1273.     {0, 1, 1, MMI_ALL_LANG, {S_ABBR, 0x0}, {S_ABBR, 0x0}}
  1274. /* PMT RAKESH END 20061006 */
  1275. };
  1276.    //END VIJAY PMT 20050728
  1277.    //vj
  1278.                        /* NUMERALS TABLE */
  1279. const GLYPH_INFO_TABLE ZERO_Tbl[] = 
  1280. {
  1281. /* PMT RAKESH START 20061006 */
  1282.     {0, 1, 1, MMI_ALL_LANG, {D_ZERO, 0x0}, {D_ZERO, 0x0}}
  1283. /* PMT RAKESH END 20061006 */
  1284. };
  1285. const GLYPH_INFO_TABLE ONE_Tbl[] = 
  1286. {
  1287. /* PMT RAKESH START 20061006 */
  1288.     {0, 1, 1, MMI_ALL_LANG, {D_ONE, 0x0}, {D_ONE, 0x0}}
  1289. /* PMT RAKESH END 20061006 */
  1290. };
  1291. const GLYPH_INFO_TABLE TWO_Tbl[] = 
  1292. {
  1293. /* PMT RAKESH START 20061006 */
  1294.     {0, 1, 1, MMI_ALL_LANG, {D_TWO, 0x0}, {D_TWO, 0x0}}
  1295. /* PMT RAKESH END 20061006 */
  1296. };
  1297. const GLYPH_INFO_TABLE THREE_Tbl[] = 
  1298. {
  1299. /* PMT RAKESH START 20061006 */
  1300.     {0, 1, 1, MMI_ALL_LANG, {D_THREE, 0x0}, {D_THREE, 0x0}}
  1301. /* PMT RAKESH END 20061006 */
  1302. };
  1303. const GLYPH_INFO_TABLE FOUR_Tbl[] = 
  1304. {
  1305. /* PMT RAKESH START 20061006 */
  1306.     {0, 1, 1, MMI_ALL_LANG, {D_FOUR, 0x0}, {D_FOUR, 0x0}}
  1307. /* PMT RAKESH END 20061006 */
  1308. };
  1309. const GLYPH_INFO_TABLE FIVE_Tbl[] = 
  1310. {
  1311. /* PMT RAKESH START 20061006 */
  1312.     {0, 1, 1, MMI_ALL_LANG, {D_FIVE, 0x0}, {D_FIVE, 0x0}}
  1313. /* PMT RAKESH END 20061006 */
  1314. };
  1315. const GLYPH_INFO_TABLE SIX_Tbl[] = 
  1316. {
  1317. /* PMT RAKESH START 20061006 */
  1318.     {0, 1, 1, MMI_ALL_LANG, {D_SIX, 0x0}, {D_SIX, 0x0}}
  1319. /* PMT RAKESH END 20061006 */
  1320. };
  1321. const GLYPH_INFO_TABLE SEVEN_Tbl[] = 
  1322. {
  1323. /* PMT RAKESH START 20061006 */
  1324.     {0, 1, 1, MMI_ALL_LANG, {D_SEVEN, 0x0}, {D_SEVEN, 0x0}}
  1325. /* PMT RAKESH END 20061006 */
  1326. };
  1327. const GLYPH_INFO_TABLE EIGHT_Tbl[] = 
  1328. {
  1329. /* PMT RAKESH START 20061006 */
  1330.     {0, 1, 1, MMI_ALL_LANG, {D_EIGHT, 0x0}, {D_EIGHT, 0x0}}
  1331. /* PMT RAKESH END 20061006 */
  1332. };
  1333. const GLYPH_INFO_TABLE NINE_Tbl[] = 
  1334. {
  1335. /* PMT RAKESH START 20061006 */
  1336.     {0, 1, 1, MMI_ALL_LANG, {D_NINE, 0x0}, {D_NINE, 0x0}}
  1337. /* PMT RAKESH END 20061006 */
  1338. };
  1339. const MAIN_TABLE hfDvngTbl[] = 
  1340. {
  1341.     /* NULL for devanagari sign Short A */
  1342.     {CHNDR_BINDU_Tbl, sizeof(CHNDR_BINDU_Tbl) / sizeof(CHNDR_BINDU_Tbl[0]), 1}
  1343.     ,
  1344.     {BINDU_Tbl, sizeof(BINDU_Tbl) / sizeof(BINDU_Tbl[0]), 1}
  1345.     ,
  1346.     {VISARGA_Tbl, sizeof(VISARGA_Tbl) / sizeof(VISARGA_Tbl[0]), 1}
  1347.     ,
  1348.     /* INDEPENDENT VOWELS */
  1349.     /* NULL For Independent Vowel L,Chandra E,Short E,Chandra O,Short O */
  1350.     {NSA_Tbl, sizeof(NSA_Tbl) / sizeof(NSA_Tbl[0]), 1}
  1351.     ,
  1352.     {A_Tbl, sizeof(A_Tbl) / sizeof(A_Tbl[0]), 1}
  1353.     ,
  1354.     {AA_Tbl, sizeof(AA_Tbl) / sizeof(AA_Tbl[0]), 1}
  1355.     ,
  1356.     {I_Tbl, sizeof(I_Tbl) / sizeof(I_Tbl[0]), 1}
  1357.     ,
  1358.     {II_Tbl, sizeof(II_Tbl) / sizeof(II_Tbl[0]), 1}
  1359.     ,
  1360.     {U_Tbl, sizeof(U_Tbl) / sizeof(U_Tbl[0]), 1}
  1361.     ,
  1362.     {UU_Tbl, sizeof(UU_Tbl) / sizeof(UU_Tbl[0]), 1}
  1363.     ,
  1364.     {R_Tbl, sizeof(R_Tbl) / sizeof(R_Tbl[0]), 1}
  1365.     ,
  1366.     {NVL_Tbl, sizeof(NVL_Tbl) / sizeof(NVL_Tbl[0]), 1}
  1367.     ,
  1368.     {NCE_Tbl, sizeof(NCE_Tbl) / sizeof(NCE_Tbl[0]), 1}
  1369.     ,
  1370.     {NSE_Tbl, sizeof(NSE_Tbl) / sizeof(NSE_Tbl[0]), 1}
  1371.     ,
  1372.     {E_Tbl, sizeof(E_Tbl) / sizeof(E_Tbl[0]), 1}
  1373.     ,
  1374.     {AI_Tbl, sizeof(AI_Tbl) / sizeof(AI_Tbl[0]), 1}
  1375.     ,
  1376.     {NCO_Tbl, sizeof(NCO_Tbl) / sizeof(NCO_Tbl[0]), 1}
  1377.     ,
  1378.     {NCSO_Tbl, sizeof(NCSO_Tbl) / sizeof(NCSO_Tbl[0]), 1}
  1379.     ,
  1380.     {O_Tbl, sizeof(O_Tbl) / sizeof(O_Tbl[0]), 1}
  1381.     ,
  1382.     {AU_Tbl, sizeof(AU_Tbl) / sizeof(AU_Tbl[0]), 1}
  1383.     ,
  1384.     /* Consonants */
  1385.     {KA_Tbl, sizeof(KA_Tbl) / sizeof(KA_Tbl[0]), 4}
  1386.     ,
  1387.     {KHA_Tbl, sizeof(KHA_Tbl) / sizeof(KHA_Tbl[0]), 4}
  1388.     ,
  1389.     {GA_Tbl, sizeof(GA_Tbl) / sizeof(GA_Tbl[0]), 4}
  1390.     ,
  1391.     {GHA_Tbl, sizeof(GHA_Tbl) / sizeof(GHA_Tbl[0]), 4}
  1392.     ,
  1393.     {NGA_Tbl, sizeof(NGA_Tbl) / sizeof(NGA_Tbl[0]), 3}
  1394.     ,
  1395.     {CHA_Tbl, sizeof(CHA_Tbl) / sizeof(CHA_Tbl[0]), 4}
  1396.     ,
  1397.     {CHHA_Tbl, sizeof(CHHA_Tbl) / sizeof(CHHA_Tbl[0]), 3}
  1398.     ,
  1399.     {JA_Tbl, sizeof(JA_Tbl) / sizeof(JA_Tbl[0]), 4}
  1400.     ,
  1401.     {JHA_Tbl, sizeof(JHA_Tbl) / sizeof(JHA_Tbl[0]), 4}
  1402.     ,
  1403.     {NYA_Tbl, sizeof(NYA_Tbl) / sizeof(NYA_Tbl[0]), 1}
  1404.     ,
  1405.     {TTA_Tbl, sizeof(TTA_Tbl) / sizeof(TTA_Tbl[0]), 3}
  1406.     ,
  1407.     {TTHA_Tbl, sizeof(TTHA_Tbl) / sizeof(TTHA_Tbl[0]), 3}
  1408.     ,
  1409.     {DDA_Tbl, sizeof(DDA_Tbl) / sizeof(DDA_Tbl[0]), 3}
  1410.     ,
  1411.     {DDHA_Tbl, sizeof(DDHA_Tbl) / sizeof(DDHA_Tbl[0]), 4}
  1412.     ,
  1413.     {NNA_Tbl, sizeof(NNA_Tbl) / sizeof(NNA_Tbl[0]), 3}
  1414.     ,
  1415.     {TA_Tbl, sizeof(TA_Tbl) / sizeof(TA_Tbl[0]), 4}
  1416.     ,
  1417.     {THA_Tbl, sizeof(THA_Tbl) / sizeof(THA_Tbl[0]), 4}
  1418.     ,
  1419.     {DA_Tbl, sizeof(DA_Tbl) / sizeof(DA_Tbl[0]), 4}
  1420.     ,
  1421.     {DHA_Tbl, sizeof(DHA_Tbl) / sizeof(DHA_Tbl[0]), 4}
  1422.     ,
  1423.     {NA_Tbl, sizeof(NA_Tbl) / sizeof(NA_Tbl[0]), 4}
  1424.     ,
  1425.     {NNNA_Tbl, sizeof(NNNA_Tbl) / sizeof(NNNA_Tbl[0]), 4}
  1426.     ,
  1427.     {PA_Tbl, sizeof(PA_Tbl) / sizeof(PA_Tbl[0]), 4}
  1428.     ,
  1429.     {PHA_Tbl, sizeof(PHA_Tbl) / sizeof(PHA_Tbl[0]), 5}
  1430.     ,
  1431.     {BA_Tbl, sizeof(BA_Tbl) / sizeof(BA_Tbl[0]), 4}
  1432.     ,
  1433.     {BHA_Tbl, sizeof(BHA_Tbl) / sizeof(BHA_Tbl[0]), 4}
  1434.     ,
  1435.     {MA_Tbl, sizeof(MA_Tbl) / sizeof(MA_Tbl[0]), 4}
  1436.     ,
  1437.     {YA_Tbl, sizeof(YA_Tbl) / sizeof(YA_Tbl[0]), 4}
  1438.     ,
  1439.     {RA_Tbl, sizeof(RA_Tbl) / sizeof(RA_Tbl[0]), 2}
  1440.     ,
  1441.     {RRA_Tbl, sizeof(RRA_Tbl) / sizeof(RRA_Tbl[0]), 2}
  1442.     ,
  1443.     {LA_Tbl, sizeof(LA_Tbl) / sizeof(LA_Tbl[0]), 3}
  1444.     ,
  1445.     {LLA_Tbl, sizeof(LLA_Tbl) / sizeof(LLA_Tbl[0]), 3}
  1446.     ,
  1447.     {LLLA_Tbl, sizeof(LLLA_Tbl) / sizeof(LLLA_Tbl[0]), 3}
  1448.     ,
  1449.     {VA_Tbl, sizeof(VA_Tbl) / sizeof(VA_Tbl[0]), 4}
  1450.     ,
  1451.     {SHA_Tbl, sizeof(SHA_Tbl) / sizeof(SHA_Tbl[0]), 4}
  1452.     ,
  1453.     {SSA_Tbl, sizeof(SSA_Tbl) / sizeof(SSA_Tbl[0]), 3}
  1454.     ,
  1455.     {SA_Tbl, sizeof(SA_Tbl) / sizeof(SA_Tbl[0]), 4}
  1456.     ,
  1457.     {HA_Tbl, sizeof(HA_Tbl) / sizeof(HA_Tbl[0]), 4}
  1458.     ,
  1459.     {NULL, 0, 0}
  1460.     ,
  1461.     {NULL, 0, 0}
  1462.     ,
  1463.     /* Various Signs */
  1464.     /* NULL for Avagraha */
  1465.     {NUKTA_Tbl, sizeof(NUKTA_Tbl), 1}
  1466.     ,
  1467.     {NULL, 0, 0}
  1468.     ,
  1469.     /* Dependent Vowel Signs */
  1470.     /* Null for RR,Short E,Chandra O,Short O */
  1471.     {MAA_Tbl, sizeof(MAA_Tbl) / sizeof(MAA_Tbl[0]), 1}
  1472.     ,
  1473.     {MI_Tbl, sizeof(MI_Tbl) / sizeof(MI_Tbl[0]), 1}
  1474.     ,
  1475.     {MII_Tbl, sizeof(MII_Tbl) / sizeof(MII_Tbl[0]), 2}
  1476.     ,
  1477.     {MU_Tbl, sizeof(MU_Tbl) / sizeof(MU_Tbl[0]), 1}
  1478.     ,
  1479.     {MUU_Tbl, sizeof(MUU_Tbl) / sizeof(MUU_Tbl[0]), 1}
  1480.     ,
  1481.     {MR_Tbl, sizeof(MR_Tbl) / sizeof(MR_Tbl[0]), 1}
  1482.     ,
  1483.     {NULL, 0, 0}
  1484.     ,
  1485.     {MC_Tbl, sizeof(MC_Tbl) / sizeof(MC_Tbl[0]), 1}
  1486.     ,
  1487.     {NULL, 0, 0}
  1488.     ,
  1489.     {ME_Tbl, sizeof(ME_Tbl) / sizeof(ME_Tbl[0]), 2}
  1490.     ,
  1491.     {MAI_Tbl, sizeof(MAI_Tbl) / sizeof(MAI_Tbl[0]), 1}
  1492.     ,
  1493.     {MCO_Tbl, sizeof(MCO_Tbl) / sizeof(MCO_Tbl[0]), 1}
  1494.     ,
  1495.     {NULL, 0, 0}
  1496.     ,
  1497.     {MO_Tbl, sizeof(MO_Tbl) / sizeof(MO_Tbl[0]), 2}
  1498.     ,
  1499.     {MAU_Tbl, sizeof(MAU_Tbl) / sizeof(MAU_Tbl[0]), 1}
  1500.     ,
  1501.     /* Various Signs */
  1502.     {HAL_Tbl, sizeof(HAL_Tbl) / sizeof(HAL_Tbl[0]), 1}
  1503.     ,
  1504.     {NULL, 0, 0}
  1505.     ,
  1506.     {NULL, 0, 0}
  1507.     ,
  1508.     {OM_Tbl, sizeof(OM_Tbl) / sizeof(OM_Tbl[0]), 1}
  1509.     ,
  1510.     {NULL, 0, 0}
  1511.     ,
  1512.     {NULL, 0, 0}
  1513.     ,
  1514.     {NULL, 0, 0}
  1515.     ,
  1516.     {NULL, 0, 0}
  1517.     ,
  1518.     {NULL, 0, 0}
  1519.     ,
  1520.     {NULL, 0, 0}
  1521.     ,
  1522.     {NULL, 0, 0}
  1523.     ,
  1524.     /* Additional Consonant */
  1525.     {QA_Tbl, sizeof(QA_Tbl) / sizeof(QA_Tbl[0]), 1}
  1526.     ,
  1527.     {KHHA_Tbl, sizeof(KHHA_Tbl) / sizeof(GHHA_Tbl[0]), 1}
  1528.     ,
  1529.     {GHHA_Tbl, sizeof(GHHA_Tbl) / sizeof(GHHA_Tbl[0]), 1}
  1530.     ,
  1531.     {ZA_Tbl, sizeof(ZA_Tbl) / sizeof(ZA_Tbl[0]), 1}
  1532.     ,
  1533.     {DDDHA_Tbl, sizeof(DDDHA_Tbl) / sizeof(DDDHA_Tbl[0]), 1}
  1534.     ,
  1535.     {RHA_Tbl, sizeof(RHA_Tbl) / sizeof(RHA_Tbl[0]), 1}
  1536.     ,
  1537.     {FA_Tbl, sizeof(FA_Tbl) / sizeof(FA_Tbl[0]), 1}
  1538.     ,
  1539.     {YYA_Tbl, sizeof(YYA_Tbl) / sizeof(YYA_Tbl[0]), 1}
  1540.     ,
  1541.     /* Generic Addition,used in Sanskrit only */
  1542.     {NULL, 0, 0}
  1543.     ,
  1544.     {NULL, 0, 0}
  1545.     ,
  1546.     {NULL, 0, 0}
  1547.     ,
  1548.     {NULL, 0, 0}
  1549.     ,
  1550.     {NGD_Tbl, sizeof(NGD_Tbl) / sizeof(NGD_Tbl[0]), 1}
  1551.     ,   /* vj */
  1552.     /* START VIJAY PMT 20050728 */
  1553.     {NGDD_Tbl, sizeof(NGDD_Tbl) / sizeof(NGDD_Tbl[0]), 1}
  1554.     ,
  1555.     /* END VIJAY PMT 20050728 */
  1556.     {ZERO_Tbl, sizeof(ZERO_Tbl) / sizeof(ZERO_Tbl[0]), 1}
  1557.     ,
  1558.     {ONE_Tbl, sizeof(ONE_Tbl) / sizeof(ONE_Tbl[0]), 1}
  1559.     ,
  1560.     {TWO_Tbl, sizeof(TWO_Tbl) / sizeof(TWO_Tbl[0]), 1}
  1561.     ,
  1562.     {THREE_Tbl, sizeof(THREE_Tbl) / sizeof(THREE_Tbl[0]), 1}
  1563.     ,
  1564.     {FOUR_Tbl, sizeof(FOUR_Tbl) / sizeof(FOUR_Tbl[0]), 1}
  1565.     ,
  1566.     {FIVE_Tbl, sizeof(FIVE_Tbl) / sizeof(FIVE_Tbl[0]), 1}
  1567.     ,
  1568.     {SIX_Tbl, sizeof(SIX_Tbl) / sizeof(SIX_Tbl[0]), 1}
  1569.     ,
  1570.     {SEVEN_Tbl, sizeof(SEVEN_Tbl) / sizeof(SEVEN_Tbl[0]), 1}
  1571.     ,
  1572.     {EIGHT_Tbl, sizeof(EIGHT_Tbl) / sizeof(EIGHT_Tbl[0]), 1}
  1573.     ,
  1574.     {NINE_Tbl, sizeof(NINE_Tbl) / sizeof(NINE_Tbl[0]), 1}
  1575.     ,
  1576.     /* START VIJAY PMT 20050728 */
  1577.     {NABBR_Tbl, sizeof(NABBR_Tbl) / sizeof(NABBR_Tbl[0]), 1}
  1578.     /* END VIJAY PMT 20050728 */
  1579. };
  1580. const U8 g_hindi_character_type_array[] = 
  1581. {
  1582.     HF_INVALID,
  1583.     SIGN,       /* S_CHANDRA_BINDU=0x0901, */
  1584.     SIGN,       /* S_BINDU=0x902, */
  1585.     SIGN,       /* S_VISARGA=0x903, */
  1586.     INDVOW,     /* NIV_A=0x904, */
  1587.     INDVOW,     /* IV_A=0x905, */
  1588.     INDVOW,     /* IV_AA=0x906, */
  1589.     INDVOW,     /* IV_I=0x907, */
  1590.     INDVOW,     /* IV_II=0x908, */
  1591.     INDVOW,     /* IV_U=0x909, */
  1592.     INDVOW,     /* IV_UU=0x90a, */
  1593.     INDVOW,     /* IV_R=0x90b, */
  1594.     INDVOW,     /* NIV_L=0x90c, */
  1595.     INDVOW,     /* NIV_CE=0x90d, */
  1596.     INDVOW,     /* NIV_SE=0x90e, */
  1597.     INDVOW,     /* IV_E=0x90f, */
  1598.     INDVOW,     /* IV_AI=0x910, */
  1599.     INDVOW,     /* NIV_CO=0x911, */
  1600.     INDVOW,     /* NIV_SO=0x912, */
  1601.     INDVOW,     /* IV_O=0x913, */
  1602.     INDVOW,     /* IV_AU=0x914, */
  1603.     CON,        /* C_KA=0x915, */
  1604.     CON,        /* C_KHA=0x916, */
  1605.     CON,        /* C_GA=0x917, */
  1606.     CON,        /* C_GHA=0x918, */
  1607.     CON,        /* C_NGA=0x919, */
  1608.     CON,        /* C_CHA=0x91a, */
  1609.     CON,        /* C_CHHA=0x91b, */
  1610.     CON,        /* C_JA=0x91c, */
  1611.     CON,        /* C_JHA=0x91d, */
  1612.     CON,        /* C_NYA=0x91e, */
  1613.     CON,        /* C_TTA=0x91f, */
  1614.     CON,        /* C_TTHA=0x920, */
  1615.     CON,        /* C_DDA=0x921, */
  1616.     CON,        /* C_DDHA=0x922, */
  1617.     CON,        /* C_NNA=0x923, */
  1618.     CON,        /* C_TA=0x924, */
  1619.     CON,        /* C_THA=0x925, */
  1620.     CON,        /* C_DA=0x926, */
  1621.     CON,        /* C_DHA=0x927, */
  1622.     CON,        /* C_NA=0x928, */
  1623.     CON,        /* C_NNNA=0x929, */
  1624.     CON,        /* C_PA=0x92a, */
  1625.     CON,        /* C_PHA=0x92b, */
  1626.     CON,        /* C_BA=0x92c, */
  1627.     CON,        /* C_BHA=0x92d, */
  1628.     CON,        /* C_MA=0x92e, */
  1629.     CON,        /* C_YA=0x92f, */
  1630.     CON,        /* C_RA=0x930, */
  1631.     CON,        /* C_RRA=0x931, */
  1632.     CON,        /* C_LA=0x932, */
  1633.     CON,        /* C_LLA=0x933, */
  1634.     CON,        /* C_LLLA=0x934, */
  1635.     CON,        /* C_VA=0x935, */
  1636.     CON,        /* C_SHA=0x936, */
  1637.     CON,        /* C_SSA=0x937, */
  1638.     CON,        /* C_SA=0x938, */
  1639.     CON,        /* C_HA=0x939, */
  1640.     HF_INVALID, /* N_BLANK1=0x93a, */
  1641.     HF_INVALID, /* N_BLANK2=0x93b, */
  1642.     SIGN,       /* S_NUKTA=0x93c, */
  1643.     SIGN,       /* NS_AVAGRAHA=0x93d, */
  1644.     DEPVOW,     /* DV_AA=0x93e, */
  1645.     DEPVOW,     /* DV_I=0x93F, */
  1646.     DEPVOW,     /* DV_II=0x940, */
  1647.     DEPVOW,     /* DV_U=0x941, */
  1648.     DEPVOW,     /* DV_UU=0x942, */
  1649.     DEPVOW,     /* DV_R=0x943, */
  1650.     DEPVOW,     /* NDV_RR=0x944, */
  1651.     DEPVOW,     /* DV_CE=0x945, */
  1652.     DEPVOW,     /* NDV_E=0x946, */
  1653.     DEPVOW,     /* DV_E=0x947, */
  1654.     DEPVOW,     /* DV_AI=0x948, */
  1655.     DEPVOW,     /* NDV_CO=0x949, */
  1656.     DEPVOW,     /* NDV_O=0x94a, */
  1657.     DEPVOW,     /* DV_O=0x94b, */
  1658.     DEPVOW,     /* DV_AU=0x94c, */
  1659.     HALANT,     /* S_HALANT=0x94d, */
  1660.     HF_INVALID, /* NS_RESERVED1=0x94e, */
  1661.     HF_INVALID, /* NS_RESERVED2=0x94f, */
  1662.     /* START VIJAY PMT 20050728..changed from SIGN */
  1663.     INDVOW,     /* S_OM=0x950, */
  1664.     /* END VIJAY PMT 20050728 */
  1665.     SIGN,       /* NS_UDATTA=0x951, */
  1666.     SIGN,       /* NS_ANUDATTA=0x952, */
  1667.     SIGN,       /* NS_GACCENT=0x953, */
  1668.     SIGN,       /* NS_AACCENT=0x954, */
  1669.     HF_INVALID, /* N_BLANK5=0x955, */
  1670.     HF_INVALID, /* N_BLANK6=0x956, */
  1671.     HF_INVALID, /* N_BLANK7=0x957, */
  1672.     CON,        /* AC_QA=0x958, */
  1673.     CON,        /* AC_KHHA=0x959, */
  1674.     CON,        /* AC_GHHA=0x95a, */
  1675.     CON,        /* AC_ZA=0x95b, */
  1676.     CON,        /* AC_DDDHA=0x95c, */
  1677.     CON,        /* AC_RHA=0x95d, */
  1678.     CON,        /* AC_FA=0x95e, */
  1679.     CON,        /* AC_YYA=0x95f, */
  1680.     HF_INVALID, /* NG_RR=0x960, */
  1681.     HF_INVALID, /* NG_LL=0x961, */
  1682.     HF_INVALID, /* NG_L=0x962, */
  1683.     HF_INVALID, /* NG_VLL=0x963, */
  1684.     /* START VIJAY PMT 20050728 */
  1685.     INDVOW,     /* NG_D=0x964, */
  1686.     INDVOW,     /* NG_DD=0x965, */
  1687.     /* END VIJAY PMT 20050728 */
  1688.     NUM,        /* D_ZERO=0x966, */
  1689.     NUM,        /* D_ONE=0x967, */
  1690.     NUM,        /* D_TWO=0x968, */
  1691.     NUM,        /* D_THREE=0x969, */
  1692.     NUM,        /* D_FOUR=0x96a, */
  1693.     NUM,        /* D_FIVE=0x96b, */
  1694.     NUM,        /* D_SIX=0x96c, */
  1695.     NUM,        /* D_SEVEN=0x96d, */
  1696.     NUM,        /* D_EIGHT=0x96e, */
  1697.     NUM,        /* D_NINE=0x96f, */
  1698.     /* START VIJAY PMT 20050728..changed from SIGN */
  1699.     INDVOW      /* S_ABBR=0x970 */
  1700.         /* END   PMT 20050728 */
  1701. };
  1702. const U8 g_hindi_character_sign_array[] = 
  1703. {
  1704.     FALSE,
  1705.     TRUE,   /* S_CHANDRA_BINDU=0x0901, */
  1706.     TRUE,   /* S_BINDU=0x902, */
  1707.     /* PMT START MAUI_00223197 */
  1708.     TRUE,   /* S_VISARGA=0x903, */
  1709.     /* PMT END MAUI_00223197 */
  1710.     FALSE,  /* NIV_A=0x904, */
  1711.     FALSE,  /* IV_A=0x905, */
  1712.     FALSE,  /* IV_AA=0x906, */
  1713.     FALSE,  /* IV_I=0x907, */
  1714.     FALSE,  /* IV_II=0x908, */
  1715.     FALSE,  /* IV_U=0x909, */
  1716.     FALSE,  /* IV_UU=0x90a, */
  1717.     FALSE,  /* IV_R=0x90b, */
  1718.     FALSE,  /* NIV_L=0x90c, */
  1719.     FALSE,  /* NIV_CE=0x90d, */
  1720.     FALSE,  /* NIV_SE=0x90e, */
  1721.     FALSE,  /* IV_E=0x90f, */
  1722.     FALSE,  /* IV_AI=0x910, */
  1723.     FALSE,  /* NIV_CO=0x911, */
  1724.     FALSE,  /* NIV_SO=0x912, */
  1725.     FALSE,  /* IV_O=0x913, */
  1726.     FALSE,  /* IV_AU=0x914, */
  1727.     FALSE,  /* C_KA=0x915, */
  1728.     FALSE,  /* C_KHA=0x916, */
  1729.     FALSE,  /* C_GA=0x917, */
  1730.     FALSE,  /* C_GHA=0x918, */
  1731.     FALSE,  /* C_NGA=0x919, */
  1732.     FALSE,  /* C_CHA=0x91a, */
  1733.     FALSE,  /* C_CHHA=0x91b, */
  1734.     FALSE,  /* C_JA=0x91c, */
  1735.     FALSE,  /* C_JHA=0x91d, */
  1736.     FALSE,  /* C_NYA=0x91e, */
  1737.     FALSE,  /* C_TTA=0x91f, */
  1738.     FALSE,  /* C_TTHA=0x920, */
  1739.     FALSE,  /* C_DDA=0x921, */
  1740.     FALSE,  /* C_DDHA=0x922, */
  1741.     FALSE,  /* C_NNA=0x923, */
  1742.     FALSE,  /* C_TA=0x924, */
  1743.     FALSE,  /* C_THA=0x925, */
  1744.     FALSE,  /* C_DA=0x926, */
  1745.     FALSE,  /* C_DHA=0x927, */
  1746.     FALSE,  /* C_NA=0x928, */
  1747.     FALSE,  /* C_NNNA=0x929, */
  1748.     FALSE,  /* C_PA=0x92a, */
  1749.     FALSE,  /* C_PHA=0x92b, */
  1750.     FALSE,  /* C_BA=0x92c, */
  1751.     FALSE,  /* C_BHA=0x92d, */
  1752.     FALSE,  /* C_MA=0x92e, */
  1753.     FALSE,  /* C_YA=0x92f, */
  1754.     FALSE,  /* C_RA=0x930, */
  1755.     FALSE,  /* C_RRA=0x931, */
  1756.     FALSE,  /* C_LA=0x932, */
  1757.     FALSE,  /* C_LLA=0x933, */
  1758.     FALSE,  /* C_LLLA=0x934, */
  1759.     FALSE,  /* C_VA=0x935, */
  1760.     FALSE,  /* C_SHA=0x936, */
  1761.     FALSE,  /* C_SSA=0x937, */
  1762.     FALSE,  /* C_SA=0x938, */
  1763.     FALSE,  /* C_HA=0x939, */
  1764.     FALSE,  /* N_BLANK1=0x93a, */
  1765.     FALSE,  /* N_BLANK2=0x93b, */
  1766.     TRUE,   /* S_NUKTA=0x93c, */
  1767.     FALSE,  /* NS_AVAGRAHA=0x93d, */
  1768.     FALSE,  /* DV_AA=0x93e, */
  1769.     FALSE,  /* DV_I=0x93F, */
  1770.     FALSE,  /* DV_II=0x940, */
  1771.     TRUE,   /* DV_U=0x941, */
  1772.     TRUE,   /* DV_UU=0x942, */
  1773.     TRUE,   /* DV_R=0x943, */
  1774.     FALSE,  /* NDV_RR=0x944, */
  1775.     TRUE,   /* DV_CE=0x945, */
  1776.     FALSE,  /* NDV_E=0x946, */
  1777.     TRUE,   /* DV_E=0x947, */
  1778.     TRUE,   /* DV_AI=0x948, */
  1779.     FALSE,  /* NDV_CO=0x949, */
  1780.     FALSE,  /* NDV_O=0x94a, */
  1781.     FALSE,  /* DV_O=0x94b, */
  1782.     FALSE,  /* DV_AU=0x94c, */
  1783.     TRUE,   /* S_HALANT=0x94d, */
  1784.     FALSE,  /* NS_RESERVED1=0x94e, */
  1785.     FALSE,  /* NS_RESERVED2=0x94f, */
  1786.     FALSE,  /* S_OM=0x950, */
  1787.     FALSE,  /* NS_UDATTA=0x951, */
  1788.     FALSE,  /* NS_ANUDATTA=0x952, */
  1789.     FALSE,  /* NS_GACCENT=0x953, */
  1790.     FALSE,  /* NS_AACCENT=0x954, */
  1791.     FALSE,  /* N_BLANK5=0x955, */
  1792.     FALSE,  /* N_BLANK6=0x956, */
  1793.     FALSE,  /* N_BLANK7=0x957, */
  1794.     FALSE,  /* AC_QA=0x958, */
  1795.     FALSE,  /* AC_KHHA=0x959, */
  1796.     FALSE,  /* AC_GHHA=0x95a, */
  1797.     FALSE,  /* AC_ZA=0x95b, */
  1798.     FALSE,  /* AC_DDDHA=0x95c, */
  1799.     FALSE,  /* AC_RHA=0x95d, */
  1800.     FALSE,  /* AC_FA=0x95e, */
  1801.     FALSE,  /* AC_YYA=0x95f, */
  1802.     FALSE,  /* NG_RR=0x960, */
  1803.     FALSE,  /* NG_LL=0x961, */
  1804.     FALSE,  /* NG_L=0x962, */
  1805.     FALSE,  /* NG_VLL=0x963, */
  1806.     FALSE,  /* NG_D=0x964, */
  1807.     FALSE,  /* NG_DD=0x965, */
  1808.     FALSE,  /* D_ZERO=0x966, */
  1809.     FALSE,  /* D_ONE=0x967, */
  1810.     FALSE,  /* D_TWO=0x968, */
  1811.     FALSE,  /* D_THREE=0x969, */
  1812.     FALSE,  /* D_FOUR=0x96a, */
  1813.     FALSE,  /* D_FIVE=0x96b, */
  1814.     FALSE,  /* D_SIX=0x96c, */
  1815.     FALSE,  /* D_SEVEN=0x96d, */
  1816.     FALSE,  /* D_EIGHT=0x96e, */
  1817.     FALSE,  /* D_NINE=0x96f, */
  1818.     FALSE   /* S_ABBR=0x970 */
  1819. };
  1820. const U8 g_hindi_character_extended_sign_array[] = 
  1821. {
  1822.     FALSE,  /* 59648 */
  1823.     FALSE,  /* 59649 */
  1824.     FALSE,  /* 59650 */
  1825.     FALSE,  /* 59651 */
  1826.     FALSE,  /* 59652 */
  1827.     FALSE,  /* 59653 */
  1828.     FALSE,  /* 59654 */
  1829.     FALSE,  /* 59655 */
  1830.     FALSE,  /* 59656 */
  1831.     FALSE,  /* 59657 */
  1832.     FALSE,  /* 59658 */
  1833.     FALSE,  /* 59659 */
  1834.     FALSE,  /* 59660 */
  1835.     FALSE,  /* 59661 */
  1836.     FALSE,  /* 59662 */
  1837.     FALSE,  /* 59663 */
  1838.     FALSE,  /* 59664 */
  1839.     FALSE,  /* 59665 */
  1840.     FALSE,  /* 59666 */
  1841.     FALSE,  /* 59667 */
  1842.     FALSE,  /* 59668 */
  1843.     FALSE,  /* 59669 */
  1844.     FALSE,  /* 59670 */
  1845.     FALSE,  /* 59671 */
  1846.     FALSE,  /* 59672 */
  1847.     FALSE,  /* 59673 */
  1848.     FALSE,  /* 59674 */
  1849.     FALSE,  /* 59675 */
  1850.     FALSE,  /* 59676 */
  1851.     FALSE,  /* 59677 */
  1852.     FALSE,  /* 59678 */
  1853.     FALSE,  /* 59679 */
  1854.     FALSE,  /* 59680 */
  1855.     FALSE,  /* 59681 */
  1856.     FALSE,  /* 59682 */
  1857.     FALSE,  /* 59683 */
  1858.     FALSE,  /* 59684 */
  1859.     FALSE,  /* 59685 */
  1860.     FALSE,  /* 59686 */
  1861.     FALSE,  /* 59687 */
  1862.     FALSE,  /* 59688 */
  1863.     FALSE,  /* 59689 */
  1864.     FALSE,  /* 59690 */
  1865.     FALSE,  /* 59691 */
  1866.     FALSE,  /* 59692 */
  1867.     FALSE,  /* 59693 */
  1868.     FALSE,  /* 59694 */
  1869.     FALSE,  /* 59695 */
  1870.     FALSE,  /* 59696 */
  1871.     FALSE,  /* 59697 */
  1872.     FALSE,  /* 59698 */
  1873.     FALSE,  /* 59699 */
  1874.     FALSE,  /* 59700 */
  1875.     FALSE,  /* 59701 */
  1876.     FALSE,  /* 59702 */
  1877.     FALSE,  /* 59703 */
  1878.     FALSE,  /* 59704 */
  1879.     FALSE,  /* 59705 */
  1880.     FALSE,  /* 59706 */
  1881.     FALSE,  /* 59707 */
  1882.     FALSE,  /* 59708 */
  1883.     FALSE,  /* 59709 */
  1884.     FALSE,  /* 59710 */
  1885.     FALSE,  /* 59711 */
  1886.     FALSE,  /* 59712 */
  1887.     FALSE,  /* 59713 */
  1888.     FALSE,  /* 59714 */
  1889.     FALSE,  /* 59715 */
  1890.     FALSE,  /* 59716 */
  1891.     FALSE,  /* 59717 */
  1892.     FALSE,  /* 59718 */
  1893.     FALSE,  /* 59719 */
  1894.     FALSE,  /* 59720 */
  1895.     FALSE,  /* 59721 */
  1896.     FALSE,  /* 59722 */
  1897.     FALSE,  /* 59723 */
  1898.     FALSE,  /* 59724 */
  1899.     FALSE,  /* 59725 */
  1900.     FALSE,  /* 59726 */
  1901.     FALSE,  /* 59727 */
  1902.     FALSE,  /* 59728 */
  1903.     FALSE,  /* 59729 */
  1904.     FALSE,  /* 59730 */
  1905.     FALSE,  /* 59731 */
  1906.     FALSE,  /* 59732 */
  1907.     FALSE,  /* 59733 */
  1908.     FALSE,  /* 59734 */
  1909.     FALSE,  /* 59735 */
  1910.     FALSE,  /* 59736 */
  1911.     FALSE,  /* 59737 */
  1912.     FALSE,  /* 59738 */
  1913.     FALSE,  /* 59739 */
  1914.     FALSE,  /* 59740 */
  1915.     FALSE,  /* 59741 */
  1916.     FALSE,  /* 59742 */
  1917.     FALSE,  /* 59743 */
  1918.     FALSE,  /* 59744 */
  1919.     FALSE,  /* 59745 */
  1920.     FALSE,  /* 59746 */
  1921.     FALSE,  /* 59747 */
  1922.     FALSE,  /* 59748 */
  1923.     FALSE,  /* 59749 */
  1924.     FALSE,  /* 59750 */
  1925.     FALSE,  /* 59751 */
  1926.     FALSE,  /* 59752 */
  1927.     FALSE,  /* 59753 */
  1928.     FALSE,  /* 59754 */
  1929.     FALSE,  /* 59755 */
  1930.     FALSE,  /* 59756 */
  1931.     FALSE,  /* 59757 */
  1932.     FALSE,  /* 59758 */
  1933.     FALSE,  /* 59759 */
  1934.     FALSE,  /* 59760 */
  1935.     FALSE,  /* 59761 */
  1936.     FALSE,  /* 59762 */
  1937.     FALSE,  /* 59763 */
  1938.     FALSE,  /* 59764 */
  1939.     FALSE,  /* 59765 */
  1940.     FALSE,  /* 59766 */
  1941.     FALSE,  /* 59767 */
  1942.     FALSE,  /* 59768 */
  1943.     FALSE,  /* 59769 */
  1944.     FALSE,  /* 59770 */
  1945.     TRUE,   /* 59771 */
  1946.     FALSE,  /* 59772 */
  1947.     FALSE,  /* 59773 */
  1948.     TRUE,   /* 59774 */
  1949.     TRUE,   /* 59775 */
  1950.     FALSE,  /* 59776 */