about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--include/utmp.h3
-rw-r--r--include/utmpx.h14
2 files changed, 12 insertions, 5 deletions
diff --git a/include/utmp.h b/include/utmp.h
index b357ac8c..e9ba23e2 100644
--- a/include/utmp.h
+++ b/include/utmp.h
@@ -10,6 +10,7 @@ extern "C" {
 #define ACCOUNTING 9
 #define UT_NAMESIZE 32
 #define UT_HOSTSIZE 256
+#define UT_LINESIZE 32
 
 struct lastlog {
 	time_t ll_time;
@@ -22,6 +23,8 @@ struct lastlog {
 #define ut_addr ut_addr_v6[0]
 #define utmp utmpx
 #define utmpname(x) (-1)
+#define e_exit __e_exit
+#define e_termination __e_termination
 
 void         endutent(void);
 struct utmp *getutent(void);
diff --git a/include/utmpx.h b/include/utmpx.h
index fd5f515a..f0c3b013 100644
--- a/include/utmpx.h
+++ b/include/utmpx.h
@@ -5,6 +5,8 @@
 extern "C" {
 #endif
 
+#include <features.h>
+
 #define __NEED_pid_t
 #define __NEED_time_t
 #define __NEED_suseconds_t
@@ -12,19 +14,17 @@ extern "C" {
 
 #include <bits/alltypes.h>
 
-#define UT_LINESIZE 32
-
 struct utmpx
 {
 	short ut_type;
 	pid_t ut_pid;
-	char ut_line[UT_LINESIZE];
+	char ut_line[32];
 	char ut_id[4];
 	char ut_user[32];
 	char ut_host[256];
 	struct {
-		short e_termination;
-		short e_exit;
+		short __e_termination;
+		short __e_exit;
 	} ut_exit;
 	long ut_session;
 	struct timeval ut_tv;
@@ -39,7 +39,11 @@ struct utmpx *getutxline(const struct utmpx *);
 struct utmpx *pututxline(const struct utmpx *);
 void          setutxent(void);
 
+#if defined(_BSD_SOURCE) | defined(_GNU_SOURCE)
+#define e_exit __e_exit
+#define e_termination __e_termination
 void updwtmpx(const char *, const struct utmpx *);
+#endif
 
 #define EMPTY           0
 #define RUN_LVL         1