Add support for scroll(1)
Scroll is a program that stores all the lines of its child and be used in st as a way of implementing scrollback. This solution is much better than implementing the scrollback in st itself because having a different program allows to use it in any other program without doing modifications to those programs.
This commit is contained in:
		
				
					committed by
					
						
						Hiltjo Posthuma
					
				
			
			
				
	
			
			
			
						parent
						
							5703aa0390
						
					
				
				
					commit
					21e0d6e8b8
				
			
							
								
								
									
										16
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								st.c
									
									
									
									
									
								
							@@ -664,7 +664,7 @@ die(const char *errstr, ...)
 | 
			
		||||
void
 | 
			
		||||
execsh(char *cmd, char **args)
 | 
			
		||||
{
 | 
			
		||||
	char *sh, *prog;
 | 
			
		||||
	char *sh, *prog, *arg;
 | 
			
		||||
	const struct passwd *pw;
 | 
			
		||||
 | 
			
		||||
	errno = 0;
 | 
			
		||||
@@ -678,13 +678,17 @@ execsh(char *cmd, char **args)
 | 
			
		||||
	if ((sh = getenv("SHELL")) == NULL)
 | 
			
		||||
		sh = (pw->pw_shell[0]) ? pw->pw_shell : cmd;
 | 
			
		||||
 | 
			
		||||
	if (args)
 | 
			
		||||
	if (args) {
 | 
			
		||||
		prog = args[0];
 | 
			
		||||
	else if (utmp)
 | 
			
		||||
		prog = utmp;
 | 
			
		||||
	else
 | 
			
		||||
		arg = NULL;
 | 
			
		||||
	} else if (scroll || utmp) {
 | 
			
		||||
		prog = scroll ? scroll : utmp;
 | 
			
		||||
		arg = scroll ? utmp : NULL;
 | 
			
		||||
	} else {
 | 
			
		||||
		prog = sh;
 | 
			
		||||
	DEFAULT(args, ((char *[]) {prog, NULL}));
 | 
			
		||||
		arg = NULL;
 | 
			
		||||
	}
 | 
			
		||||
	DEFAULT(args, ((char *[]) {prog, arg, NULL}));
 | 
			
		||||
 | 
			
		||||
	unsetenv("COLUMNS");
 | 
			
		||||
	unsetenv("LINES");
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user