[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:17122] Re: ATOK X3対応iiimecfについて



鍋太郎です。

On Thu, 13 Dec 2007 01:02:37 +0900
nabetaro@xxxxxxxxxx wrote:

> On Thu, 13 Dec 2007 00:03:36 +0900
> "Taku YASUI" <tach@debian.or.jp> wrote:
> 
> > iiimf-client-el では動かないでしょうか。
> > http://packages.debian.org/iiimf-client-el
> 
> 改めてインストールしてみたのですが、動作しませんでした。
> http://www.meadowy.org/~kawabata/iiimecf/
> によると、12月に入ってからATOKX3対応のiiimecfをリリースしていますので、
> im-sdkの12.3.91では対応できないかと思われます。
> #パッチ作ればいいのかなぁ。

というわけで、パッチを作ってみました。
im-sdkのソースパッケージを取得して、
添付したパッチをdebian/patches以下に置いて再構築すると、
ATOK X3に対応したiiimf-client-elが作成されるところまで確認しています。
#emcs21, emacs22ともにOKでした。

ただパッチをBTSに投げる前に、
どなたかATOK for Linuxで試していただけないでしょうか?

よろしくお願いします。

-- 
+--------------------------------------------------------+
 倉澤 望(鍋太郎) 
 KURASAWA Nozomu (nabetaro)  <nabetaro @ caldron.jp>
 GnuPG FingerPrint:
    C4E5 7063 FD75 02EB E71D  559B ECF6 B9D2 8147 ADFB
+--------------------------------------------------------+
Index: iiimf-12.3.91-svn2814/iiimecf/README.ja
===================================================================
--- iiimf-12.3.91-svn2814/iiimecf/README.ja	(revision 2814)
+++ iiimf-12.3.91-svn2814/iiimecf/README.ja	(revision 3432)
@@ -2,6 +2,8 @@
 IIIMECF (Internet/Intranet Input Method Emacs Client Framework)
         Brief manual.
 
+	Modified by KAWABATA Taichi (kawabata@xxxxxxxx)
+	on 2007/12/5.
 	Modified by Hiroshi Miura (miura@xxxxxxxxxx)
 	on 2005/1/15.
         Written by MIYASHITA Hisashi (himi@xxxxxxxx)
@@ -10,188 +12,193 @@
 
 o ... License
 
-  IIIMECF́At[\tgEFAłBGNU General Public License
-Version 2A͂Ȃ]ނȂAȍ~version̒߂
-KɊÂAĔzzA͕ύX܂B
+  IIIMECFは、フリーソフトウェアです。GNU General Public License
+Version 2か、もしくはあなたが望むなら、それ以降のversionの定める
+規則に基づき、再配布、もしくは変更が許されます。
 
-  IIIMECFɂ́AGNU General Public LicenseLqĂCOPYING
-t@CĂ͂łAA󂯎ĂȂꍇ́A
+  IIIMECFには、GNU General Public Licenseが記述されているCOPYING
+ファイルが同梱されているはずですが、もし、受け取っていない場合は、
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.
-ɘAĂB
+宛に連絡を取ってください。
 
-o ... IIIMECFĂȂ?
+o ... IIIMECFってなあに?
 
-  IIIMECF́ASun MicrosystemsЂ̒߂IIIM ProtocolɊÂAEmacs
-IIIMΉapplication\z邽߂libraryƁApAServer side
-䂳VvInput Method libraryɂč\Ă܂B(
-input-methodAiiimcf-scƈȍ~͋Lq܂B)
+  IIIMECFは、Sun Microsystems社の定めるIIIM Protocolに基づき、Emacs上で
+IIIM対応のapplicationを構築するためのlibraryと、それを用いた、Server sideで
+制御されるシンプルなInput Method libraryによって構成されています。(この
+input-methodを、iiimcf-scと以降は記述します。)
 
