------------------
A. ²:

XCIN (X window Chinese INput) O@ X Window UJk{A
l@̬ Edward Der-Hua LiuAĤ@ 1994 ~QoCg\h
[J}oAӥثeO XCIN pe (http://xcin.linux.org.tw) tdDn
@u@C

XCIN-2.5 O XCIN gpe (Redesigning XCIN Project, 1999-2000) GC
تOƱǥѭs]pANntkPYBҲդƪ{[c@b 
xcin tΤAä޶iBs]pPBz޳NAPɤ]ƱǦץ
ª xcin [HӤץDC

 XCIN vŧiAШ CopyRight P COPYING G媺C

ثe xcin-2.5 wiJζqAS⦳:


1. rcfile Ūt:

   Lh xcin-2.3.X ۷ROCﶵAӥBoǿﶵ@g]wAh
   vTFҦJk欰AoܦhHӻy֪xZC xcin-2.5 
   FܡANjROCﶵF rcfile ABҦJ
   kLճ]wAOCӿJkWߪC]ϥΪ̥iHۤvߦnC
   ӿJkOP]wA_ xcin-2.3.X 󦳼uʡC


2. 䴩 locale P XIM w:

   ثe xcin w쥻 xcin-crxvt wAӱĥμзǪ XIM wAi
   Ӥ]OpCoNۧڭ̵Lkb즳 crxvt ϥΥ xcin J
   rCo򰵪تOƱ氵 X window UJuзǤơvA
   ]NO` X11R6 зǡCӪ X window γnӺ|¦V XIM 
   зǡAoˤ~iHu xcin anywhereC

   ثes rxvt-2.6/2.7 w䴩 XIM w, BॿTaӦ xcin-2.5
   JCG xcin-2.5/rxvt-2.6 զXӱNiHNǲΪ xcin-2.3/
   crxvtC


3. 㪺 I18N ]p:

   xcin-2.5 O@ I18N (InternationalizatioN) {AҦ
   rܥĥ fontsetAӤAϥζǲΪXPŪH ASCII P Big5
   覡CoN۵{ GUI iHPXLAGiAλPUؤXt
   ΤUCӧڭ̱Ni䩳hrBztΡAϨiHAΩhˤ
   XtΡC

   ~Aثe xcin ҦTXwĥ GNU gettext (debug T~)A
   unڭ̬U locale ½ĶnҦTAæb xcin en locale 
   ]wAڭ̴N|@ӡuhyTv xcin FC


4. JkҲհʺAJ:

   xcin-2.5 ҦJkwҲդơAåBiH̻ݭnӰʺAJCثew
   JkҲլ:

   a. zh_hex:  
	XJkҲաCiUؤX (p Big5  GB X) XJAu
	ntҦA locale 䴩Aæһݪ sys.cin (z) YiC

   b. gen_inp:
	@ʿJkҲաCҲեiHBzjJkApPª xcin
	@ˡAunzǳƦnA .cin ɡAøg cin2tab Nഫ .tab
	ɡANઽMΦJkҲաAïFjb xcin-2.3 Wo쪺
	J\C

   c. bimsphone:
	bims `JkҲաCҲձĥοʵSPb|PҶ}o 
	libtabe P bims ҲաAiHuM~v`JkCѤF gen_inp
	+ phone.cin ҹF쪺\Apíw۰ʿrBjqwBUت`
	L .... C

   ~A xcin-2.5 ŧFªSAٴѤFpUJ\:

   d. ΦrJ (shift+space )

   e. shift+alt+? ֳtyJ: oNOǲΪ xcin  shift+alt+i X{y
      A shift+alt+o X{yAӥByeiHϥΪ̨̳ߦnۦ]wC


5. s cin ƪɨt:

   cin (YJk) OP locale P encoding AG xcin-2.5
   N cin ɨ̤P encoding OsCYϥΪ̧Ʊb Big5  GB 
   UϥάYJkAhLuݤOo encoding ǳƦn@ cin ɡAAO
   g cin2tab sĶ tab ɫYiC cin HUTjAiϥ cin2tab
   isĶG

   a. sys.cin:
	oOtΪɡA榡P@몺JkɦܤjPCs
	FP locale TAѵ{B@ѦҥΪC

   b. gen_inp ҲթҨϥΪ .cin:
	oO@몺JkɡAYثe xcin-2.3 ` .cin ɡC
	榡Pثe .cin ɤwPAja̵MiHܮeaNª榡
	令s榡ӪϥΡC .cin 榡Ow gen_inp Ҳզӳ]pC

   c. bimspinyin (bimsphone Ҳ) ҨϥΪ bimscin:
	{b bimsphone F즳`۰ʿrH~AټW[F۰ʿr
	JҦ (bimspinyin), ӦbҦUAݭn@ bimscin 榡
	ɤiB@CɧYwqF`PC
	

6. hx䴩:

   zפWA xcin-2.5 iHb I18N/locale 䴩Aϥ X11R6  UNIX
   tΤWCӥثewզ\pHUx:

   a. GNU/Linux / GCC:  i386, Alpha  (ϥ glibc-2.1.x HWt)

   b. FreeBSD / GCC:  i386  (FreeBSD-4.0 / ϥ ELF t)

   c. NetBSD / GCC:  i386

   d. HP-UX / ANSI-C compiler:  PA-RISC 32-bits

   ܩ Solaris H OpenBSD Ӥbi椤AݭnjahhջP^C


------------------
B. oi²v:
   
1. 1994/10/25, Edward Der-Hua Liu b   tw.bbs.comp.linux oFĤ@ 
   xcinCɪMW٬O big5-pack.tgz, t xcin P crxvtC xcin u
   Jk{ӤwAJkPrε{ۭʤѤt
   ഫLӨϥΡC

2. 1997/03, XCIN @u@ªF (Tung-Han Hsieh <thhsieh@linux.org.tw>)
   CɥDnHק MakefileAɥi xcin Wߪ UNIX MA
   ӤnLʿʤѤtάؼСC

3. 1997/03/10, w <vvvv.bbs@bbs.cis.nctu.edu.tw> oFĤ@ӹ xcin
   F (http://www.liu.com.tw) ץ patch: ``xcinbosh.tgz'', q
   _LޤJFKJ\AOHF̿JkDC

4. VӶVhH xcin [J^mAϱo source code VoáAH@C
   Gڭ̨Mwsg xcin, Ʊ@|ѨMҦDC¨tC xcin h
   F 1999/04 xcin-2.3.04-3 oA@C

5. s@N xcin b 1998 ~B1999 ~쥿i}AɥDn}o]A:
   a. Ũ}: xcin Ҳլ[cl]pC

   b, üy: ޤJ XIM server ]p (IMdkit)B Xi18n P locale {]p
              B xcin rcfile Ūt siod libC 

   c. : Locale/I18N/XIM/rcfile ŪtΫĳPQסC 

   d. ʵ: ޤJ libtabeA xcin ֦`۰ʿrJO (bimsphone)C

   e. Steve Underwood: IMdkit lib DץB xcin JkҲլ[cAiC

   f. G쩾: Uإߧ I18N/zh_TW.Big5 locale ҡA  xcin ջP
              }oxC

   g. ªF: XCIN tξWeP{XsgC

    xcin }oG쥻O  ê@@ ( Linux p)A
    1998/06 ~줤s|p (http://www.sinica.edu.tw),
   ѰKAΨPU@C

6. 1999/06/21 o xcin-2.5.0: xcin 򥻼Ҳլ[cA XIM serverA zh_hex, 
   gen_inp, bimsphone ҲաC 

7. 1999/08/24 o xcin-2.5.1C

8. 2000/10/15 o xcin-2.5.2C


------------------
C. i (Ԩ Changes @媺):

(: xcin-2.5.3-pre1, ݷft libtabe-0.2.2 HW)

1. bimsphone Ҳէi:
   a. ثe bimsphone Ҳդ䴩TؿJҦ:

      bimsphone Ҧ:  YǲΪ`۰ʿrҦC
      bimssimple Ҧ: D۰ʿr`JAΥH gen_inp ҲյLkѪ
		       S`JߺDC
      bimspinyin Ҧ: ۰ʿrҦC

   b. b xcinrc  bimsphone ]wAB~W[FpUﶵ:

      AUTO_SELECTION:  ϥΪ`۰/D۰ʿrҦC
      NSELKEY:         ]w䪺ӼơC
      SPACE_SELECTION: }ҥi space ӿܲĤ@ӭƦrC
      AUTO_UPCHAR:     b`D۰ʿrҦA}Ҧ۰ʤWr\C

      Pɤ]䴩 bimsphone_default ]wC

   c. wզrs xcin rAHuӼХܦUO㪺C

   d. b@ӵeAWiiJCAUiiJrCCYL
      iAhW䪽iJrCC

   e. W[ʤ 26 䴩C

2. gen_inp Ҳէi:
   b xcinrc  gen_inp ]wA[J DISABLE_SEL_LIST P KEYSTROKE_REMAP
   س]wAHW[C 30 Jk䴩CPɤ]䴩 gen_inp_default 
   ]wC

3. zh_hex Ҳէi:
   b xcinrc  zh_hex ]wA[J INP_CNAME_<encoding name> ]wA
   ϨiHPɬh encoding ]w INP_CNAMEC

4. ֳt (qphrase) XR:
   b default.phr iHNֳtHU 4 Ӥp`:
   a. %trigger: ]wU trigger+X XA䤤 trigger w]O ctrl+altC
   b. %shift:   ]wU shift+X XC
   c. %ctrl:    ]wU ctrl+X XC
   d. %alt:     ]wU alt+X XC

   Pɦb xcinrc ҦҲճsW MOD_PHR ﶵAΥH]wϥΤWz|
   qphrase ҦC

