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