Check for presence of SHELL environment variable
- POSIX states the SHELL environment variable "... shall represent a pathname of the user's preferred command language interpreter." As such, st should check for its presence when deciding what shell to use; just as HOME can be defined to override one's passwd-defined home directory, a user should also be able to override their passwd-defined shell using the SHELL environment variable.
This commit is contained in:
		
							parent
							
								
									11625c7166
								
							
						
					
					
						commit
						bafbba56cd
					
				
							
								
								
									
										3
									
								
								st.c
								
								
								
								
							
							
						
						
									
										3
									
								
								st.c
								
								
								
								
							| 
						 | 
					@ -1158,7 +1158,10 @@ execsh(void) {
 | 
				
			||||||
			die("who are you?\n");
 | 
								die("who are you?\n");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (!(sh = getenv("SHELL"))) {
 | 
				
			||||||
		sh = (pw->pw_shell[0]) ? pw->pw_shell : shell;
 | 
							sh = (pw->pw_shell[0]) ? pw->pw_shell : shell;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if(opt_cmd)
 | 
						if(opt_cmd)
 | 
				
			||||||
		prog = opt_cmd[0];
 | 
							prog = opt_cmd[0];
 | 
				
			||||||
	else if(utmp)
 | 
						else if(utmp)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue