| |||||||
adm | Find | login register |
| |||||||||||||
可以參考 gcin source 裏面的 gcin-x.x.x/gtk-im/gtkimcontextgcin.c 也就是 gcin's GTK IM module 與 scim 比一下大小 就知道困難度,應該是不難。有問題再問。
/usr/lib/gtk-2.0/immodules/im-gcin.so: 11140 /usr/lib/gcin/libgcin-im-client.so.1.2.1 13388 edited: 1
| |||||||||||||
| |||||||||||||
可以直接看 gcin-im-client.h裏面的 function,不明白再參考 gtkimcontextgcin.c。 直接連上 gcin 的 socket 操作不是正確的作法,這就等於做了 libgcin-im-client.so 裏面的事, 透過 libgcin-im-client.so 的 function 應該比較簡單。 | |||||||||||||
看來要跟SCIM一樣,要寫一個agent,讓這個agent當handler,再讓Emacs連到這個handler了 | |||||||||||||
為什麼要那麼複雜?emacs 的 plugin 不可以 call C function ? | |||||||||||||
好像是沒辦法,要寫一個agent執行,然後再讓Emacs以IPC的方式連上去 gcin支援dbus嗎? | |||||||||||||
如果真的不行,把 im-client/gcin-im-client.cpp 改成用 emacs 直接用 socket IPC,只是 protocol有變動,必須也跟著變。目前是很少有變動。 | |||||||||||||
uim 也有 emacs plugin 可以查查看。 不過我沒研究 uim/scim 是怎麼實作的。 | |||||||||||||
感謝,我試試看能不能改改UIM的Lisp給gcin用
|
| |||||||
adm | Find | login register |