LinuxSir.cn,穿越时空的Linuxsir!

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

Gaim QQ 0.2.7 发布了

[复制链接]
发表于 2004-3-29 03:45:09 | 显示全部楼层

发现一个很小很小的 bug

在 configure.ac 中
第 153 行:     qq)      dynamic_gg=yes ;;
是不是应该为  qq)      dynamic_qq=yes ;;

虽然这不影响 Gaim QQ 的编译。
 楼主| 发表于 2004-3-29 08:51:38 | 显示全部楼层
多谢zxj兄。
发表于 2004-3-29 11:04:08 | 显示全部楼层
最初由 fog_proxy 发表
还有一个问题就是,gaim-qq里面的英文为什么都那么虚啊?

不关OpenQ的事,也不关Gaim的事。是你的字体设置有问题,我的一点都不虚。 去看看美化的贴子,自己动手,或者用现成的美化包。
发表于 2004-3-29 11:25:07 | 显示全部楼层
最初由 rakescar 发表
这个是Gaim本身的问题.OpenQ只是一个插件.如果开始改Gaim源码的话以后Gaim出新版本就要把所有改动合并到新的Gaim源码,以后就会成为一个大包袱.除非能说服Gaim的团队接受我们做的改动.

那些HTML的注脚也是一样,是Gaim的设计. 不过这个可能有办法,在发出之前过滤一下.

我想可能用regex会好一点
就是不知道gaim的c里面怎么用regex来进行替换~~~~
发表于 2004-3-29 12:41:30 | 显示全部楼层
最初由 henryouly 发表
我想可能用regex会好一点
就是不知道gaim的c里面怎么用regex来进行替换~~~~


regex我到是会用,但是我要找一找该在那里进行这个替换。还要先征求一下PuzzleBird兄的意见。因为这个替换可能有副反应,用户输入的<br>是不是也变成换行了。
 楼主| 发表于 2004-3-29 13:16:33 | 显示全部楼层
这个问题涉及到对Gaim主程序的改动。

因为用户输入的字符先由Gaim进行处理以后,在传到qq_send_im函数(qq.c)。这样的话,我们无法判断字符中的HTML代码是用户自己输入的,还是由Gaim添加的。

出于这样的情况,我们必须改动Gaim的主程序,但是我不知道这样对其他插件的影响。比如MSN和Yahoo他们在发出去的代码就是HTML的,如果我们过滤HTML代码,那么MSN和YAHOO就没法工作了。

关于Gaim QQ中附加HTML代码的问题,我自己没有碰到,如果完全不用IM窗口中的工具条来改动字体和颜色,应该不会由这种情况。
发表于 2004-3-29 15:17:29 | 显示全部楼层
我觉得直接用正则替换并不影响大多数用户的正常使用
就一般而言,很少用户需要手动输入<br>的
尽管如此,我们也可以提供手段让用户禁止正则替换的发生
比如增加一个pref选项(就好象ip location那些一样),或者在msg里面使用特定的tag(比如<code> </code>),也可以两者皆用
发表于 2004-3-29 15:38:02 | 显示全部楼层
我是不支持对gaim代码进行任何改动的。

对于puzzlebird提到的问题,我想能否始终假设html tag是gaim自动增加的,而不是用户输入的。

当用户需要否定qq plugin的这种默认行为时,可以通过两种手段(就是上一贴我提到的)
1. 设置个人参数,禁止qq plugin的所有正则替换的执行
2. 采用特殊的tag来禁止在一条msg中某段内容之间的正则替换

比如qq_send_im.c接收到的信息是
hello<br>today's topic is the usage of <code><br> and <hr></code>

第一个<br>并没有在任何<code>的作用域中,因此被正则替换
第二个<br>(还有<hr>)在<code>的作用域当中,因此不执行正则替换

当然,code tag是不允许嵌套的,并且满足最近匹配原则。这种文法的BNF应该不难表示。

ps, 上文之所以用<code>,其实不是一个太好的写法,会和普通html代码造成混淆。一个比较好的写法是用方括号代替尖括号。因为会被论坛当作ubb代码解释了,所以采用了尖括号的写法。
 楼主| 发表于 2004-3-29 15:52:03 | 显示全部楼层
我基本同意henry的说法,可以在qq.c中加一个设置,比如"过滤HTML代码", 然后在程序中根据用户的设置来处理。yahoo.c 的处理函数可以参考。函数 _qq_im_filter_html()建议放到 qq_char_conv.c 中。

我最近比较忙,如果谁由兴趣可以做做看。如果没有人做,我大概4月底来做。 
发表于 2004-3-30 00:12:33 | 显示全部楼层
最初由 puzzlebird 发表
我基本同意henry的说法,可以在qq.c中加一个设置,比如"过滤HTML代码", 然后在程序中根据用户的设置来处理。yahoo.c 的处理函数可以参考。函数 _qq_im_filter_html()建议放到 qq_char_conv.c 中。

我最近比较忙,如果谁由兴趣可以做做看。如果没有人做,我大概4月底来做。 


我在试着做,等做好了我把改动贴出来。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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