Convert utmp{x}name to int, return useful value. Define _PATH_UTMPX
* 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>
This commit is contained in:
parent
b8f9d8de2c
commit
80a800978b
@ -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
|
||||
|
@ -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 *);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
---------
|
||||
|
@ -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)
|
||||
|
@ -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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user