Gaim 中的拼写检查

只要安装了 libgtkspell 和 libaspell 库,编译 gaim 的时候会自动启用这个功能,但是,在中文 locale 下这个功能不起作用(这是连 MS Office 也没做出来的功能)。我在 gaim 中用 Fcitx 输入中文,必须要使用中文 locale,也有很多时候是要输入英文,比如最近和小鼠练习英文,有个拼写检查工具能帮我纠正很多容易拼错的词,鱼与熊掌如何兼得呢?

答案当然在代码中,开源就是好。在 gaim 的源码中搜索,发现在文件 gtk/gtkutils.c 里调用 gtkspell_new_attach() 的时候把 locale 设成 NULL 了,这样 gtkspell 会取当前环境变量 LANG 的值,这自然是没有错,但是方块汉字进行拼写检查几乎是不可能任务 @_@,改成 en_US 就可以了。

其实鱼和熊掌还是没有兼得,敲完汉字打个标点,也会被标上波浪线 :(

svn diff:

Index: gtk/gtkutils.c
===================================================================
--- gtk/gtkutils.c (revision 17746)
+++ gtk/gtkutils.c (working copy)
@@ -831,7 +831,7 @@
{
#ifdef USE_GTKSPELL
GError *error = NULL;
- char *locale = NULL;
+ char *locale = "en_US";

g_return_if_fail(textview != NULL);
g_return_if_fail(GTK_IS_TEXT_VIEW(textview));

Nov 15, 2006 at 12:33am | 0 Comments
Tags:

Gaim 用于 Gtalk 时必须保存密码的解决办法

Gaim 2.0.0beta1 连接 Gtalk 时必须要在帐号文件 accounts.xml 中存储密码,不然就用空密码去登陆,自然失败。虽然 Unix 的文件权限机制不错,但像我这样在 NIS 域里面简直就形同虚设,别人可以从 root 切换到我的帐号,访问我的 HOME,虽然是非法,但总算得上是没有控制的。

看了 Gaim 主页上 关于password 问题的 FAQ ,它说 Gaim 现在不对 accounts.xml 里面存储的密码进行加密,将来的版本中应该也不会这么做,原因是多方面的……,我看了半天,不知道是不是理解错误,总觉得他的解释很牵强。

那只好不要在文件中保存密码了。登陆 MSN 时,会先弹出窗口输入密码,偏偏登陆 Gtalk 时就很白痴的直接用空密码去登陆。看了一会源码加上 gdb,终于找到问题。从源码看,Jabber 协议中密码是可选的,因此没设密码时照样登陆。解决的办法就简单了,从
src/protocols/jabber/jabber.c 中去掉这个选项:

  1425  static GaimPluginProtocolInfo prpl_info =
1426 {
1427 OPT_PROTO_CHAT_TOPIC | OPT_PROTO_UNIQUE_CHATNAME | 1428 OPT_PROTO_PASSWORD_OPTIONAL,

如果之前已经 make install 过,只要重新编译后把 src/protocols/jabber/jabber/.libs/ 下的 libjabber.la 和 libjabber.so 覆盖到放 plugin 的目录($prefix/lib/gaim/)下就好了。这样就能像登陆 MSN 一样,弹出窗口来输入密码。调试时发现该目录下所有的插件都会装载,移走不需要的插件显然能增加启动速度和减少占用资源。

开源就是好啊。

Update: 2.0.0beta2 出来了,fix 正是和我的一样 ;-)

Jan 9, 2006 at 10:06pm | 0 Comments
Tags: , and

Gaim 2.0.0beta1

gaim 2.0.0beta1 多账号同一窗口,cool! Gaim 2.0.0beta1上个月就发布了,试了一下,开始在 Solaris 上用 gcc 编译都不过,看了错误信息,说没有定义 SIOCGIFCONF,找了一下系统头文件,是文件包含的问题,临时在 src/stun.c 前面加上 #define BSD_COMP 就可以解决了。用起来感觉还是不错的,因为是 beta1,有一些明显的 bug 都还没解决,例如登陆 GTalk 非得保存密码才能登陆成功,主要变化:

  • 聊天时文字是平滑滚动,这个见仁见智吧
  • 中英文混合输入时不会再一个回车就发送了
  • 主面板下方在线状态的几个大按钮,看不懂为什么放在那
  • Jabber 加了个图标,登陆 Gtalk 好看一些了
  • 据说 Audio 功能不错了,可惜 Solaris 上没有编出库来,将来应该能支持 GTalk 的语音

Jan 6, 2006 at 1:14am | 0 Comments
Tags: , and

 1

Tags

Blogroll

Fairy World | STUPiD | 阅微草堂 | ShelleX | 流浪五天