bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

canon-host.c disagreement (gnulib vs coreutils); zero initializers


From: Paul Eggert
Subject: canon-host.c disagreement (gnulib vs coreutils); zero initializers
Date: Thu, 23 Jun 2005 16:22:35 -0700
User-agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.4 (gnu/linux)

I noticed the following disagreement between gnulib and coreutils:

--- gnulib/lib/canon-host.c     2005-05-13 23:03:57 -0700
+++ cu/lib/canon-host.c 2005-05-14 00:58:06 -0700
@@ -54,8 +54,9 @@ canon_host (char const *host)
 
 #if HAVE_GETADDRINFO
   {
-    struct addrinfo hint = { 0 };
+    struct addrinfo hint;
     struct addrinfo *res = NULL;
+    memset (&hint, 0, sizeof hint);
     hint.ai_flags = AI_CANONNAME;
     if (getaddrinfo (host, NULL, &hint, &res) == 0)
       {

I assume that this was due to a warning from "gcc -W" about a missing
initializer.  But I prefer the gnulib style: it's easier to read.
How about if we just ask people to not use "gcc -W"?

While we're on the subject, I've noticed that glibc is now using this style:

    struct addrinfo hint = { 0, };

The extra comma is an indication to the reader that we know there are
missing zeros, and don't care.  This style can be used for any object
in C89, e.g.:

    mbstate_t initial_state = { 0, };

where we don't know whether mbstate_t is a structure, or an integer,
and the code works either way.

So, I propose that we make the following patch to gnulib, and propagate
this to coreutils:

2005-06-23  Paul Eggert  <address@hidden>

        * canon-host.c (canon-host): Append trailing "," to 0 in
        initializer of struct addrinfo, as an indication that we don't
        care how many members the structure has.

--- gnulib/lib/canon-host.c     2005-05-13 23:03:57 -0700
+++ fixed-gnulib/lib/canon-host.c       2005-06-23 16:06:21 -0700
@@ -54,7 +54,7 @@ canon_host (char const *host)
 
 #if HAVE_GETADDRINFO
   {
-    struct addrinfo hint = { 0 };
+    struct addrinfo hint = { 0, };
     struct addrinfo *res = NULL;
     hint.ai_flags = AI_CANONNAME;
     if (getaddrinfo (host, NULL, &hint, &res) == 0)




reply via email to

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