¥»¤å²­z gen_inp ¼Ò²Õªº¤¤¤å¦r»P¨ä¹ïÀ³ªº keystroke ·j´M¸ê®Æµ²ºc¡C

gen_inp ¬O¦Û .tab Àɤ¤Åª¨ú¿é¤Jªkªí®æ¡A¬O¥Ñ cin2tab ±N .cin ÀɽsͦӍӡA
¨ä®æ¦¡´N©w¸q¦b xcin-2.5/src/util/cin2tab/gencin.c ¤¤¡A°£¤F¥¿¦V·j´M¥H¥~¡A
ÁÙ¥]§t¤F¤Ï¦V·j´M¡A«üªº¬O¥i¥H¥Ñ¤@­Ó¤¤¤å¦r¤Ï¬d¥¦¦b¬Y¿é¤Jªk¤¤ªº keystroke:                        

.tab ªº®æ¦¡¥]¬A¥H¤U´X­Ó³¡¤À:

name            size (# of bytes)               description
===========================================================================
modID:          MODULE_ID_SIZE                  ID of the readable module  
th:             sizeof(cintab_head_t)           Header of the IM         
icode_idx:      sizeof(icode_idx_t)*th.n_icode  idx for keystroke searching
ichar:          sizeof(ichar)*th.n_icode        idx for char searching     
icode1:         sizeof(icode_t)*th.n_icode      keystroke 1-5
icode2:         sizeof(icode_t)*th.n_icode      keystroke 6-10

¨ä¤¤ sizeof(icode_t) = 4, icode_t ¬O¥Î¨ÓÀx¦s¤¤¤å¦rªº keystroke, ¤@­Ó
icode1 ³Ì¦h¥i¥HÀx¦s¤­­Ó½X¡A³o¬O¤@¯ë¿é¤Jªkªº±¡ªp¡C¦pªG¶W¹L¤­­Ó½Xªº¸Ü¡A
«hÁٻݭn icode2, ¬G gen_inp ¥Ø«e³Ì¦h¯à³B²z¤Q­Ó½Xªº¿é¤Jªk¡C¦pªG¸Ó¿é¤J
ªkªº³Ì¦h½X¼Æ¤£¶W¹L¤­ªº¸Ü¡A .tab ÀÉ´N¤£¥]§t icode2, ¸`¬ÙªÅ¶¡¡C       

icode_idx ¥Î©ó¥¿¬d¡A ichar ¥Î©ó¤Ï¬d¡C¥¿¬dªº¨BÆJ¬°:
(¸Ô¨£ xcin-2.5/src/Cinput/gen_inp/gen_inp.c)     

1. ±N¨Ï¥ÎªÌ¿é¤Jªº keystroke ¦r¦ê½s½X¡A¦¨¬° icode_t ªº®æ¦¡¡C
   (¨Ï¥Î keys2codes ¨ç¦¡)

2. ±q icode1 »P icode2 ªº°}¦C¤¤·j´M¡A§ä¨ì»P¨Ï¥ÎªÌ¿é¤Jªº keystroke 
   icode_t ¬Û²Åªº¡A¶Ç¦^¥¦¦b°}¦C¤¤ªº index: idx ¡C                 

3. icode_idx[idx] ªº­È§Y¬°²Å¦X¦¹ keystroke ªº¤¤¤å¦r½X (ichar_t ®æ¦¡)¡A
   ³o®É¥²¶·¥Î ccode_to_char ¨ç¦¡±N¥¦Âà¦^¸Ó¤¤¤å¦rªº¤º½X (¦p Big5 ½X)

¤Ï¬dªº¨BÆJ¬°:

1. ±N±ý¤Ï¬dªº¤¤¤å¦r¤º½X (¦p Big5 ½X) ½s½X¡A¦¨¬° ichar_t ªº®æ¦¡¡A§Y 
   index i¡C (¨Ï¥Î ccode_to_idx ¨ç¦¡)

2. idx = ichar[i] ªº­È§Y¬° icode1 »P icode2 °}¦Cªº index ¡C

3. ¥Î codes2keys ¨ç¦¡±N icode1[idx] »P icode2[idx] Á٭쬰 keystroke ¡C

¦b³oùاڭ̦P®É±N keystroke »P¤¤¤å¦rªº¤º½X³£½s½XÀx¦s¤F¡A³o¬O¬°¤F
¸`¬Ù°O¾ÐÅ骺¨Ï¥Î¶q (sizeof(icode_idx_t)=2, sizeof(ichar_t)=2, ¤]´N¬O 
»¡ gen_inp ³Ì¦h¯à³B²z 65565 ­Ó¦r©Î keystroke)¡C¦Ó³o¨Ç½s½Xªº¨ç¦¡³£¦b   
xcin-2.5/src/Cinput/im_comm ùØÀY¡C


T.H.Hsieh