awk add log for c++
2011-03-02 19:45
239 查看
for f in `find ../try1/mozilla-central/xpfe/appshell/src/ -type f |egrep -e '/.(h|cpp)'` ; do awk -f addlog $f > $f.ok; mv $f.ok $f;done
#! /usr/bin/awk
BEGIN {
add = 0
# addr = 0
line = 1
line1 = 0
line2 = 0
line3 = 0
line4 = 0
line5 = 0
line6 = 0
}
{
# print "line=",line
# print "add =",add
if (add)
{
print "#ifdef DEBUG"
print " printf(/"enter %s(%d)-%s//n/",__FILE__,__LINE__,__FUNCTION__);"
print "#endif"
add = 0
# addr = 1
line1 = 0
line2 = 0
line3 = 0
line4 = 0
line5 = 0
line6 = 0
# print "after addlog add= ",add
}
if ( line == line3+1 )
{
add = 0
line1 = 0
line2 = 0
line3 = 0
line4 = 0
line5 = 0
line6 = 0
}
# if (( index($0,"return") > 1 && index($0,"return") < 5 && addr == 1))
# {
# addr = 0
# print "#ifdef DEBUG"
# print " printf(/"leave %s(%d)-%s//n/",__FILE__,__LINE__,__FUNCTION__);"
# print "#endif"
# }
# if ( index($0,"}") == 1 && addr == 1)
# {
# addr = 0
# print "#ifdef DEBUG"
# print " printf(/"leave %s(%d)-%s//n/",__FILE__,__LINE__,__FUNCTION__);"
# print "#endif"
# }
print $0
if ( index($0,"::") > 0 )
{
line1 = line
}
# print "line1=",line1
if ( index($0,"(") > 0 )
{
line2 = line
}
# print "line2=",line2
if ( index($0,"{") == 1 )
{
line3 = line
}
if ( index($0,"}") > 1)
{
line4 = line
}
if ( match($0,"//") )
{
line1 = 0
line2 = 0
line3 = 0
line4 = 0
line5 = 0
line6 = 0
}
if (match($0,/class|enum|struct|static const|/[/] =/) )
{
line6 = line
}
if ( index($0,"}") == 1 )
{
line1 = 0
line2 = 0
line3 = 0
line4 = 0
line5 = 0
line6 = 0
}
#print "line3=",line3
if( (line2 >= line1 && line2 <= line1+5) && line1 > 0 )
{
if( line3 > line2)
{
if( line4 != line3 && line3 != line5 && line3 != line6+1 )
{
add = 1;
}
}
}
line++
}
END{
add = 0
exit 0;
}
#! /usr/bin/awk
BEGIN {
add = 0
# addr = 0
line = 1
line1 = 0
line2 = 0
line3 = 0
line4 = 0
line5 = 0
line6 = 0
}
{
# print "line=",line
# print "add =",add
if (add)
{
print "#ifdef DEBUG"
print " printf(/"enter %s(%d)-%s//n/",__FILE__,__LINE__,__FUNCTION__);"
print "#endif"
add = 0
# addr = 1
line1 = 0
line2 = 0
line3 = 0
line4 = 0
line5 = 0
line6 = 0
# print "after addlog add= ",add
}
if ( line == line3+1 )
{
add = 0
line1 = 0
line2 = 0
line3 = 0
line4 = 0
line5 = 0
line6 = 0
}
# if (( index($0,"return") > 1 && index($0,"return") < 5 && addr == 1))
# {
# addr = 0
# print "#ifdef DEBUG"
# print " printf(/"leave %s(%d)-%s//n/",__FILE__,__LINE__,__FUNCTION__);"
# print "#endif"
# }
# if ( index($0,"}") == 1 && addr == 1)
# {
# addr = 0
# print "#ifdef DEBUG"
# print " printf(/"leave %s(%d)-%s//n/",__FILE__,__LINE__,__FUNCTION__);"
# print "#endif"
# }
print $0
if ( index($0,"::") > 0 )
{
line1 = line
}
# print "line1=",line1
if ( index($0,"(") > 0 )
{
line2 = line
}
# print "line2=",line2
if ( index($0,"{") == 1 )
{
line3 = line
}
if ( index($0,"}") > 1)
{
line4 = line
}
if ( match($0,"//") )
{
line1 = 0
line2 = 0
line3 = 0
line4 = 0
line5 = 0
line6 = 0
}
if (match($0,/class|enum|struct|static const|/[/] =/) )
{
line6 = line
}
if ( index($0,"}") == 1 )
{
line1 = 0
line2 = 0
line3 = 0
line4 = 0
line5 = 0
line6 = 0
}
#print "line3=",line3
if( (line2 >= line1 && line2 <= line1+5) && line1 > 0 )
{
if( line3 > line2)
{
if( line4 != line3 && line3 != line5 && line3 != line6+1 )
{
add = 1;
}
}
}
line++
}
END{
add = 0
exit 0;
}
相关文章推荐
- awk file del log for c++
- Android add log for c/c++
- How to add icon for the item of ListCtrl using C++ (Mail Attachment ListCtrl) - 如何用C++为ListCtrl的Item添加图标(邮件附件ListCtrl)
- Simple debug log for C++
- java log ,c /c++ log add function
- Log for C++
- 又遇No result defined for action org.action.AddAction and result success
- The VC++6.0 C++ source code for playing wave file
- c++for_each的用法
- Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE Please check logcat output for more details.
- 2013 不能使用Microsoft Office Word Add-in For MediaWiki
- Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
- C# FAQ for C++ programmers
- 《Leetcode系列》C++实现:2-add two numbers
- Bjarne新文章《Evolving a language in and for the real world: C++ 1991-2006》的读后感
- 欢迎使用 FreeCode for VS60/VS2005 Add-in
- another lightweight c++ log utility
- C++ 日志库 boost::log 以及 glog 的对比
- A "synchronized" statement for C++ like in Java
- 在windows下使用 Visual Leak Detector for Visual C++ 2008的安装和配置