[libvirt] [PATCH] internal: Use g_strcmp0 in STR(N)EQ_NULLABLE

Laine Stump laine at laine.org
Thu Oct 24 18:06:26 UTC 2019


On 10/24/19 10:31 AM, Peter Krempa wrote:
> On Thu, Oct 24, 2019 at 16:22:09 +0200, Pavel Hrdina wrote:
>> On Thu, Oct 24, 2019 at 04:12:00PM +0200, Peter Krempa wrote:
>>> Signed-off-by: Peter Krempa <pkrempa at redhat.com>
>>> ---
>>>   src/internal.h | 6 ++----
>>>   1 file changed, 2 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/src/internal.h b/src/internal.h
>>> index 5b0a2335f5..0ff9f496ac 100644
>>> --- a/src/internal.h
>>> +++ b/src/internal.h
>>> @@ -86,10 +86,8 @@
>>>   #define STRCASEPREFIX(a, b) (c_strncasecmp(a, b, strlen(b)) == 0)
>>>   #define STRSKIP(a, b) (STRPREFIX(a, b) ? (a) + strlen(b) : NULL)
>>>
>>> -#define STREQ_NULLABLE(a, b) \
>>> -    ((a) ? (b) && STREQ((a), (b)) : !(b))
>>> -#define STRNEQ_NULLABLE(a, b) \
>>> -    ((a) ? !(b) || STRNEQ((a), (b)) : !!(b))
>>> +#define STREQ_NULLABLE(a, b) (g_strcmp0(a, b) == 0)
>>> +#define STRNEQ_NULLABLE(a, b) (g_strcmp0(a, b) != 0)
>> Why not use g_strcmp0 directly?
> Because I don't really care about replacing everyting.


Yeah, on one hand using the glib functions directly might make it easier 
for someone familiar with glib to understand the code when just glancing 
at it. On the other hand, replacing all these macros with direct calls 
to glib seems like it's undoing a lot of work, and creating 
code-churn/obscuring true "git blame", and will just need to be done 
again in 2029 when glib is no longer the flavor of the day, and we want 
to convert everything to use "hlib" or "ilib" (or maybe by then it will 
be "postapocalypticlib" - think about it, having all our code sprinkled 
with postapocalyptic_dystopian_strcmp0() will be *so* future proof!)


(The preceding paragraph was only half sarcastic, same for this sentence.)


>
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
>




More information about the libvir-list mailing list