5. cin2tab P .cin ɪi:
   a. cin2tab sW bimscin sĶҦAΥHsĶ bimsphone  bimspinyin 
      JҦһݪɡAPɷsW bims_pinyin.cin ƭlɡC

   b. NlXҦ .cin 沾 encoding ؿUsA䤤 big5/big5hkscs
      @ .cin ɡAb big5 ؿUF gb2312/gbk @ .cin ɡAb gb
      ؿUCӽsĶL᪺ .tab ɫh̤PXOsCPɤ][JFX
      s .cin C

   c. cin2tab [J -l <encoding/LC_CTYPE> H -hB -o ROCﶵC

   d. cin2tab gencin: iHb %chardef P %keyname p`ϥΤQiXN
      @몺rCPɡApG %chardef p`WXXwqd򪺦r
      ɡA cin2tab |AӤ|LX~TC

6. xcinrc :
   a. sW DISABLE_WM_CTRLBKEEP_POSITION_ONBH DIFF_BEEP ﶵC

   b. ҦJk]wiHĥ "<IM name>@<encoding>" ]w榡Api
      bP@ xcinrc ɤΦP@ӿJkWh encoding ]wC

7. JkҲ API :
   a. inpinfo_t: sW lcch_grouping P mcch_grouping C
		 sW suggest_skeystroke C
		 sW zh_ascii C
		 sW gui_request C

   b. module_t:  sW terminate() 禡CJkҲյB@ɨϥΡC

   c. sWJkҲRAssĶҦC

