Patchwork checkpatch: don't error out on },{ lines

login
register
mail settings
Submitter Alexander Graf
Date June 29, 2011, 6:09 a.m.
Message ID <1309327773-18966-1-git-send-email-agraf@suse.de>
Download mbox | patch
Permalink /patch/102756/
State New
Headers show

Comments

Alexander Graf - June 29, 2011, 6:09 a.m.
When having code like this:

    static PCIDeviceInfo piix_ide_info[] = {
        {
            .qdev.name    = "piix3-ide",
            .qdev.size    = sizeof(PCIIDEState),
            .qdev.no_user = 1,
            .no_hotplug   = 1,
            .init         = pci_piix_ide_initfn,
            .vendor_id    = PCI_VENDOR_ID_INTEL,
            .device_id    = PCI_DEVICE_ID_INTEL_82371SB_1,
            .class_id     = PCI_CLASS_STORAGE_IDE,
        },{
            .qdev.name    = "piix4-ide",
            .qdev.size    = sizeof(PCIIDEState),
            .qdev.no_user = 1,
            .no_hotplug   = 1,
            .init         = pci_piix_ide_initfn,
            .vendor_id    = PCI_VENDOR_ID_INTEL,
            .device_id    = PCI_DEVICE_ID_INTEL_82371AB,
            .class_id     = PCI_CLASS_STORAGE_IDE,
        },{
            /* end of list */
        }
    };

checkpatch currently errors out, claiming that spaces need to follow
commas. However, this particular style of defining structs is pretty
common in qemu code and very readable. So let's declare it as supported
for the above case.

Reported-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 scripts/checkpatch.pl |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
Stefan Hajnoczi - June 30, 2011, 1:08 p.m.
On Wed, Jun 29, 2011 at 7:09 AM, Alexander Graf <agraf@suse.de> wrote:
> When having code like this:
>
>    static PCIDeviceInfo piix_ide_info[] = {
>        {
>            .qdev.name    = "piix3-ide",
>            .qdev.size    = sizeof(PCIIDEState),
>            .qdev.no_user = 1,
>            .no_hotplug   = 1,
>            .init         = pci_piix_ide_initfn,
>            .vendor_id    = PCI_VENDOR_ID_INTEL,
>            .device_id    = PCI_DEVICE_ID_INTEL_82371SB_1,
>            .class_id     = PCI_CLASS_STORAGE_IDE,
>        },{
>            .qdev.name    = "piix4-ide",
>            .qdev.size    = sizeof(PCIIDEState),
>            .qdev.no_user = 1,
>            .no_hotplug   = 1,
>            .init         = pci_piix_ide_initfn,
>            .vendor_id    = PCI_VENDOR_ID_INTEL,
>            .device_id    = PCI_DEVICE_ID_INTEL_82371AB,
>            .class_id     = PCI_CLASS_STORAGE_IDE,
>        },{
>            /* end of list */
>        }
>    };
>
> checkpatch currently errors out, claiming that spaces need to follow
> commas. However, this particular style of defining structs is pretty
> common in qemu code and very readable. So let's declare it as supported
> for the above case.
>
> Reported-by: Kevin Wolf <kwolf@redhat.com>
> Signed-off-by: Alexander Graf <agraf@suse.de>
> ---
>  scripts/checkpatch.pl |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)

Good idea.  I was going to go and change qemu-config.c but updating
checkpatch.pl probably makes more sense.

Stefan

Patch

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 075b614..70a2111 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2068,8 +2068,10 @@  sub process {
 					}
 
 				# , must have a space on the right.
+                                # not required when having a single },{ on one line
 				} elsif ($op eq ',') {
-					if ($ctx !~ /.x[WEC]/ && $cc !~ /^}/) {
+					if ($ctx !~ /.x[WEC]/ && $cc !~ /^}/ &&
+                                            ($elements[$n] . $elements[$n + 2]) !~ " *}{") {
 						ERROR("space required after that '$op' $at\n" . $hereptr);
 					}