logify.pl对以点开头的函数不正确转换的处理

用logify.pl转换微信头文件的时候,发现下面这种类型的函数 转换以后会出现编译错误,一个个去修改可能也没问题,但是我懒啊

- (void).cxx_destruct { %log; %orig; }

下面提供一个简单粗暴的办法,找到:

/opt/theos/bin/logify.pl

打开(建议先复制先复制到其他地方,然后改名原本的):

找到 :

if($line =~ m/^[+-]\s*\((.*?)\).*?(?=;)/ && $interface == 1) {

修改为 :

if($line =~ m/^[+-]\s*\((.*?)\)[^.]*?(?=;)/ && $interface == 1) {

(嗯,这个我不确定是不是需要,因为下面的还有一个判断)

找到:

$declaration =~ m/^[+-]\s*\((.*?)\).*?/;

修改为 :

$declaration =~ m/^[+-]\s*\((.*?)\)[^.]*?/;

替换原来的 命令行执行 输入密码

sudo chmod 775 /opt/theos/bin/logify.pl

然后应该就可以输出正常的了(unknown class name问题不在解决范围之内)


感谢E.L.O.U.R qq320263999帮忙测试正则表达式(嗯 其实就是我说了想法他负责实现的。。)

你可能感兴趣的:(logify.pl对以点开头的函数不正确转换的处理)