8. GUI tΧi:
   a. winlist_t ]pAϱo xcin ƶ}ҦhOC

   b. sW OverTheSpot OAH gui_request, menusel OC

   c. sW gui_main2 AiH xcinrc  START_MAINWIN2 P MAINWIN2_GEOMETRY
      C

9. XIM tΧi:
   a. sW OverTheSpot input style, Pɭקu{ testprog Ϩ䴩
      OverTheSpotCb xcinrc ]W[F INPUT_STYLE, OVERSPOT_DRAW_AREA3,
      OVERSPOT_DRAW_LCCH, P OVERSPOT_USE_CLICOLOR ﶵC

   b. get_ic_value(): sW XNPreeditState BzC

   c. ק IMdkit, sW IMSyncXlib()A XIM server iHDʵoe XIM_SYNC
      T XIM client, õ client  XIM_SYNC_REPLY TC

   d. ϥ IMdkit ioe XIM_SYNC T\Ab xcin eNثesu
       XIM client TPBơCPɶ xcin L{קpUG

      1. Call xim_close(), turn on XCIN_RUN_EXIT flag, and check if currently
         there is an IC on focus:

         if yes: Send XIM Sync signal to the client, and waits for the reply.
         if no:  turn on XCIN_RUN_EXITALL flag.

      2. If XCIN_RUN_EXIT on, turn off any XIM action (do nothing but only
         return True), but loop continuous, untill the reply for the Sync
         signal from the client to xim_sync_reply_handler(). Then call
         IMCloseIM() and turn on XCIN_RUN_EXITALL flag.

      3. If XCIN_RUN_EXITALL on, stop the loop and terminate the XIM engine
         and all the IM modules. Then exits.

      P xcin ]dIF SIGTERM, SIGQUIT, SIGINT T signal, HF짹
      {BzC

10. sW IMC t:
    a. NҦJkƵc IC cAJ IM_Context_t cC
       pA IC utdӦ XIM client  XIC ơAӿJkBzB@h
       IMC ӭtdC

    b. b xcinrc sW SINGLE_IM_CONTEXT ﶵC

11. sW HP-UX P ANSI C compiler tΪӡC

12. \h bug ץPsC


------------------
D. M󤺮e:

1. xcin (w˩ $(prefix)/bin/):
   oO xcin JkD{C

2. cin2tab (w˩ $(prefix)/bin/):
   oOJk .cin ==> .tab ഫ{C

3. xcinrc (w˩ $(prefix)/etc/):
   oO xcin tΪγ]wɡC

4. IM modules (w˩ $(XCIN_DIR)/, w]O $(prefix)/lib/xcin/):
   oOJkҲաAݭnɤ~|ʺAJ xcin ϥΡAثew:
   zh_hex.so, gen_inp.so, bimsphone.so

   ps. b HP-UX xAѩ|䴩ҲհʺAJAGڤWoǿJ
       kҲլOP xcin D{RAsb@_AGbؿSoɮסC

5. tab  (w˩ $(XCIN_DIR)/tab/$(ENCODING)/):
   ojO gen_inp JkɻPɡA̤P encoding OsC
   ثeҥ]tp:

   $(BIG5)/:
	a. sys.tab:		big5 XTɡC
	b. array30.tab:		C 30 JkC
        c. cj.tab:		ܾeJkC
	d. phone.tab:		`JkC
        e. pinyin.tab:		JkC
        f. pinyin0.tab:		Jk (S)C
        g. simplex.tab:		²JkC
	h. bims_pinyin.tab:	bimspinyin `BӪC
	i. jyutping.tab:	fyJkC
	j. jyutping0.tab:	fyJk (S)C
	k. telecode.tab:	qXJkC
	l. default.phr:		qphrase ɡC

   $(BIG5HKSCS)/:
	a. sys.tab:		big5hkscs XTɡC
	b. cj.tab:		ܾeJkC
	c. default.phr:		qphrase ɡC

   $(GB2312)/:
	a. sys.tab:		gb2312 XTɡC
	b. jtcj_gb.tab:		ܾeJkC
	c. pinyin.tab:		JkC
	d. phonegb2.tab:	`JkC
	e. shuangpin.tab:	JkC
	f. wubizixing.tab:	JkC
	g. default.phr:		qphrase ɡC

   $(GBK)/:
	a. sys.tab:		gbk XTɡC
	b. default.phr:		qphrase ɡC

   Ъ`N: oǤXWHۧ@~tΤPӤPApUҦC:

   GNU/Linux:	$(BIG5):	big5
		$(BIG5HKSCS):	big5hkscs
		$(GB2312):	gb2312
		$(GBK):		gbk

   FreeBSD:	$(BIG5):	big5
		$(GB2312):	euc

   NetBSD:	$(BIG5):	big5
		$(GB2312):	euccn

   HP-UX:	$(BIG5):	big5
		$(BIG5HKSCS):	hkbig5
		$(GB2312):	hp15cn


6. testprog (b xcin-2.5/src/util/testprog/):
   oO@ӫ²檺 Xi18n յ{AP xcin B@LAuOΨӴլݱz
   tάO_wǳƦn i18n ҡAPɤ]iHzե xcin bWJC
   make install ɨä|Nw˨ztΤaC

7. ѦҤ (b xcin-2.5/doc/)C


------------------
E. w˻P:

ѩ xcin-2.5 Pª xcin ۷jPAGznwˡBϥ xcin-2.5 eA
Ъ`NJӾ\ŪHU:

1. SETUP:  xcin-2.5 w˨BEC

2. UserGuide:  xcin-2.5 PU XIM client ϥΧֳtޡC

3. Usage P modules/*:  xcin-2.5 PҪJkҲժϥΤ覡C

4. FAQ:  `DPѵC

5. Bugs:  xcin-2.5 ثe|ѨMDC

6. Todo:  ӪoiVC

YzQnۦǳ .cin JkAηQNª .cin ন xcin-2.5  .cin
ɡAаѦ:

7. Cin:  .cin ɮ榡H cin2tab ϥΤkC

 xcin-2.5 vŧiAШ:

8. CopyRight:  xcin vŧiC

9. COPYING:  GNU General Public License (t^쪩Τ Big5 ½Ķ)

Yz xcin {@HμҲռg@AiHѦ

10. internal/*:  xcin {]pPҲլ[cC

Yzݭn^½ĶAШ:

11. En/*:  xcin ^½Ķ ()C


YzLDPĳAwPڭ̳sC


ªF (Tung-Han Hsieh)  <thhsieh@linux.org.tw>
Physics Department of National Taiwan University, R.O.C.
XCIN Team.  <mailing-list:  xcin@linux.org.tw>
	    <www:	    http://xcin.linux.org.tw>
	    <ftp:	    ftp://xcin.linux.org.tw/pub/xcin>