-  IIIMECF́AAEmacs 20.6ȍ~ÁAMeadow 1.10ȍ~œ삵
-BEmacs 23ȑOEmacsł́AMule-UCSK{łBMule-UCS version
-0.82ȍ~Ƒgݍ킹ėp邱Ƃ𐄏܂B
+  IIIMECFは、現状、Emacs 20.6以降、もしくは、Meadow 1.10以降で動作しま
+す。Emacs 23より以前のEmacsでは、Mule-UCSが必須です。Mule-UCS version
+0.82以降と組み合わせて用いることを推奨します。
 
-  ȂAiiimcf-sćAATOK X for Linux, y Solaris 8ATOK/IIIMF
-ɓ삷邱ƂAmFĂ܂B
+  なお、iiimcf-scは、ATOK X for Linux, 及び Solaris 8上のATOK/IIIMFと
+共に動作することが、確認されています。
 
-  Mule-UCŚA݁Aftp://ftp.m17n.org/pub/mule/Mule-UCS擾”\
-B܂AIIIMECF́Ahttp://www.openi18n.org/ꎟzzƂĂ܂B
+  Mule-UCSは、現在、ftp://ftp.m17n.org/pub/mule/Mule-UCSから取得可能で
+す。また、IIIMECFは、http://www.openi18n.org/を一次配布元としています。
 
-  XEmacsւ̑ΉA݌łB
+  XEmacsへの対応も、現在検討中です。
 
-o ... Install@
+o ... Install方法
 
-  iiimcf-comp.elpāAbyte-compilesĂB
-  ȉcommandɂAbyte-compileo܂B
+  iiimcf-comp.elを用いて、byte-compileを行ってください。
+  以下のcommandにより、byte-compile出来ます。
 --
   emacs -q --no-site-file -batch -l iiimcf-comp.el
 --
-  Meadowł́AȉQlɂĂB
+  Meadowでは、以下を参考にしてください。
 --
   Meadow95(NT) -q --no-site-file -batch -l iiimcf-comp.el
 --
 
-  ̌Alisp fBNgɂAׂẴt@Cload-path̒ʂ
-fBNgɃRs[ĂB
+  その後、lisp ディレクトリにある、すべてのファイルをload-pathの通った
+ディレクトリにコピーしてください。
 
-  ȏŁA{Iinstall͊łBݒɊւẮAuiiimcf-sc̐ݒv
-ZNVQƂĂB
+  以上で、基本的にinstallは完了です。設定に関しては、「iiimcf-scの設定」の
+セクションを参照してください。
 
-o ... Module\
+o ... Module構成
 
-  ŁAIIIMECF́AȉModuleɂč\܂B
+  現状で、IIIMECFは、以下のModuleによって構成されます。
 
   (1) ... iiimp.el
 
-	IIIM  protocol library łBIIIMP/o{Iȋ@\
-        񋟂܂B
+	IIIM の protocol library です。IIIMPを解釈/送出する基本的な機能を
+        提供します。
 
   (2) ... iiimcf.el
 
-	IIIM Client\ŁA{Iȋ@\AႦ΁AeventzA
-        messageEmacsׂ̈translateAclient𐶐肷
-	@\‚ǂ܂B	
+	IIIM Clientを構成する上で、基本的な機能、例えば、eventを配送したり、
+        messageをEmacsの為にtranslateしたり、client情報を生成したりする
+	機能をつかさどります。	
 
   (3) ... iiimcf-sc.el
 
-	IIIM 𗘗pAVvinput method񋟂libraryłB
-	{IɁAϊɊւAقƂǂׂĂ̑́AserverɑA
-	server琧󂯂邱Ƃɂē삵܂B
+	IIIM を利用した、シンプルなinput methodを提供するlibraryです。
+	基本的に、変換に関わる、ほとんどすべての操作は、serverに送られ、
+	serverから制御を受けることによって動作します。
 
   (4) ... iiimcf-UI.el
 
-	IIIM input method ̃[UC^tF[X‚ǂ܂B
+	IIIM input method のユーザインタフェースをつかさどります。
 
 
-o ... iiimcf-sc̐ݒ
+o ... iiimcf-scの設定
 
-  ŒAmF͐ݒ肵ȂĂ͂ȂȂϐ͈ȉ̂ƂłB
+  最低限、確認もしくは設定しなくてはならない変数は以下のとおりです。
 
-  iiimcf-server-control-hostlist  defaultŁA'("unix:/var/run/iiim/.iiimp-unix/9010")
+  * iiimcf-server-control-hostlist … default: "/tmp/.iiim-(user-login-name)/:1.0"
 
-    IIIM serverw肵܂B`́A"<PROTO>:<SERVER>:<PORT>"̂悤
-  Ɏw肵ÃT[o[w肷邱Ƃo܂B(ł́Aŏ
-  w肵T[o[ɂڑ݂ȂAIɂ͎Iɐ؂ւ
-  \)
+    IIIM serverを指定します。形式は、"tcp:<SERVER>:<PORT>" (TCPによる
+  通信)または "unix:/socket-path" (IPCによる通信)のように指定し、複
+  数のサーバーを指定することが出来ます。(現状では、最初に指定したサーバー
+  にしか接続を試みないが、将来的には自動的に切り替える予定)
 
-  :  (setq iiimcf-server-control-hostlist
-             '("localhost" "tcp:iiim:9010" "iiim.foo.com:9000"
-               "unix:/var/run/iiim/.iiimp-unix/9010"))
+  例:  (setq iiimcf-server-control-hostlist
+             '("/var/run/iiim/.iiimp-unix/9010"
+               "iiim:9010" "iiim.foo.com:9000"))
 
-   ȂAtcp<PORT>ȗꍇAiiimcf-server-control-default-port
-  gp܂B̕ϐ̒ldefault́A9010łB܂A<PROTO>
-  ꍇAiiimcf-server-control-default-protocolgp܂B
-  ̕ϐ̒ldefault́AtcpłB
+  なお、"unix:"や"tcp:"と、<PORT>は省略可能です。TCP通信で<PORT>を省略
+  した場合、iiimcf-server-control-default-portが使用されます。この変数
+  の値のdefaultは、9010です。
 
-  ("unix:/var/run/iiim/.iiimp-unix/9010")w肵ꍇ́Aunix domain
-  socket oRł̐ڑ݂܂B
+  ("unix:/socket_name")を指定した場合は、unix domain socket 経由での接
+  続を試みます。IIIMF R11の場合は "/var/run/iiim/.iiimp-unix/9010"
+  を、IIIMF R12の場合は、"/tmp/.iiim-(user-login-name)/:1.0" を
+  設定してください。
 
-  iiimcf-server-control-username default́A(user-login-name)@(system-name)
+  * iiimcf-server-control-username … default: (user-login-name)@(system-name)
 
-    IIIM serverɑousernamełBʏ͐ݒ肷Kv͂܂񂪁A
-  [U[Ã}V𖾎IɎw肵ꍇ́Aݒ肵ĂB
-  ȂAhtt_serverɂ̓oÔŁA@ȍ~̕ȗƁAs
-  邨ꂪ܂B
+    IIIM serverに送出するusernameです。通常は設定する必要はありませんが、
+  ユーザー名や、自分のマシン名を明示的に指定したい場合は、設定してください。
+  なお、初期のhtt_serverにはバグがあるので、@以降の部分を省略すると、不具合が
+  発生するおそれがあります。
 
-  :  (setq iiimcf-server-control-username "himi@xxxxxxxxxxxx")
+  例:  (setq iiimcf-server-control-username "himi@xxxxxxxxxxxx")
 	
-  iiimcf-server-control-default-language deafult́Anil
+  * iiimcf-server-control-default-language … deafult: nil
 
-    defaultŎgp錾łBnil̏ꍇAserver瑗Ă
-  Ԗڂ̌gp܂BȂAiiimcf-scN C-cC-\C-l
-  ォ؂ւ邱Ƃ”\łB
+    defaultで使用する言語です。nilの場合、serverから送られてきた
+  一番目の候補を使用します。なお、iiimcf-scを起動後 C-cC-\C-lで
+  後から切り替えることも可能です。
 
-  :  (setq iiimcf-server-control-default-language "ja")
+  例:  (setq iiimcf-server-control-default-language "ja")
 
+  * iiimcf-server-control-default-input-method … default: nil
 
- !!!!!!!!!!:̋@\͌sł͖ɂĂ܂B
-  iiimcf-server-control-default-input-method default́Anil
+    defaultで、選択するserver側のinput methodを指定します。
+  nilであると、serverに対して、特定のinput methodを要求しません。
+  この場合、server側に、input methodの選択を委任することになります。
+  なお、iiimcf-scを起動後、C-cC-\C-iで、後から切り替えることも可能です。
 
-    defaultŁAIserverinput methodw肵܂B
-  nilłƁAserverɑ΂āAinput methodv܂B
-  ̏ꍇAserverɁAinput method̑IϔC邱ƂɂȂ܂B
-  ȂAiiimcf-scNAC-cC-\C-iŁAォ؂ւ邱Ƃ”\łB
- !!!!!!!!!!ӏIB
+  例:  (setq iiimcf-server-control-default-input-method "atokx3")
 
-  ɂAiiimcf-UI-preedit-open-string
-  iiimcf-UI-preedit-close-string
-  iiimcf-UI-preedit-face-alist
-  iiimcf-UI-preedit-use-face-p
-  Ȃǂ̕ϐݒł܂AɊւẮAdocumentation string
-  QƂĂB
 
-  (ȂAݒɊւϐނ́Aׂcustom package𗘗pĂA
-  M-x customize-group iiimcf-server-control
-  s邱ƂɂAݒ肪”\łB)
+  他にも、
+    iiimcf-UI-preedit-open-string
+    iiimcf-UI-preedit-close-string
+    iiimcf-UI-preedit-face-alist
+    iiimcf-UI-preedit-use-face-p
+  などの変数が設定できますが、これらに関しては、documentation stringを
+  参照してください。
 
-  RAݒ̍Ōiiimcf-scloadȂĂ͂܂B
-  (require 'iiimcf-sc)ljĂB
-  load́Aiiim-server-controlƂinput method𗘗pł܂B
-  defaultŗpꍇ́A
+  (なお、設定に関わる変数類は、すべてcustom packageを利用しており、M-x
+  customize-group iiimcf-server-controlを実行することにより、設定が可能
+  です。)
+  
+  当然、設定の最後にiiimcf-scをloadしなくてはいけません。
+  (require 'iiimcf-sc)を追加してください。
+  load後は、iiim-server-controlというinput methodを利用できます。
+  defaultで用いたい場合は、
   (setq default-input-method 'iiim-server-control)
-  AĂB
+  を、加えてください。
 
-  :
+  .emacs 設定例
 --
-  (setq iiimcf-server-control-hostlist
-        '("localhost" "iiim:9010" "iiim.foo.com:9000" ))
-  (setq iiimcf-server-control-default-language "ja")
-  (setq default-input-method 'iiim-server-control)
-  (require 'iiimcf-sc)
+  (setq iiimcf-server-control-hostlist (list (concat "/tmp/.iiim-" (user-login-name) "/:1.0")))
+  (when (and (= 0 (shell-command
+                    (concat
+                      "netstat --unix -l | grep -q " (car iiimcf-server-control-hostlist))))
+             (require 'iiimcf-sc nil t))
+    (setq iiimcf-server-control-default-language "ja")
+    (setq iiimcf-server-control-default-input-method "atokx3")
+    (setq default-input-method 'iiim-server-control))
 --
 
-o ... Language Engine уL[{[h̐؂ւɂ‚
+o ... Language Engine およびキーボードの切り替えについて
 
-  IIIMECFł́ALanguage Engine (LE)؂ւ邱Ƃł IIIM
-  server ɑ΂ẮAM-x iiimcf-server-control-switch-le (C-c C-\ C-s)
-   LE ؂ւ邱Ƃł܂B̏ꍇALEXg̈ꗗ̃XN[
-  ɂ́AgPage UphсgPage DownhL[gB
+  IIIMECFでは、複数のLanguage Engine (LE)を切り替えることができる IIIM
+  server に対しては、M-x iiimcf-server-control-switch-le (C-c C-\ C-s)
+  で LE を切り替えることができます。その場合、LEリストの一覧のスクロー
+  ルには、“Page Up”および“Page Down”キーをお使いください。
 
-  ܂AASCIIJISȊÓAƂ΁uȁvL[zgꍇɂ́A
-  M-x iiimcf-server-control-switch-keyboard (C-c C-\ C-k) Ő؂ւ
-  Ƃł܂BŃL[zύXꍇ́A
-  iiimcf-kana-keycode-spec-alist ȂǂQlɂĂB
+  また、ASCIIやJIS以外の、たとえば「かな」キー配列を使いたい場合には、
+  M-x iiimcf-server-control-switch-keyboard (C-c C-\ C-k) で切り替える
+  ことができます。自分でキー配列を変更したい場合は、
+  iiimcf-kana-keycode-spec-alist などを参考にしてください。
 
-o ... Unix Domain SocketɂʐMɂ‚
+o ... Unix Domain Socketによる通信について
 
-  version 22 ȑOEmacs ́AUnix Domain Socket (local IPC) gp
-  ʐM͂ł܂BIIIMECFɂ́ApCvUnix Domain Socketϊ
-  udclient.c Ă܂Bversion 22 ȑOEmacs Unix Domain
-  SocketgIIIM server ƒʐMꍇ́Audclient.cRpC
-  ĎspX̒ʂĂꏊɃCXg[ĂB
-  imake-network-process ֐UnixpEmacsł͕svłBj
+  version 22 以前のEmacs は、Unix Domain Socket (local IPC) を使用した
+  通信はできません。IIIMECFには、パイプとUnix Domain Socketを変換する
+  udclient.c が同梱されています。version 22 以前のEmacsで Unix Domain
+  Socketを使ってIIIM server と通信する場合は、udclient.cをコンパイルし
+  て実行パスの通っている場所にインストールしてください。
+  (make-network-process 関数を持つUnix用のEmacsでは不要です。)
 
 o ... Mailing List.
 
-  IIIMECF ML̃AhX́A̒ʂłB
-    openi18n-iiimecf@xxxxxxxxxxxx    (p)
-    openi18n-iiimecf.ja@xxxxxxxxxxxx ({)
-  MLɎQɂ́A[{ "subscribe Ȃ̖O"
-  āA
-    openi18n-iiimecf-ctl@xxxxxxxxxxxx    (p)
-    openi18n-iiimecf.ja-ctl@xxxxxxxxxxxx ({)
-  ɑĂB
-  ڂē𓾂ɂ́A
-    openi18n-iiimecf-ctl@xxxxxxxxxxxx    (p)
-    openi18n-iiimecf.ja-ctl@xxxxxxxxxxxx ({)
-  ɖ{̃[𑗂ĂB
+  IIIMECF MLのアドレスは、次の通りです。
+    openi18n-iiimecf@xxxxxxxxxxxx    (英語)
+    openi18n-iiimecf.ja@xxxxxxxxxxxx (日本語)
+  MLに参加するには、メール本文に "subscribe あなたの名前"と
+  書いて、
+    openi18n-iiimecf-ctl@xxxxxxxxxxxx    (英語)
+    openi18n-iiimecf.ja-ctl@xxxxxxxxxxxx (日本語)
+  に送ってください。
+  詳しい案内を得るには、
+    openi18n-iiimecf-ctl@xxxxxxxxxxxx    (英語)
+    openi18n-iiimecf.ja-ctl@xxxxxxxxxxxx (日本語)
+  に本文が空のメールを送ってください。
Index: iiimf-12.3.91-svn2814/iiimecf/ChangeLog
===================================================================
--- iiimf-12.3.91-svn2814/iiimecf/ChangeLog	(revision 2814)
+++ iiimf-12.3.91-svn2814/iiimecf/ChangeLog	(revision 3432)
@@ -1,3 +1,12 @@
+2007-12-07  KAWABATA, Taichi  <kawabata@xxxxxxxx>
+
+	* README.ja: updated for IIIMF R12.
+	* IIIMECF 0.72 Release
+
+2007-04-01  KAWABATA, Taichi  <kawabata@xxxxxxxx>
+
+	* IIIMECF 0.7 Release
+
 2005-06-04  KAWABATA, Taichi  <kawabata@xxxxxxxx>
 
 	* README.ja: Updated for new features.
@@ -15,7 +24,7 @@
 2005-01-15  Hiroshi Miura <miura@xxxxxxxxxx>
 
 	* iiimp.el: Support unix domain socket.
-	* util/udclient.c, util/udclient.h, util/Makefile: helper program 
+	* util/udclient.c, util/udclient.h, util/Makefile: helper program
 	to communicate with unix domain socket.
 	* README, README.ja: add description about unix domain socket.
 
@@ -76,5 +85,4 @@
 	* README.ja: New file.
 
 	* README: New file.
-	
 
Index: iiimf-12.3.91-svn2814/iiimecf/lisp/iiimcf.el
===================================================================
--- iiimf-12.3.91-svn2814/iiimecf/lisp/iiimcf.el	(revision 2814)
+++ iiimf-12.3.91-svn2814/iiimecf/lisp/iiimcf.el	(revision 3432)
@@ -39,7 +39,7 @@
 
 ;;; version.
 
-(defconst iiimcf-version "0.6 (Amida)")
+(defconst iiimcf-version "0.7 (Omine)")
 
 ;;; error handling.
 
@@ -1260,9 +1260,9 @@
 		(list 'iiimp-im-connect-reply com-id))))
     (setq im-id (iiimp-message-im-id mes))
     (iiimcf-register-im-id im-id)
-    (if client-descriptor
-	(iiimcf-send-client-descriptor
-	 com-id im-id client-descriptor))
+;    (if client-descriptor
+;	(iiimcf-send-client-descriptor
+;	 com-id im-id client-descriptor))
     im-id))
 
 (defun iiimcf-disconnect-im (im-id)
Index: iiimf-12.3.91-svn2814/iiimecf/lisp/iiimcf-sc.el
===================================================================
--- iiimf-12.3.91-svn2814/iiimecf/lisp/iiimcf-sc.el	(revision 2814)
+++ iiimf-12.3.91-svn2814/iiimecf/lisp/iiimcf-sc.el	(revision 3432)
@@ -33,7 +33,7 @@
 
 ;;; version.
 
-(defconst iiimcf-server-control-version "0.6 (Adumi)")
+(defconst iiimcf-server-control-version "0.7 (Edo)")
 
 ;;; Customizable options.
 
@@ -48,20 +48,18 @@
   :tag "Default port for IIIMCF Server Control"
   :group 'iiimcf-server-control :type 'integer)
 
-(defcustom iiimcf-server-control-default-proto "tcp"
-  "*Default protocol socket domain for IIIM server."
-  :tag "Default protocol socket domain for IIIMCF Server Control"
-  :group 'iiimcf-server-control :type 'string)
+;;(defcustom iiimcf-server-control-default-proto "tcp"
+;;  "*Default protocol socket domain for IIIM server."
+;;  :tag "Default protocol socket domain for IIIMCF Server Control"
+;;  :group 'iiimcf-server-control :type 'string)
 
-(defcustom iiimcf-server-control-hostlist '("unix:/var/run/iiim/.iiimp-unix/9010")
+(defcustom iiimcf-server-control-hostlist (list (concat "/tmp/.iiim-" (user-login-name) "/:1.0"))
   "*A list of IIIM Server hosts.
 Currently, only the first server in the list will be used.  It
 should be the form of `(proto:)server(:port)', where PROTO should
 be either `tcp' or `unix'.  If `unix' is specified as PROTO, then
 the SERVER specifies socket path and the PORT specification will
-be ignored.  If PROTO is not specified, the value of
-`iiimcf-server-control-default-proto' will be used instead, and
-if PORT is not specified, the value of
+be ignored.  If PORT is not specified, the value of
 `iiimcf-server-control-default-port' will be used instead.
 
 Example: * unix:/var/run/iiim/.iiimp-unix/9010
@@ -225,18 +223,19 @@
 
 (defun iiimcf-server-control-parse-hostname (hostname)
   (let (proto host port)
-    (if (string-match "^\\(tcp:\\|unix:\\)?\\([a-zA-Z0-9\./-]+\\)\\(:[0-9]+\\)?$"
-		      hostname)
-	(progn
-	  (setq proto (match-string 1 hostname)
-		proto (if proto (substring proto 0 -1)
-			iiimcf-server-control-default-proto)
-		host  (match-string 2 hostname)
-		port  (match-string 3 hostname)
-		port  (if (null port) 
-			  (if (string= proto "tcp") iiimcf-server-control-default-port)
-			(string-to-number (substring port 1))))
-	  (list proto host port))
+    (if (string-match 
+         (concat "^\\(?:\\(tcp:\\)?\\([a-zA-Z0-9\.-]+\\)\\(:[0-9]+\\)\\)\\|"
+                 "\\(?:\\(unix:\\)?\\([a-zA-Z0-9\./:-]+\\)\\)$") hostname)
+        (progn
+          (if (match-string 2)
+              (setq proto "tcp"
+                    host (match-string 2 hostname)
+                    port (match-string 3 hostname)
+                    port (if (null port) iiimcf-server-control-default-port
+                           (string-to-number (substring port 1))))
+            (setq proto "unix"
+                  host (match-string 5 hostname)))
+          (list proto host port))
       (error "server name %s is not valid!" hostname))))
 
 (defun iiimcf-server-control-setup-event-flow-mode (mes)
Index: iiimf-12.3.91-svn2814/iiimecf/lisp/iiimp.el
===================================================================
--- iiimf-12.3.91-svn2814/iiimecf/lisp/iiimp.el	(revision 2814)
+++ iiimf-12.3.91-svn2814/iiimecf/lisp/iiimp.el	(revision 3432)
@@ -70,7 +70,9 @@
   (if (iiimp-coding-system-or-name-p 'utf-16-be-no-signature-unix)
       'utf-16-be-no-signature-unix
     (if (iiimp-coding-system-or-name-p 'utf-16be) 'utf-16be
-      'utf-16-be-unix)))
+      'utf-16-be-unix
+      (if (iiimp-coding-system-or-name-p 'utf-16-be-unix) 'utf-16-be-unix
+        (error "You need unicode-capable Emacs!")))))
 
 (defvar iiimp-text-warning-char ?!)
 
Index: iiimf-12.3.91-svn2814/iiimecf/lisp/ChangeLog
===================================================================
--- iiimf-12.3.91-svn2814/iiimecf/lisp/ChangeLog	(revision 2814)
+++ iiimf-12.3.91-svn2814/iiimecf/lisp/ChangeLog	(revision 3432)
@@ -1,3 +1,14 @@
+2007-12-05  KAWABATA Taichi <kawabata@xxxxxxxx>
+
+	* iiimcf.el
+	(iiimcf-version): changed to 0.7.
+	(iiimcf-connect-im): tentatively remove call to (iiimcf-send-client-descriptor).
+	* iiimcf-sc.el
+	(iiimcf-server-control-version): changed to 0.7.
+	(iiimcf-server-control-default-proto): commented out.
+	(iiimcf-server-control-parse-hostname): re-written.
+	(iiimcf-server-control-hostlist): default value changed for IIIMF R12.
+
 2005-06-04  KAWABATA Taichi <kawabata@xxxxxxxx>
 
 	* iiimp.el (iiimp-unixdomain-socket-path): removed.
@@ -2,5 +13,5 @@
 	(iiimp-basic-opcode-spec-list): opcode for
-	iiimp-im-protocol-version, iiimp-im-file-operation and 
+	iiimp-im-protocol-version, iiimp-im-file-operation and
 	iiimp-im-file-operation-reply are added.
-	
+
 	* iiimcf-sc.el (iiimcf-server-control-initial-state-keymap):
@@ -103,7 +114,7 @@
 	change Language Engine.
 	(iiimcf-server-control-activate): Do not send `notify-trigger' if
 	this function is not invoked by 'toggle-input-method
-	(i.e. notify-trigger is invoked from the server at le-switch). 
+	(i.e. notify-trigger is invoked from the server at le-switch).
 
 	* iiimp.el (iiimp-message-register-hotkeys-scope): New function
 	(iiimp-message-register-hotkeys-profie-id): New function
@@ -223,7 +234,6 @@
 	* iiimcf.el (iiimcf-trigger-state): New function.
 	(iiimcf-notify-trigger): New function (that was originally
 	iiimcf-server-control-notify-trigger@xxxxxxxxxxxx).
-	
 
 2002-07-09  MIYASHITA Hisashi  <himi@xxxxxxxx>
 
@@ -336,9 +346,9 @@
 	(iiimcf-com-alist): New variable.
 	(iiimcf-im-alist): New variable.
 	(iiimcf-ic-alist): New variable.
-	(iiimcf-register-com-id, iiimcf-register-im-id) 
+	(iiimcf-register-com-id, iiimcf-register-im-id)
 	(iiimcf-register-ic-id): New functions.
-	(iiimcf-unregister-com-id, iiimcf-unregister-im-id) 
+	(iiimcf-unregister-com-id, iiimcf-unregister-im-id)
 	(iiimcf-unregister-ic-id): New functions.
 	(iiimcf-com-id-get, iiimcf-im-id-get, iiimcf-ic-id-get): New functions.
 	(iiimcf-com-id-put, iiimcf-im-id-put, iiimcf-ic-id-put): New functions.
@@ -347,7 +357,7 @@
 	(iiimcf-connect-im, iiimcf-disconnect-im): New functions.
 	(iiimcf-create-ic, iiimcf-destroy-ic): New functions.
 	(iiimcf-forward-event): New function.
-	(iiimcf-get-current-preedit-text) 
+	(iiimcf-get-current-preedit-text)
 	(iiimcf-get-current-preedit-caret)
 	(iiimcf-get-current-preedit): New functions.
 	(iiimcf-update-preedit): New default handler.
@@ -361,9 +371,9 @@
 	(iiimp-construct-com-id): New function.
 	(iiimp-proc-to-com-id): Take the value of iiimp-current-com-id
 	assciated with the buffer of proc.
-	(iiimp-im-id-to-com-id, iiimp-im-id-to-handle) 
+	(iiimp-im-id-to-com-id, iiimp-im-id-to-handle)
 	(iiimp-construct-im-id): Change the structure of im-id object.
-	(iiimp-ic-id-to-com-id, iiimp-construct-ic-id) 
+	(iiimp-ic-id-to-com-id, iiimp-construct-ic-id)
 	(iiimp-ic-id-to-handle): Likewise.
 	(iiimp-ic-id-to-im-id): New function.
 	(iiimp-create-network-channel): Use iiimp-construct-com-id.
@@ -375,14 +385,11 @@
 	drawing, and erasing them; (3) keymap that is associated with
 	UI-context.
 
-	
-	
-
 2001-11-02  MIYASHITA Hisashi  <himi@xxxxxxxx>
 
 	* iiimcf-sc.el (iiimcf-server-control-preedit-text-properties): New function.
 	(iiimcf-server-control-preedit-text-properties-end): New function.
-	(iiimcf-server-control-setup-preedit-text): Use 
+	(iiimcf-server-control-setup-preedit-text): Use
 	iiimcf-server-control-preedit-text-properties and
 	iiimcf-server-control-preedit-text-properties-end to obtain
 	text property list.
@@ -558,8 +565,8 @@
 	(iiimp-parse-im-forward-event-with-operations): Likewise.
 	(iiimp-parse-im-forward-event-with-operations-reply): Likewise.
 	(iiimp-parse-im-commit-string): Likewise.
-	(iiimp-parse-im-preedit-draw): 
-	(iiimp-parse-im-status-draw): 
+	(iiimp-parse-im-preedit-draw):
+	(iiimp-parse-im-status-draw):
 	(iiimp-parse-im-lookup-choice-start): Likewise.  And more, change
 	the format of im-lookup-choice-start message.
 	(iiimp-parse-im-lookup-choice-draw): Likewise.  And more, change
@@ -606,7 +613,7 @@
 	(iiimp-message-aux-im-name): Ditto.
 	(iiimp-message-aux-int-list): Ditto.
 	(iiimp-message-aux-string-list): Ditto.
-	
+
 2001-05-29  MIYASHITA Hisashi  <himi@xxxxxxxxxxx>
 
 	* iiimcf-sc.el (iiimcf-server-control-register-com-id): When already
@@ -622,7 +629,7 @@
 	* iiimp.el (iiimp-parse-im-lookup-choice-start): Bug fix.
 	if dir is 0, set 'horizontal as the direction; otherwise,
 	set 'vertical.
-	(iiimp-message-opcode): New function. 
+	(iiimp-message-opcode): New function.
 	(iiimp-message-com-id): New function.
 	(iiimp-message-im-id): New function.
 	(iiimp-message-ic-id): New function.
@@ -695,7 +702,7 @@
 	Call iiimcf-server-control-preedit-enable-p instead of checking
 	the validity of iiimcf-server-control-preedit-marker.
 	(iiimcf-server-control-update-preedit-text):
-	New function (extracted from 
+	New function (extracted from
 	iiimcf-server-control-maintain-preedit-text-internal).
 	(iiimcf-server-control-maintain-preedit-text-internal):
 	Call iiimcf-server-control-update-preedit-text to update
@@ -755,7 +762,7 @@
 	(iiimcf-server-control-initial-state-keymap): Add a new key
 	binding for iiimcf-server-control-change-input-method.
 	Remove the binding for iiimcf-server-control-switch-ic-attribute.
-	(iiimcf-server-control-com-level-handler-alist): New variable. 
+	(iiimcf-server-control-com-level-handler-alist): New variable.
 	(iiimcf-server-control-ic-level-handler-alist): New variable.
 	(iiimcf-server-control-register-handlers): New function.
 	(iiimcf-server-control-remove-handlers): New function.
@@ -1102,7 +1109,7 @@
 
 2000-08-29  MIYASHITA Hisashi  <himi@xxxxxxxxxxx>
 
-	* iiimcf.el (iiimcf-prevent-error): 
+	* iiimcf.el (iiimcf-prevent-error):
 	(iiimcf-error): Move error handling part for the front.
 	(iiimcf-server-control-async-handler): When iiimp-fatal error
 	is occurred, shutdown the connection, and propergate the error.
@@ -1120,7 +1127,7 @@
 	instead, generate events from it
 	("iiim-server-control"): Change the indicator string.
 
-	* iiimp.el (iiimp-connection-error): 
+	* iiimp.el (iiimp-connection-error):
 	New function.
 	(iiimp-connection-error): New error symbol.
 	Put an error message.
@@ -1244,7 +1251,7 @@
 2000-08-04  MIYASHITA Hisashi  <himi@xxxxxxxx>
 
 	* iiimcf.el (iiimcf-server-control-setup):
-	Add a handler, iiimcf-server-control-trigger-notify. 
+	Add a handler, iiimcf-server-control-trigger-notify.
 	(iiimcf-server-control-dispatch-event):
 	Bind input-method-function to nil before calling
 	read-key-sequence and call-interactively.
@@ -1296,10 +1303,10 @@
 
 2000-08-02  MIYASHITA Hisashi  <himi@xxxxxxxx>
 
-	* iiimcf.el (iiimcf-server-control-insert-preedit): 
+	* iiimcf.el (iiimcf-server-control-insert-preedit):
 	If iiimcf-server-control-preedit-marker is invalid,
 	regard it as an evidence that a setup for preedit
-	text is not completed, then call 
+	text is not completed, then call
 	iiimcf-server-control-setup-preedit-text.
 	(iiimcf-server-control-maintain-preedit-text):
 	Don't try to process unread events.
@@ -1322,7 +1329,7 @@
 	Bug fix.  Remove iiimcf-server-control-setup-event-flow-mode
 	handler instead of registering.
 	And remove the above 4 handlers.
-	(iiimcf-server-control-maintain-preedit-text-internal): 
+	(iiimcf-server-control-maintain-preedit-text-internal):
 	If iiimcf-server-control-preedit-marker is valid,
 	draw preedit text in inline mode.  And when
 	the reviced preedit text is empty, call
@@ -1330,9 +1337,9 @@
 	(iiimcf-server-control-maintain-preedit-text):
 	Don't call iiimcf-server-control-clear-preedit-text
 	in the end.
-	(iiimcf-server-control-prepare-lookup-choice): 
-	(iiimcf-server-control-draw-lookup-choice): 
-	(iiimcf-server-control-redraw-lookup-choice): 
+	(iiimcf-server-control-prepare-lookup-choice):
+	(iiimcf-server-control-draw-lookup-choice):
+	(iiimcf-server-control-redraw-lookup-choice):
 	(iiimcf-server-control-clear-lookup-choice):
 	New functions as handlers