Applying the patch of Roberto Caballero to set WINDOWID and all the pwuid()
variables. Thanks! xinit() and ttynew() had to be switched in their call-appearance. Otherwise xw.win is not set.dev
							parent
							
								
									35421371ca
								
							
						
					
					
						commit
						6d4e525ed9
					
				
							
								
								
									
										15
									
								
								st.c
								
								
								
								
							
							
						
						
									
										15
									
								
								st.c
								
								
								
								
							|  | @ -5,6 +5,7 @@ | ||||||
| #include <fcntl.h> | #include <fcntl.h> | ||||||
| #include <limits.h> | #include <limits.h> | ||||||
| #include <locale.h> | #include <locale.h> | ||||||
|  | #include <pwd.h> | ||||||
| #include <stdarg.h> | #include <stdarg.h> | ||||||
| #include <stdbool.h> | #include <stdbool.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  | @ -881,11 +882,23 @@ void | ||||||
| execsh(void) { | execsh(void) { | ||||||
| 	char **args; | 	char **args; | ||||||
| 	char *envshell = getenv("SHELL"); | 	char *envshell = getenv("SHELL"); | ||||||
|  | 	const struct passwd *pass = getpwuid(getuid()); | ||||||
|  | 	char buf[sizeof(long) * 8 + 1]; | ||||||
| 
 | 
 | ||||||
| 	unsetenv("COLUMNS"); | 	unsetenv("COLUMNS"); | ||||||
| 	unsetenv("LINES"); | 	unsetenv("LINES"); | ||||||
| 	unsetenv("TERMCAP"); | 	unsetenv("TERMCAP"); | ||||||
| 
 | 
 | ||||||
|  | 	if(pass) { | ||||||
|  | 		setenv("LOGNAME", pass->pw_name, 1); | ||||||
|  | 		setenv("USER", pass->pw_name, 1); | ||||||
|  | 		setenv("SHELL", pass->pw_shell, 0); | ||||||
|  | 		setenv("HOME", pass->pw_dir, 0); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	snprintf(buf, sizeof(buf), "%lu", xw.win); | ||||||
|  | 	setenv("WINDOWID", buf, 1); | ||||||
|  | 
 | ||||||
| 	signal(SIGCHLD, SIG_DFL); | 	signal(SIGCHLD, SIG_DFL); | ||||||
| 	signal(SIGHUP, SIG_DFL); | 	signal(SIGHUP, SIG_DFL); | ||||||
| 	signal(SIGINT, SIG_DFL); | 	signal(SIGINT, SIG_DFL); | ||||||
|  | @ -2795,8 +2808,8 @@ main(int argc, char *argv[]) { | ||||||
| run: | run: | ||||||
| 	setlocale(LC_CTYPE, ""); | 	setlocale(LC_CTYPE, ""); | ||||||
| 	tnew(80, 24); | 	tnew(80, 24); | ||||||
| 	ttynew(); |  | ||||||
| 	xinit(); | 	xinit(); | ||||||
|  | 	ttynew(); | ||||||
| 	selinit(); | 	selinit(); | ||||||
| 	run(); | 	run(); | ||||||
| 	return 0; | 	return 0; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue