[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: coding standards
From: |
don fong |
Subject: |
Re: coding standards |
Date: |
Sun, 4 Mar 2018 17:13:19 -0800 |
Clark, thanks for your answer.
I use ``if (flag)'' only when `flag' is a boolean.
but in this case, it *is* a boolean, as i stated, and as can be seen in
subst.c:
+ {
+ if (check_nullness)
+ report_error (_("%s: parameter null or not set"), name);
+ else
+ report_error (_("%s: parameter is not set"), name);
+ }
On Sun, Mar 4, 2018 at 4:43 AM, Clark Wang <dearvoid@gmail.com> wrote:
> On Sun, Mar 4, 2018 at 5:15 AM, don fong <dfong@dfong.com> wrote:
>
>> admittedly this is a very minor point, but i am curious. this has to do
>> with coding standards for bash source.
>>
>> consider an if statement in C (or bash, for that matter). which is form
>> is
>> better?
>>
>> Form (A):
>>
>> if (flag)
>> X();
>> else
>> Y();
>>
>> Form (B):
>>
>> if (flag == 0)
>> Y();
>> else
>> X();
>>
>> they are functionally equivalent. but IMHO (A) is slightly more readable.
>> first because flag (in this case) is intended to be a boolean value not
>> arithmetic, and second because it's simpler to think about an if when the
>> condition is positive.
>>
>> this is what i'd say if (B) were under code review.
>>
>> i submitted a patch with code in form (A). it was added to the code base
>> in form (B). was there a good reason for this mutation?
>>
>
> I believe the main reason is to keep consistent with existing code.
>
> I used to use ``if (flag)'' but these days I'd prefer ``if (flag != /* or
> == */ 0)'' which is explicit that ``flag'' is not a boolean var. I use
> ``if (flag)'' only when `flag' is a boolean. It's similar I used to write
> ``if (ptr)'' but now I prefer ``if (ptr != NULL)'' which is explicit that
> `ptr' is a pointer.
>
Re: coding standards, L A Walsh, 2018/03/06