]> sourceware.org Git - newlib-cygwin.git/commitdiff
Convert utmp{x}name to int, return useful value. Define _PATH_UTMPX
authorCorinna Vinschen <corinna@vinschen.de>
Thu, 7 Jan 2016 14:40:40 +0000 (15:40 +0100)
committerCorinna Vinschen <corinna@vinschen.de>
Thu, 7 Jan 2016 14:40:40 +0000 (15:40 +0100)
* syscalls.cc (utmpname): Convert to int.  Return 0 if strdup
worked, -1 otherwise.
* include/utmpx.h (_PATH_UTMPX): Define as _PATH_UTMP.
(utmpxname): Declare as int function.
* include/sys/utmp.h (utmpname): Ditto.
* include/cygwin/version.h: Bump API minor version.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
winsup/cygwin/include/cygwin/version.h
winsup/cygwin/include/sys/utmp.h
winsup/cygwin/include/utmpx.h
winsup/cygwin/release/2.4.0
winsup/cygwin/syscalls.cc
winsup/doc/new-features.xml

index c5b75eede6116614c16bc79dd0ab545688d94f52..5d79cc3a834fee69e64d22cf2ef24f325d5c6c80 100644 (file)
@@ -474,13 +474,14 @@ details. */
       290: Add sysconf cache handling.
       291: Export aligned_alloc, at_quick_exit, quick_exit.
       292: Export rpmatch.
+      293: Convert utmpname/utmpxname to int.
      */
 
      /* Note that we forgot to bump the api for ualarm, strtoll, strtoull,
        sigaltstack, sethostname. */
 
 #define CYGWIN_VERSION_API_MAJOR 0
-#define CYGWIN_VERSION_API_MINOR 292
+#define CYGWIN_VERSION_API_MINOR 293
 
      /* There is also a compatibity version number associated with the
        shared memory regions.  It is incremented when incompatible
index 8a63b348b88c1ac6bbec27af1faa48c2404d1f28..b14fc0847c17986e6c54ce6d2f9361d8fdb85c89 100644 (file)
@@ -40,7 +40,7 @@ extern struct utmp *getutline (const struct utmp *);
 extern struct utmp *pututline (const struct utmp *);
 extern void endutent (void);
 extern void setutent (void);
-extern void utmpname (const char *);
+extern int utmpname (const char *);
 
 void login (const struct utmp *);
 int logout (const char *);
index 548ad80a3767536c07a42775a72c4b7e6cd5273f..53b04eda85831d25e8ef14b39b9d8bba323c29e3 100644 (file)
@@ -12,6 +12,7 @@
 #include <cygwin/utmp.h>
 #include <sys/time.h>
 
+#define _PATH_UTMPX _PATH_UTMP
 #define UTMPX_FILE _PATH_UTMP
 
 #ifdef __cplusplus
@@ -46,7 +47,7 @@ extern struct utmpx *getutxid (const struct utmpx *id);
 extern struct utmpx *getutxline (const struct utmpx *line);
 extern struct utmpx *pututxline (const struct utmpx *utmpx);
 extern void setutxent (void);
-extern void utmpxname (const char *file);
+extern int utmpxname (const char *file);
 extern void updwtmpx (const char *file, const struct utmpx *utmpx);
 
 #ifdef __cplusplus
index 918fd5ca6deede0b7ea8363f53a82eb9156f4f93..4feff5b8062698c047b1e079e00bdf14e0846b94 100644 (file)
@@ -42,6 +42,9 @@ What changed:
 - Fix (numeric and monetary) decimal point and thousands separator in
   fa_IR and ps_AF locales to be aligned with Linux.
 
+- utmpname/utmpxname are now defined as int functions as on Linux.
+  Addresses: https://cygwin.com/ml/cygwin/2015-12/msg00320.html
+
 
 Bug Fixes
 ---------
index 9d01955cfcc1c988347c2b2d5e4ad875515001b8..3dd6af1eeabe1dd39d5a041b9c858295d502733d 100644 (file)
@@ -3955,7 +3955,7 @@ endutent ()
     }
 }
 
-extern "C" void
+extern "C" int
 utmpname (const char *file)
 {
   __try
@@ -3964,13 +3964,17 @@ utmpname (const char *file)
        {
          endutent ();
          utmp_file = strdup (file);
-         debug_printf ("New UTMP file: %s", utmp_file);
-         return;
+         if (utmp_file)
+           {
+             debug_printf ("New UTMP file: %s", utmp_file);
+             return 0;
+           }
        }
     }
-  __except (NO_ERROR) {}
+  __except (EFAULT) {}
   __endtry
-  debug_printf ("Invalid file");
+  debug_printf ("Setting UTMP file failed");
+  return -1;
 }
 
 EXPORT_ALIAS (utmpname, utmpxname)
index ff4b66f757249334656ab63af9c9a7d5a64b8f75..b4b8435dfbe8bfc0c575fd9a4f1bcace3ce313ea 100644 (file)
@@ -52,6 +52,10 @@ Fix (numeric and monetary) decimal point and thousands separator in
 fa_IR and ps_AF locales to be aligned with Linux.
 </para></listitem>
 
+<listitem><para>
+utmpname/utmpxname are now defined as int functions as on Linux.
+</para></listitem>
+
 </itemizedlist>
 
 </sect2>
This page took 0.046851 seconds and 5 git commands to generate.