LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: MichaelBibby

fcitx无法在OpenBSD上编译成功,以下是错误信息

[复制链接]
发表于 2005-10-8 23:16:13 | 显示全部楼层
试试将CODESET改为14如何?
请给我信息,谢谢!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-9 14:07:47 | 显示全部楼层
Post by neolkc
太感谢了~~~
热泪盈眶啊~~  期待~

neolkc,OB下的fcitx就靠你测试啦,偶现在没法测试了
跑到深圳找工作来了~
回复 支持 反对

使用道具 举报

发表于 2005-10-9 17:48:43 | 显示全部楼层
MichaelBibby  祝你好运~
我会努力的~ 真的希望OB能有输入法用~

编辑 ~/fcitx-3.1.1/src/main.c 加入:
#ifndef CODESET
#define CODESET 14
#endif
安装automake和perl两个包(基本只需要安装automake这个包,perl系统自带了)使用下面命令安装:
# cd fcitx-3.1.1
# sh configure && make && make install (安装成功)
在 ~/.xinitrc 中加入
exec fcitx &
exec /usr/X11R6/lib/fluxbox
# startx (进入X后可以在屏幕右上方看见fcitx输入法条)
在X下我使用mlterm和firefox都切换不出来输入法。 :ask
我使用的tcsh,在.cshrc里的设置:
setenv BLOCKSIZE 1k
setenv LANG        zh_CN.GB2312
setenv LC_CTYPE zh_CN.GB2312
setenv XMODIFIERS        "@im=fcitx"
我该如何调整? :thank

ps : 建议搞好后Yuking做个OB下的版本加入到OB的ports/chinese中和packages里。
回复 支持 反对

使用道具 举报

发表于 2005-10-9 23:19:00 | 显示全部楼层
Post by Yuking
试试将CODESET改为14如何?
请给我信息,谢谢!


我觉得不可以这么做,你看看这个:

http://www.openbsd.org/cgi-bin/c ... ocale/nl_langinfo.c

它根本就没有这个东西呢,而不只是没有定义CODESET。
回复 支持 反对

使用道具 举报

发表于 2005-10-10 16:43:56 | 显示全部楼层
Openbsd的库没有中文的locale,很久以来一直是这样(而且可预见的近期似乎也没打算做),可能你们不了解这个事情了吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-10 20:39:25 | 显示全部楼层
Post by ecloud
Openbsd的库没有中文的locale,很久以来一直是这样(而且可预见的近期似乎也没打算做),可能你们不了解这个事情了吧

知道有这么回事

那是不是FCITX没有中文LOCALE的支持就无法使用呢?
有没有哪位高人写好的patch,可以让OB支持LOCALE?
回复 支持 反对

使用道具 举报

发表于 2005-10-12 12:52:59 | 显示全部楼层
我觉得没有中文locale应该也可以输入吧?如果pango和xft支持的话不就可以了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-13 20:26:26 | 显示全部楼层
在Snapshot的OB上使用fcitx:

http://www.bsdchina.org/forum/viewtopic.php?t=113
回复 支持 反对

使用道具 举报

发表于 2005-10-14 01:31:40 | 显示全部楼层
我觉得如果不是我误会了,就是你们误会了。在bsdchina上,neolkc的文章:
OpenBSD<Time:8:31pm>[/data]-root->diff fcitx/src/main.c fcitx-3.1.1/src/main.c
17,20d16
< #ifdef CODESET
< #define CODESET 14
< #endif
<
66c62
< bIsUtf8 = (strstr (setlocale (LC_CTYPE, NULL), "utf8") != NULL);
---
> bIsUtf8 = (strcmp (nl_langinfo (CODESET), "UTF-8") == 0);

其中上面的 < 指的是新的(fcitx目录里),而 > 指的是旧的(fcitx-3.1.1目录里)。在fcitx里,实用CODESET的只有main.c这个文件,而且也只在上面那一行代码。如果我们把它改为 < 的,我们就没有用到CODESET了。

所以上面的#define CODESET是多余的,没有用。为什么呢?你们看看我给的OpenBSD的CVS的连接,那个函数根本就没有处理“CODESET”。

Yuking有什么看法呢?
回复 支持 反对

使用道具 举报

发表于 2005-10-15 10:50:10 | 显示全部楼层
我已经看到了这个这个帖子,但前面有人说将CODESET定义为14后可以编译成功了,说明OB中有nl_langinfo这个函数的定义。由于我没有OB的环境,无法测试,只能靠各位了~~

有没有人能明确说明OB中有没有nl_langinfo呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表