在看腾讯开源的FSTACK,其中协议栈使用的是FREEBSD的代码,使用的版本是11.0,对比看是否进行修改,下载的代码有一个类似标记的地方有一点差异。使用RUBY将这些差异修正,然后对比即可。但是在Windows上保存文件格式为DOS,需要使用dos2unix转换一下,这样使用beyond compare比较就不会有差异了。
比较的结果为,确实没有修改bsd的代码。
def traverse_dir(file_path)
if File.directory? file_path
Dir.foreach(file_path) do |file|
if file !="." and file !=".."
traverse_dir(file_path+"/"+file)
end
end
else
aFile = File.new("#{file_path}_bak", "w+")
oldFile = File.open(file_path,"r+")
oldFile.each { |line|
#File.open(file_path,'r+').each_line do |line|
if line.include?("# $FreeBSD")
line = "# $FreeBSD$"
end
if line.include?("__FBSDID(\"$FreeBSD")
line = "__FBSDID(\"$FreeBSD$\");"
end
if line.include?(" * $FreeBSD")
line = " * $FreeBSD$"
end
aFile.puts line
}
oldFile.close
aFile.close
File.delete(file_path)
File.rename("#{file_path}_bak", file_path)
end
end
traverse_dir('F:/02.code/freebsd_stack/freebsd_stack/')