Fix a few glitches in getlogin_r.
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 25 May 2005 19:14:06 +0000 (19:14 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 25 May 2005 19:14:06 +0000 (19:14 +0000)
ChangeLog
lib/ChangeLog
lib/getlogin_r.c
lib/getlogin_r.h
m4/ChangeLog

index 7d6aca4..2a5cb3a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,7 @@
 2005-05-25  Derek Price  <derek@ximbiot.com>
            Paul Eggert  <eggert@cs.ucla.edu>
 
-       * lib/getlogin_r.c, lib/getlogin_r.h, m4/getlogin_r.m4,
-       modules/getlogin_r: New files.
+       * modules/getlogin_r: New files.
 
 2005-05-18  Derek Price  <derek@ximbiot.com>
 
index f938e2d..b19e466 100644 (file)
@@ -1,3 +1,8 @@
+2005-05-25  Derek Price  <derek@ximbiot.com>
+           Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getlogin_r.c, getlogin_r.h: New files.
+
 2005-05-22  Bruno Haible  <bruno@clisp.org>
 
        * minmax.h: Include <limits.h> only when it defines MIN, MAX.
index 5683504..c02db2f 100644 (file)
@@ -18,7 +18,9 @@
 
 /* written by Paul Eggert and Derek Price */
 
-#include <config.h>
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
 
 #include "getlogin_r.h"
 
@@ -38,22 +40,15 @@ int
 getlogin_r (char *name, size_t size)
 {
   char *n;
-  int save_errno = errno;
+  size_t nlen;
 
   errno = 0;
   n = getlogin ();
-  if (n)
-    {
-      size_t nlen = strlen (n);
-      if (nlen < size)
-        {
-          memcpy (name, n, nlen + 1);
-          return 0;
-        }
-      errno = ERANGE;
-    }
-
-  if (errno) return errno;
-  errno = save_errno;
-  return -1;
+  if (!n)
+    return errno ? errno : ENOENT;
+  nlen = strlen (n);
+  if (size <= nlen)
+    return ERANGE;
+  memcpy (name, n, nlen + 1);
+  return 0;
 }
index d6f31be..90df726 100644 (file)
@@ -33,5 +33,6 @@
 
    See <http://www.opengroup.org/onlinepubs/009695399/functions/getlogin.html>.
  */
+# include <stddef.h>
 int getlogin_r (char *name, size_t size);
 #endif
index 930047e..94fc9c1 100644 (file)
@@ -1,3 +1,8 @@
+2005-05-25  Derek Price  <derek@ximbiot.com>
+           Paul Eggert  <eggert@cs.ucla.edu>
+
+       * getlogin_r.m4: New files.
+
 2005-05-22  Bruno Haible  <bruno@clisp.org>
 
        * minmax.m4: New file.
        * uintmax_t.m4: New file.
        * Makefile.am (EXTRA_DIST): Add inttypes_h.m4 and uintmax_t.m4.
 
-Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
   Free Software Foundation, Inc.
 Copying and distribution of this file, with or without modification,
-are permitted provided the copyright notice and this notice are preserved.
\ No newline at end of file
+are permitted provided the copyright notice and this notice are preserved.