Index
 1 LD_PRELOAD的意義 和 XA+CV的原理
 2 DEBUG OUTPUT
 3 指定 libX11.so的位置
 4 輸入模式和顯示模式
 5 適用軟體
 6 +CV
 7 已知 BUG

1  LD_PRELOAD 的意義
	在許多作業系統下(sunos , linux , freebsd ....)
	執行程式會自動動態聯結到環境變數LD_PRELOAD所指向的動態程式庫檔
	XA 的原理就是利用這個方法攔截 libX11.so 的函數功能,只要程式本身
	原本有呼叫libX11.so 的 NextEvent 或 XLookupStrings的話,都會被XA
	攔截,依照一般的程式寫作方式,可以讓被攔截的程式擁有和Xcin溝通的機會.
	進而擁有中文輸入的能力.
	由於XA的原理就是利用攔截函數的方式欺上瞞下,所以有很多情形XA的騙術會
	失靈,就如同DOS時代的中文系統一樣,但一般的情形下是可以的,不過有些英
	文軟體有由沒有考慮到8bit的輸入,所以有時要把locale調對才行,不過這是
	軟體的問題,XA or Xcin 不負責,就如同cwin95下有些軟體中文也有問題.

	另外一個問題是 LD_PRELOAD本身的限制,由於安全上的問題, 當你執行到
	改變身份或權限的程式時,導致uid!=euid,則LD_PRELOAD自動失效,XA當然
	失去作用,可以利用XA的辦法修改libX11.so,就不用LD_PRELOAD了.

	比較難解覺得問題是,如果程式是static linked 的話,那就算修改libX11.so
	也沒用,只好利用"類似"XA的方法修改Xserver .

	在一些作業系統下,沒有LD_*系列的環境變數,但有_RLD_*系列的,
	用法有一點差異,但差不多

	+CV 類似 XA ,只不過他取代的是 顯示的部份(XDraw.....Strings)

2 DEBUG OUTPUT
	 /tmp/wraplog 是 log 所在,可以導向到/dev/stderr 等等地方,
	如果需要較多的除錯訊息,請在make時define P_LOG

3 指定 libX11.so的位置  
	compile是會猜一下你的libX11.so 的位置,大致上會猜對,
	如果你用的是其他地方compile來的binary,或者改變系統的話
	可以用 環境變數 XA_LIBX11 的質,取代原本內定的libX11.so 的路徑, 
	比方XA_LIBX11=/usr/X11/lib/libX11.so

4 輸入模式和顯示模式
	輸入模式有四種 0) Disable   
			使XA的功能失效, 用在使用本來就支援xcin軟體的時候
	      	 1) Tradition
			XA0.3之前的方法,輸入時配合CXwin的畫面比較好
			可用於netscape 4.0?
		 2) Discrete 
			一鍵 1byte,能使用的軟體較多, cmdtool, textedit,
			xcoral 等等.但輸入時配合CXwin顯示比較有問題,這主
			要是CXwin的問題,不是XA的問題,此模式內定
		 4) CopyPaste
			摹擬滑鼠中鍵的剪貼功能, 輸入完的中文字會跑到剪貼簿中,
			並且自動摹擬按下且放開滑鼠中鍵的動做.
			如果XAP本身對滑鼠中鍵的處理不是貼上去的功能的話,要小心
			一旦輸入了一個中文句子, 可以利用剪貼功能重覆輸入
			缺點是,和原來的剪貼功能相互干擾,可能會影響使用習慣			

	要改變輸入模式,只要按下 F12 這個鍵 ,會跑出一個窗子,顯示現在的模式
	然後按下 0 ,1 ,2, 3 選擇模式,窗子就會消失,如果按下的鍵不是 0,1,2,3的話
	輸入模式不改變.

	環境變數 XA_MODE 可以取代原來的內定模式
	可能的質是 0 ,1 , 2, 3  四種(eg export XA_MODE=1
				or  setenv XA_MODE 1 ) 

	顯示模式有三種種  a 打開   b 關閉 c 自動寬度改變
	雖然目前的中文font都是固定寬度的,但英文字型的寬度確會改變,造成對位不正,
	用c 選項可改善這個問題.但一個英文字型可能會相對的開啟多個中文字型.
	     用法與輸入模式類似, ,只要按下 F12 這個鍵 ,再按下 a ,b or c 可改變
	預設值是打開. XA_CVMODE 這個環境變數可以改變預設值
	可接受的值是 a 和 b

5 適用軟體
	  成功者 :(成功不代表中文顯示沒問題)  
		  xedit , xpaint , xterm ,color_xterm ,cxterm,rxvt
  		  netscape (3.x 4.x linux 使用mode 1) , xmftp , chpower ,nedit,
		  xjed ,nedit ,xxgdb ,  xman , xclipboard , xposit+ ,emacs
	     (需要mode 1) netscape 4.x
	     (需要mode 2) textedit , cmdtool ,等openwin程式
             (需要mode 3) xemacs 等,大概許多motif-static link軟體
	     (需要mode 0) crxvt ,ted(中文)等等本來就支援xcin的軟體

	  失敗者: 
		   netscape(freebsd,sunos4 version) 因為 沒有聯結到 libX11.so
		   staroffice: swrite 失敗 (xa 0.3)
	           xcoral: xcoral中的f_ascii中有用到  isprint( infos -> ch ) 
        	          isprint 和 locale有關 (at least linux and freebsd)
			如果設好的話就可以用mode 2沒問題,(中文顯示的不錯)
			要不然有兩個辦法....
	 		1) 改 xcoral的source 把isprint remark掉
			2) 在 XA 中攔截 isprint (這可沒那麼簡單,因為不同環境對
				isprint有不同處理法,有些會把isprint等等的ctype 
				做一個#define)
		   xv:  和xcoral問題應該類似

	大多數的軟體 用預設值 輸入模式 2 , 顯示模式 a(打開) 可正常運做
	但仍有不少軟體需要特定模式
	netscape 最好設成  XA_MODE=1 XA_CVMODE=b
	xemacs 須要   XA_MODE=3
	crxvt 等等本來有支援 xcin的軟體 通常必須 XA_MODE=0
	如果本來就有中文顯示的軟體,最好也  XA_CMODE=b 省得麻煩,
	不過大多數應該沒有太大問題,
	有CXwin 中文Xserver時,也可使用 XA_CVMODE=a 打開,顯示效果通常會比只用
	CXwin 時好,(但速度有可能比較慢)	
	某些XA_MODE=1 可用的軟體, XA_MODE=1 時比 XA_MODE=2 舒服, 但XA_MODE=2
	仍然可用
  
6 +CV
	可用  XA_FACE這個值來指定 字體 ,如 XA_FACE=kai 
				   XA_FACE=ming 
	當然,你相對映的字形要裝好
	顯示模式部份參考前面 "4 輸入模式和顯示模式"
	其他可參考 README.+CV


7 已知 BUG
	目前,已知的bug如下
	xa 的bug
	     按下 F12 時 會擦掉部份螢幕
	              而且, 顯示很差,字形有時太小,有時看不到,待改進
	+cv bug
	有的時候會使得螢幕看起來髒髒的,有時會有問題
	中文斷字無法處理,開啟多個字體讓費空間,考慮使用TTF把字畫上去
