[libvirt] [PATCH 02/15] Remove unneeded curly brackets around oneline code blocks in src/conf/
Martin Kletzander
mkletzan at redhat.com
Fri Nov 7 16:02:17 UTC 2014
On Fri, Nov 07, 2014 at 11:11:27AM +0100, Daniel P. Berrange wrote:
>On Fri, Nov 07, 2014 at 11:09:11AM +0100, Eric Blake wrote:
>> On 11/06/2014 05:38 PM, Martin Kletzander wrote:
>> > As stated in our contributor guidelines, we don't want curly brackets
>> > around oneline code block (with some exceptions).
>> >
>> > Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
>> > ---
>>
>> > +++ b/src/conf/capabilities.c
>> > @@ -219,9 +219,8 @@ virCapabilitiesDispose(void *object)
>> > VIR_FREE(caps->host.migrateTrans[i]);
>> > VIR_FREE(caps->host.migrateTrans);
>> >
>> > - for (i = 0; i < caps->host.nsecModels; i++) {
>> > + for (i = 0; i < caps->host.nsecModels; i++)
>> > virCapabilitiesClearSecModel(&caps->host.secModels[i]);
>> > - }
>>
>> Conversions like this make sense...
>>
>> > @@ -138,9 +138,9 @@ virDevicePCIAddressEqual(virDevicePCIAddress *addr1,
>> > if (addr1->domain == addr2->domain &&
>> > addr1->bus == addr2->bus &&
>> > addr1->slot == addr2->slot &&
>> > - addr1->function == addr2->function) {
>> > + addr1->function == addr2->function)
>> > return true;
>> > - }
>>
>> Conversions like this are a little harder to read (that is, any time the
>> 'if' condition extends over multiple lines, but there is exactly four
>> space indentation of the condition, it's visually hard to see where the
>> multi-line condition ends and the loop body begins). The opening { is
>> hard to see either way, but seeing the closing } is my visual clue that
>> "yes, the last line of this blob of code is not part of the 'if' but the
>> one-line body". I'm not opposed to your removal of {}, but wonder if we
>> should rethink our style to recommend keeping the {} if the 'if'
>> expression is multiline.
>>
>> Besides, it is easier to write a syntax check that checks for one-line
>> 'if' expressions (that's how I wrote my checks for mis-matched if{}else;
>> and if;else{}) than it is for multi-line if expressions. So
>> distinguishing between the two types may make it easier to write a
>> syntax check and enforce a consistent style.
>>
>> > @@ -3762,23 +3759,22 @@ virDomainDeviceInfoParseXML(xmlNodePtr node,
>> > if (cur->type == XML_ELEMENT_NODE) {
>> > if (alias == NULL &&
>> > !(flags & VIR_DOMAIN_XML_INACTIVE) &&
>> > - xmlStrEqual(cur->name, BAD_CAST "alias")) {
>> > + xmlStrEqual(cur->name, BAD_CAST "alias"))
>> > alias = cur;
>>
>> This one is multi-line with no indentation to help...
>>
>> > - } else if (address == NULL &&
>> > - xmlStrEqual(cur->name, BAD_CAST "address")) {
>> > + else if (address == NULL &&
>> > + xmlStrEqual(cur->name, BAD_CAST "address"))
>> > address = cur;
>>
>> ...while this one has indentation help because of the 'else if'; see the
>> difference in spotting the one-line statement?
>>
>> > @@ -6879,9 +6870,8 @@ virDomainActualNetDefParseXML(xmlNodePtr node,
>> > if (!(actual->virtPortProfile
>> > = virNetDevVPortProfileParse(virtPortNode,
>> > VIR_VPORT_XML_REQUIRE_ALL_ATTRIBUTES |
>> > - VIR_VPORT_XML_REQUIRE_TYPE))) {
>> > + VIR_VPORT_XML_REQUIRE_TYPE)))
>> > goto error;
>> > - }
>>
>> And this is an example of a multi-line 'if' expression, but it is
>> indented (both because the '=' is split over lines, and because the last
>> part of the expression is a function call split over lines), so the
>> one-liner is easy to spot here.
>>
>> But my earlier claim that one-liner 'if' expressions are easier to grep
>> for than multi-line 'if' may mean that a syntax check would not flag
>> this one as a place to remove the {}. Maybe it doesn't matter.
>> (Ideally, if we could figure out how to make GNU indent or some other
>> code prettifier enforce a style, we'd use that instead of syntax check
>> grep rules).
>
>Yeah, I'd really like to be able to run something like GNU indent over
>the code and check input==output, but there were a couple of rules in
>our coding style that indent didn't appear to support
>
I tried playing with the indent tool many times but I've never got to
any better situation than where we were at the time I started hacking
on libvirt. Maybe if we can adjust our rules to match whatever indent
supports, although I don't remember what the particular problems were.
Martin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20141107/a3b1d45a/attachment-0001.sig>
More information about the libvir-list
mailing list