test-userspec.c: avoid compiler warnings
authorJim Meyering <meyering@redhat.com>
Tue, 26 Jan 2010 08:51:26 +0000 (09:51 +0100)
committerJim Meyering <meyering@redhat.com>
Tue, 26 Jan 2010 08:51:26 +0000 (09:51 +0100)
* tests/test-userspec.c (main): Avoid shadowing ("uid"),
and "initialization discards qualifiers..." warnings.
Put the first "uid" in its own scope, and make char* members "const".

ChangeLog
tests/test-userspec.c

index 2ae8381..62dcf87 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-01-26  Jim Meyering  <meyering@redhat.com>
+
+       test-userspec.c: avoid compiler warnings
+       * tests/test-userspec.c (main): Avoid shadowing ("uid"),
+       and "initialization discards qualifiers..." warnings.
+       Put the first "uid" in its own scope, and make char* members "const".
+
 2010-01-25  Bruno Haible  <bruno@clisp.org>
 
        gnulib-tool: Make warning diagnostics consistent.
index 3e101f3..17428f2 100644 (file)
 
 struct test
 {
-  char *in;
+  const char *in;
   uid_t uid;
   gid_t gid;
-  char *user_name;
-  char *group_name;
-  char *result;
+  const char *user_name;
+  const char *group_name;
+  const char *result;
 };
 
 static struct test T[] =
@@ -101,36 +101,41 @@ main (void)
 {
   unsigned int i;
   int fail = 0;
-  uid_t uid;
 
   /* Find a UID that has both a user name and login group name,
      but skip UID 0.  */
-  for (uid = 1200; 0 < uid; uid--)
-    {
-      struct group *gr;
-      struct passwd *pw = getpwuid (uid);
-      unsigned int j;
-      size_t len;
-      if (!pw || !pw->pw_name || !(gr = getgrgid (pw->pw_gid)) || !gr->gr_name)
-        continue;
-      j = ARRAY_CARDINALITY (T) - 2;
-      assert (T[j].in == NULL);
-      assert (T[j+1].in == NULL);
-      len = strlen (pw->pw_name);
-
-      /* Store "username:" in T[j].in.  */
-      T[j].in = xmalloc (len + 1 + 1);
-      memcpy (T[j].in, pw->pw_name, len);
-      T[j].in[len] = ':';
-      T[j].in[len+1] = '\0';
-
-      T[j].uid = uid;
-      T[j].gid = gr->gr_gid;
-      T[j].user_name = xstrdup (pw->pw_name);
-      T[j].group_name = xstrdup (gr->gr_name);
-      T[j].result = NULL;
-      break;
-    }
+  {
+    uid_t uid;
+    for (uid = 1200; 0 < uid; uid--)
+      {
+        struct group *gr;
+        struct passwd *pw = getpwuid (uid);
+        unsigned int j;
+        size_t len;
+        if (!pw || !pw->pw_name || !(gr = getgrgid (pw->pw_gid)) || !gr->gr_name)
+          continue;
+        j = ARRAY_CARDINALITY (T) - 2;
+        assert (T[j].in == NULL);
+        assert (T[j+1].in == NULL);
+        len = strlen (pw->pw_name);
+
+        /* Store "username:" in T[j].in.  */
+        {
+          char *t = xmalloc (len + 1 + 1);
+          memcpy (t, pw->pw_name, len);
+          t[len] = ':';
+          t[len+1] = '\0';
+          T[j].in = t;
+        }
+
+        T[j].uid = uid;
+        T[j].gid = gr->gr_gid;
+        T[j].user_name = xstrdup (pw->pw_name);
+        T[j].group_name = xstrdup (gr->gr_name);
+        T[j].result = NULL;
+        break;
+      }
+  }
 
   for (i = 0; T[i].in; i++)
     {