summaryrefslogtreecommitdiff
path: root/japanese/kterm/files/patch-main.c
blob: 6867c22aeeed532d441a69b93e1b3702396c9be7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
--- main.c.orig	2024-02-02 17:45:34 UTC
+++ main.c
@@ -143,6 +143,10 @@ static Bool IsPts = False;
 #define WTMP
 #endif
 
+#if defined(__FreeBSD__)
+#define	USE_SYSV_UTMP
+#endif
+
 /* from xterm-200 */
 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__INTERIX) || defined(__APPLE__)
 #ifndef USE_POSIX_TERMIOS
@@ -2374,7 +2378,7 @@ spawn ()
 #endif	/* sun */
 	struct passwd *pw = NULL;
 #ifdef UTMP
-#ifdef SVR4
+#if defined(SVR4) || (defined(__FreeBSD__) && __FreeBSD_version >= 900007)
 	struct utmpx utmp;
 #else
 	struct utmp utmp;
@@ -3286,7 +3290,7 @@ spawn ()
 
 		/* set up the new entry */
 		utmp.ut_type = USER_PROCESS;
-#ifndef linux
+#if !defined(linux) && !defined(__FreeBSD__)
 		utmp.ut_exit.e_exit = 2;
 #endif
 		(void) strncpy(utmp.ut_user,
@@ -3314,8 +3318,13 @@ spawn ()
 #endif
 		(void) strncpy(utmp.ut_host, buf, sizeof(utmp.ut_host));
 #endif
+#if defined(__FreeBSD__)
+		(void) strncpy(utmp.ut_user, pw->pw_name, 
+			       sizeof(utmp.ut_user));
+#else
 		(void) strncpy(utmp.ut_name, pw->pw_name, 
 			       sizeof(utmp.ut_name));
+#endif
 
 		utmp.ut_pid = getpid();
 #ifdef SVR4
@@ -3323,8 +3332,12 @@ spawn ()
 		utmp.ut_xtime = time ((Time_t *) 0);
 		utmp.ut_tv.tv_usec = 0;
 #else
+#if defined(__FreeBSD__)
+		utmp.ut_tv.tv_usec = 0;
+#else
 		utmp.ut_time = time ((Time_t *) 0);
 #endif
+#endif
 
 		/* write out the entry */
 		if (!resource.utmpInhibit)
@@ -3728,7 +3741,7 @@ Exit(n)
         int pty = term->screen.respond;  /* file descriptor of pty */
 #ifdef UTMP
 #ifdef USE_SYSV_UTMP
-#ifdef SVR4
+#if defined(SVR4) || (defined(__FreeBSD__) && __FreeBSD_version >= 900007)
 	struct utmpx utmp;
 	struct utmpx *utptr;
 #else
@@ -3774,7 +3787,11 @@ Exit(n)
 		    utmp.ut_xtime = time ((Time_t *) 0);
 		    utmp.ut_tv.tv_usec = 0;
 #else
+#if defined(__FreeBSD__)
+		    utmp.ut_tv.tv_usec = 0;
+#else
 		    utptr->ut_time = time((Time_t *) 0);
+#endif
 #endif
 		    (void) pututline(utptr);
 #ifdef WTMP