我最近收到了一些相对重要的功能,我从某人那里维护了一些软件。不幸的是,他并没有提供差异,而是只给了我整个源代码树,更糟糕的是,他似乎使用了某种代码美化,远远超出了我曾经使用或看过的东西,包括像< / p>
对他的版本和旧版本的文件运行缩进(BSD)并不会使它们彼此接近。使用astyle也不行。在任何一种情况下,仍然有不同的格式样式的残余。
是否有任何C格式化程序基本上会删除尽可能多的格式,然后一致地格式化代码?或者有没有办法让格式化程序执行此操作?它不需要看起来非常好看,我只需要能够得到一个合理的差异,这样我就可以看到他实际改变了什么。
答案 0 :(得分:4)
我会尝试使用tr -s ' \t\r\n' ' '
或同等数据删除尽可能多的空格,然后将结果反馈回indent
。 (遗憾的是,不能执行tr -d,因为这会损坏令牌边界。)
答案 1 :(得分:3)
uncrustify是你可以尝试的另一种选择 - 极端可配置性有点压倒性,但它能够完成大部分(如果不是全部)你提到的事情。
答案 2 :(得分:2)
Netbeans和Eclipse C开发包附带的重新格式化程序非常具有攻击性,也许您可以试用它们。
答案 3 :(得分:1)
您可以预处理这两个文件,然后区分它们。