On 04/16/2013 07:41 AM, Osier Yang wrote:
With this patch, include "libvirt.h" and
"virterror.h" in "" form
is only allowed for "internal.h". And only the external tools
(examples|tools|python|include/libvirt) can include the two headers
in <> form.
---
Hmm. It sounds like you want two syntax checks after all, in order to
allow <> but not "" in the subdirectories; but it can still be done in
two rules instead of four.
cfg.mk | 30 ++++++++++++++++++++++++++----
include/libvirt/libvirt-lxc.h | 2 +-
include/libvirt/libvirt-qemu.h | 2 +-
python/libvirt-lxc-override.c | 4 ++--
python/libvirt-override.c | 4 ++--
python/libvirt-qemu-override.c | 4 ++--
python/typewrappers.h | 4 ++--
tests/shunloadhelper.c | 2 --
8 files changed, 36 insertions(+), 16 deletions(-)
diff --git a/cfg.mk b/cfg.mk
index cb8079c..98c7e40 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -748,14 +748,30 @@ sc_prohibit_duplicate_header:
sc_prohibit_include_libvirt_h:
I'd name this sc_prohibit_include_libvirt_quote (that affects patch 6);
see below for why...
@prohibit='^# *include
*"libvirt/libvirt\.h"' \
in_vc_files='\.[ch]$$' \
- halt='Do not include libvirt/libvirt.h' \
+ halt='Do not include libvirt/libvirt.h in internal source' \
Squash this wording into patch 6.
$(_sc_search_regexp)
# Don't include "libvirt/virterror.h" in "" form.
sc_prohibit_include_virterror_h:
@prohibit='^# *include *"libvirt/virterror\.h"' \
in_vc_files='\.[ch]$$' \
- halt='Do not include libvirt/virterror.h' \
+ halt='Do not include libvirt/virterror.h in internal source' \
+ $(_sc_search_regexp)
+
+# Don't include "libvirt/libvirt.h" in <> form. Except external
tools, e.g.
+# python binding, examples and tools subdirectories.
+sc_prohibit_include_libvirt_h_1:
...here's why. The _1 suffix doesn't describe anything. So I'd name
this sc_prohibit_include_libvirt_brackets
+ @prohibit='^# *include *<libvirt/libvirt\.h>' \
+ in_vc_files='\.[ch]$$' \
+ halt='Do not include libvirt/libvirt.h in internal source' \
+ $(_sc_search_regexp)
+
+# Don't include "libvirt/virterror.h" in <> form. Except external
tools, e.g.
+# python binding, examples and tools subdirectories.
+sc_prohibit_include_virterror_h_1:
+ @prohibit='^# *include *<libvirt/virterror\.h>' \
+ in_vc_files='\.[ch]$$' \
+ halt='Do not include libvirt/virterror.h in internal source' \
$(_sc_search_regexp)
Again, these two can be merged into one.
# We don't use this feature of maint.mk.
@@ -913,7 +929,13 @@ exclude_file_name_regexp--sc_correct_id_types = \
exclude_file_name_regexp--sc_m4_quote_check = m4/virt-lib.m4
exclude_file_name_regexp--sc_prohibit_include_libvirt_h = \
-
^(src/internal\.h)|(include/libvirt/libvirt-(lxc|qemu)\.h)|(python/libvirt-override\.c)|(python/typewrappers\.h)$$
+ ^src/internal\.h$$
exclude_file_name_regexp--sc_prohibit_include_virterror_h = \
-
^(src/internal\.h)|(python/libvirt-|(lxc|qemu)-override\.c)|(python/typewrappers\.h)$$
+ ^src/internal\.h$$
+
+exclude_file_name_regexp--sc_prohibit_include_libvirt_h_1 = \
+ ^(examples/|tools/|python/|include/libvirt/)
+
+exclude_file_name_regexp--sc_prohibit_include_virterror_h_1 = \
+ ^(examples/|tools/|python/|include/libvirt/)
Maybe it's even worth merging 6 and 7 into a single patch, or splitting
the cleanup into a first patch, and the syntax check into a second.
+++ b/tests/shunloadhelper.c
@@ -28,8 +28,6 @@
#include <config.h>
#include "internal.h"
-#include <libvirt/libvirt.h>
-#include <libvirt/virterror.h>
#include <stdlib.h>
static void shunloadError(void *userData ATTRIBUTE_UNUSED,
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org