0ad5fbd48d
Instead of hardcoding paths to the executables, use the version in the path. This allows the scripts to work on more systems, and allows the binary version to be changed more easily if needed. Signed-off-by: Martin Roth <martin@coreboot.org> Change-Id: Ifcc56aa21092cd3866eacb6a02d198110ec6051d Reviewed-on: https://review.coreboot.org/c/coreboot/+/48904 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
102 lines
1.4 KiB
Sed
102 lines
1.4 KiB
Sed
#!/usr/bin/env sed -nf
|
|
|
|
# Remove C and C++ comments, by Brian Hiles (brian_hiles@rocketmail.com)
|
|
|
|
# Sped up (and bugfixed to some extent) by Paolo Bonzini (bonzini@gnu.org)
|
|
# Works its way through the line, copying to hold space the text up to the
|
|
# first special character (/, ", '). The original version went exactly a
|
|
# character at a time, hence the greater speed of this one. But the concept
|
|
# and especially the trick of building the line in hold space are entirely
|
|
# merit of Brian.
|
|
|
|
# Taken from http://sed.sourceforge.net/grabbag/scripts/remccoms3.sed
|
|
# According to http://sed.sourceforge.net/grabbag/ it's in the public domain
|
|
# Changes:
|
|
# 2010-11-06: Remove strings
|
|
|
|
:loop
|
|
|
|
# This line is sufficient to remove C++ comments!
|
|
/^\/\// s,.*,,
|
|
|
|
# addition for coreboot-lint: For our purpose we don't need strings
|
|
s,"[^"]*",,g
|
|
|
|
/^$/{
|
|
x
|
|
p
|
|
n
|
|
b loop
|
|
}
|
|
/^"/{
|
|
:double
|
|
/^$/{
|
|
x
|
|
p
|
|
n
|
|
/^"/b break
|
|
b double
|
|
}
|
|
|
|
H
|
|
x
|
|
s,\n\(.[^\"]*\).*,\1,
|
|
x
|
|
s,.[^\"]*,,
|
|
|
|
/^"/b break
|
|
/^\\/{
|
|
H
|
|
x
|
|
s,\n\(.\).*,\1,
|
|
x
|
|
s/.//
|
|
}
|
|
b double
|
|
}
|
|
|
|
/^'/{
|
|
:single
|
|
/^$/{
|
|
x
|
|
p
|
|
n
|
|
/^'/b break
|
|
b single
|
|
}
|
|
H
|
|
x
|
|
s,\n\(.[^\']*\).*,\1,
|
|
x
|
|
s,.[^\']*,,
|
|
|
|
/^'/b break
|
|
/^\\/{
|
|
H
|
|
x
|
|
s,\n\(.\).*,\1,
|
|
x
|
|
s/.//
|
|
}
|
|
b single
|
|
}
|
|
|
|
/^\/\*/{
|
|
s/.//
|
|
:ccom
|
|
s,^.[^*]*,,
|
|
/^$/ n
|
|
/^\*\//{
|
|
s/..//
|
|
b loop
|
|
}
|
|
b ccom
|
|
}
|
|
|
|
:break
|
|
H
|
|
x
|
|
s,\n\(.[^"'/]*\).*,\1,
|
|
x
|
|
s/.[^"'/]*//
|
|
b loop
|