[libvirt] [PATCH 01/10] cleanup: Remove the duplicate header
Eric Blake
eblake at redhat.com
Wed Apr 17 02:50:27 UTC 2013
On 04/16/2013 07:41 AM, Osier Yang wrote:
> Detected by a simple Shell script:
>
> for i in $(find -type f -name "*.[ch]" | grep -v gnulib); do
You can limit things to version-controlled files a bit faster with:
for i in $(git ls-files -- '*.[ch]'); do
> awk 'BEGIN {
> FS=" "
> fail=0
> }
> /^# *include.*\.h[">]$/{
This pattern misses files that include a header with a comment saying
why, such as this one:
src/util/virxml.c:#include <math.h> /* for isnan() */
> arr[$NF]++
This doesn't catch duplication between "" and <> in the same file, since
it includes the delimiter as part of the key name. Slightly more
powerful is:
/# *include/{
match($0, /["<][^">]*[">]/)
arr[substr($0, RSTART+1, RLENGTH-2)]++
}
which uses the array name of just the filename regardless of delimiters.
> }
> END {
> for (key in arr) {
> if (arr[key] > 1) {
> fail=1
> printf("%d %s\n", arr[key], key)
> }
> }
> if (fail == 1)
> exit 1
> }' $i
>
> if test $? != 0; then
> echo "Duplicate header(s) in $i"
> fi
> done;
>
> A later patch will add the syntax-check to avoid duplicate
> headers.
> ---
What you have works, but with my improvements to the script, I still see
this after your patch:
2 testutils.h
Duplicate header(s) in ./tests/qemumonitortest.c
2 testutils.h
Duplicate header(s) in ./tests/qemuxmlnstest.c
2 testutils.h
Duplicate header(s) in ./tests/qemuxml2argvtest.c
2 testutils.h
Duplicate header(s) in ./tests/qemuargv2xmltest.c
2 testutils.h
Duplicate header(s) in ./tests/shunloadtest.c
2 testutils.h
Duplicate header(s) in ./tests/vmx2xmltest.c
2 testutils.h
Duplicate header(s) in ./tests/domainsnapshotxml2xmltest.c
2 testutils.h
Duplicate header(s) in ./tests/qemuhelptest.c
2 testutils.h
Duplicate header(s) in ./tests/lxcxml2xmltest.c
2 testutils.h
Duplicate header(s) in ./tests/xml2vmxtest.c
2 testutils.h
Duplicate header(s) in ./tests/qemuxml2xmltest.c
2 testutils.h
Duplicate header(s) in ./tests/esxutilstest.c
2 testutils.h
Duplicate header(s) in ./tests/openvzutilstest.c
2 libxl.h
Duplicate header(s) in ./src/libxl/libxl_driver.c
testutils.h is cleaned up in patch 2; but the duplicate libxl.h in
libxl_driver.c is still buggy.
ACK with libxl_driver.c also fixed (you can touch up the commit message
if you like, but that's not required; as long as we later get the syntax
check right).
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 621 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130416/1cbfcd3c/attachment-0001.sig>
More information about the libvir-list
mailing list