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.
|
290: Add sysconf cache handling.
|
||||||
291: Export aligned_alloc, at_quick_exit, quick_exit.
|
291: Export aligned_alloc, at_quick_exit, quick_exit.
|
||||||
292: Export rpmatch.
|
292: Export rpmatch.
|
||||||
|
293: Convert utmpname/utmpxname to int.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull,
|
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull,
|
||||||
sigaltstack, sethostname. */
|
sigaltstack, sethostname. */
|
||||||
|
|
||||||
#define CYGWIN_VERSION_API_MAJOR 0
|
#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
|
/* There is also a compatibity version number associated with the
|
||||||
shared memory regions. It is incremented when incompatible
|
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 struct utmp *pututline (const struct utmp *);
|
||||||
extern void endutent (void);
|
extern void endutent (void);
|
||||||
extern void setutent (void);
|
extern void setutent (void);
|
||||||
extern void utmpname (const char *);
|
extern int utmpname (const char *);
|
||||||
|
|
||||||
void login (const struct utmp *);
|
void login (const struct utmp *);
|
||||||
int logout (const char *);
|
int logout (const char *);
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#include <cygwin/utmp.h>
|
#include <cygwin/utmp.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
|
||||||
|
#define _PATH_UTMPX _PATH_UTMP
|
||||||
#define UTMPX_FILE _PATH_UTMP
|
#define UTMPX_FILE _PATH_UTMP
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#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 *getutxline (const struct utmpx *line);
|
||||||
extern struct utmpx *pututxline (const struct utmpx *utmpx);
|
extern struct utmpx *pututxline (const struct utmpx *utmpx);
|
||||||
extern void setutxent (void);
|
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);
|
extern void updwtmpx (const char *file, const struct utmpx *utmpx);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -42,6 +42,9 @@ What changed:
|
|||||||
- Fix (numeric and monetary) decimal point and thousands separator in
|
- Fix (numeric and monetary) decimal point and thousands separator in
|
||||||
fa_IR and ps_AF locales to be aligned with Linux.
|
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
|
Bug Fixes
|
||||||
---------
|
---------
|
||||||
|
@ -3955,7 +3955,7 @@ endutent ()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void
|
extern "C" int
|
||||||
utmpname (const char *file)
|
utmpname (const char *file)
|
||||||
{
|
{
|
||||||
__try
|
__try
|
||||||
@ -3964,13 +3964,17 @@ utmpname (const char *file)
|
|||||||
{
|
{
|
||||||
endutent ();
|
endutent ();
|
||||||
utmp_file = strdup (file);
|
utmp_file = strdup (file);
|
||||||
debug_printf ("New UTMP file: %s", utmp_file);
|
if (utmp_file)
|
||||||
return;
|
{
|
||||||
|
debug_printf ("New UTMP file: %s", utmp_file);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
__except (NO_ERROR) {}
|
__except (EFAULT) {}
|
||||||
__endtry
|
__endtry
|
||||||
debug_printf ("Invalid file");
|
debug_printf ("Setting UTMP file failed");
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_ALIAS (utmpname, utmpxname)
|
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.
|
fa_IR and ps_AF locales to be aligned with Linux.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
|
|
||||||
|
<listitem><para>
|
||||||
|
utmpname/utmpxname are now defined as int functions as on Linux.
|
||||||
|
</para></listitem>
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user