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  <[EMAIL PROTECTED]>

        * 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)


_______________________________________________
bug-gnulib mailing list
bug-gnulib@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-gnulib

Reply via email to