mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Shell command from -c doesn't have to be global, pass it as an argument.
This commit is contained in:
		
							
								
								
									
										11
									
								
								tmux.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								tmux.c
									
									
									
									
									
								
							@@ -39,7 +39,6 @@ struct options	*global_s_options;	/* session options */
 | 
			
		||||
struct options	*global_w_options;	/* window options */
 | 
			
		||||
struct environ	*global_environ;
 | 
			
		||||
 | 
			
		||||
char		*shell_cmd;
 | 
			
		||||
struct timeval	 start_time;
 | 
			
		||||
const char	*socket_path;
 | 
			
		||||
 | 
			
		||||
@@ -184,7 +183,7 @@ find_home(void)
 | 
			
		||||
int
 | 
			
		||||
main(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
	char		*path, *label, **var, tmp[PATH_MAX];
 | 
			
		||||
	char		*path, *label, **var, tmp[PATH_MAX], *shellcmd = NULL;
 | 
			
		||||
	const char	*s;
 | 
			
		||||
	int		 opt, flags, keys;
 | 
			
		||||
 | 
			
		||||
@@ -203,8 +202,8 @@ main(int argc, char **argv)
 | 
			
		||||
			flags |= CLIENT_256COLOURS;
 | 
			
		||||
			break;
 | 
			
		||||
		case 'c':
 | 
			
		||||
			free(shell_cmd);
 | 
			
		||||
			shell_cmd = xstrdup(optarg);
 | 
			
		||||
			free(shellcmd);
 | 
			
		||||
			shellcmd = xstrdup(optarg);
 | 
			
		||||
			break;
 | 
			
		||||
		case 'C':
 | 
			
		||||
			if (flags & CLIENT_CONTROL)
 | 
			
		||||
@@ -241,7 +240,7 @@ main(int argc, char **argv)
 | 
			
		||||
	argc -= optind;
 | 
			
		||||
	argv += optind;
 | 
			
		||||
 | 
			
		||||
	if (shell_cmd != NULL && argc != 0)
 | 
			
		||||
	if (shellcmd != NULL && argc != 0)
 | 
			
		||||
		usage();
 | 
			
		||||
 | 
			
		||||
	if (pledge("stdio rpath wpath cpath flock fattr unix getpw sendfd "
 | 
			
		||||
@@ -318,5 +317,5 @@ main(int argc, char **argv)
 | 
			
		||||
	free(label);
 | 
			
		||||
 | 
			
		||||
	/* Pass control to the client. */
 | 
			
		||||
	exit(client_main(event_init(), argc, argv, flags));
 | 
			
		||||
	exit(client_main(event_init(), argc, argv, flags, shellcmd));
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user