bug-bash
[Top][All Lists]
Advanced

[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.
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]