ircd-hybrid支持多字节昵称(如:中文)

嘿嘿,被别人误导了。

有二种方法

 

方法1:

# vi ./modules/core/m_nick.c

找到 clean_nick_name() 函数

注释掉

# for(; *nick; nick++)

# {

#     if (!IsNickChar(*nick))

#           return (0);

#  }

 

重编译使用就可支持多字节昵称了,不过,现在昵称连空格都支持了,嘿嘿,所以,恭喜你,服务器对昵称的管理会错乱。

还有一个重大BUG,偶不告诉你,哈哈~~

================================================

本着好奇,解除已知BUG的想法,使用方法二吧。

方法2:

# vi ./include/irc_string.h

相应位置加上

#define NNICK_C    0x20000

#define IsNickChar(c)    (CharAttrs[(unsigned char)(c)] & NNICK_C)

#define IsNickChar(c)    (!(CharAttrs[(unsigned char)(c)] & NNICK_C))

 

# vi ./src/match.c

在数据 CharAttrs[] 需要屏蔽的ASCII字符上加 NNICK_C 标记

 

重编译使用吧。

================================================

 

Note:

1. NNICK_C 标记 nick 不支持的字符(ASCII编码)

2. 空格一定要加上 NNICK_C标记

 

其时,方法2 也可能会有问题,不过,如果,写multi byte支持函数,那么要写GB2312、GBK、UTF-8等等都要写(写了GB2312判断后突然想到),懒得去做了。

有问题再说吧。

 

版本:ircd-hybrid-7.2.3

 

找不到上传文件的地方。¥%¥#……%¥——*——(*)——(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值