修正Twiki4.2.2的一个Bug

美国yahoo内部人员文档交流使用的的twiki页面是twiki页面,但是twiki对UTF-8汉字处理不太好,导致一些莫名其妙的问题,如字体从上到下,越来越大。为了解决这个症状,本人跟踪了一下这个原因,应该是twiki的一个bug。

我们知道在firefox里面字体url转码和不转码是没有什么区别的,但是在ie6下必须要url转码,否则ie6就会成为乱码,(ie7正常)于是:
1,修改TWiki/Render.pm文件:
找到函数:
sub makeAnchorName {
在函数末尾修改返回值为:
return urlEncode($anchorName);

接着在该函数后面加上函数urlEncode:

sub urlEncode {
    my $text = shift;
    $text =~ s/([^0-9a-zA-Z-_.:~!*'\/%])/'%'.sprintf('%02x',ord($1))/ge;
    return $text;
}

2,修改TWiki.pm文件:
找到函数:
sub _make_params {
修改:
$anchor .= '#' . shift( @args );

$anchor .= '#' . urlEncode(shift( @args ));
即可。


这次升级TWiki,我发现一个更加简单的修改这个Bug:

  • Version: TWiki 4.0.0-4.2.3+
  • Reason: display
  • You can use tool like vim etc. To edit the lib/TWiki/Render.pm, Add function urlEncodeIntercept (line 437) above sub _linkToolTipInfo {, like this:
    sub urlEncodeIntercept
{
my $text = shift;
$text = crypt($text, "salt");
return $text;
}
  • Find and change (line 427):
    return $anchorName;
  • to:
    return urlEncodeIntercept($anchorName);

Bug地址:http://twiki.org/cgi-bin/view/Main/SimToUtf8



Monthly Archives

Pages

Powered by Movable Type 7.5.1

About this Entry

This page contains a single entry by Cnangel published on August 15, 2008 3:37 PM.

PHP 4官方支持结束 was the previous entry in this blog.

使用和制作patch文件 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.