mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:17:31 +00:00 
			
		
		
		
	Fix ordering of source-file with multiple files and add flags to load_cfg.
This commit is contained in:
		@@ -49,15 +49,18 @@ static enum cmd_retval
 | 
			
		||||
cmd_source_file_exec(struct cmd *self, struct cmdq_item *item)
 | 
			
		||||
{
 | 
			
		||||
	struct args		*args = self->args;
 | 
			
		||||
	int			 quiet = args_has(args, 'q');
 | 
			
		||||
	int			 flags = 0;
 | 
			
		||||
	struct client		*c = item->client;
 | 
			
		||||
	struct cmdq_item	*new_item;
 | 
			
		||||
	struct cmdq_item	*new_item, *after;
 | 
			
		||||
	enum cmd_retval		 retval;
 | 
			
		||||
	char			*pattern, *tmp;
 | 
			
		||||
	const char		*path = args->argv[0];
 | 
			
		||||
	glob_t			 g;
 | 
			
		||||
	u_int			 i;
 | 
			
		||||
 | 
			
		||||
	if (args_has(args, 'q'))
 | 
			
		||||
		flags |= CFG_QUIET;
 | 
			
		||||
 | 
			
		||||
	if (*path == '/')
 | 
			
		||||
		pattern = xstrdup(path);
 | 
			
		||||
	else {
 | 
			
		||||
@@ -69,7 +72,7 @@ cmd_source_file_exec(struct cmd *self, struct cmdq_item *item)
 | 
			
		||||
 | 
			
		||||
	retval = CMD_RETURN_NORMAL;
 | 
			
		||||
	if (glob(pattern, 0, NULL, &g) != 0) {
 | 
			
		||||
		if (!quiet || errno != ENOENT) {
 | 
			
		||||
		if (errno != ENOENT || (~flags & CFG_QUIET)) {
 | 
			
		||||
			cmdq_error(item, "%s: %s", path, strerror(errno));
 | 
			
		||||
			retval = CMD_RETURN_ERROR;
 | 
			
		||||
		}
 | 
			
		||||
@@ -78,9 +81,12 @@ cmd_source_file_exec(struct cmd *self, struct cmdq_item *item)
 | 
			
		||||
	}
 | 
			
		||||
	free(pattern);
 | 
			
		||||
 | 
			
		||||
	after = item;
 | 
			
		||||
	for (i = 0; i < (u_int)g.gl_pathc; i++) {
 | 
			
		||||
		if (load_cfg(g.gl_pathv[i], c, item, quiet) < 0)
 | 
			
		||||
		if (load_cfg(g.gl_pathv[i], c, after, flags, &new_item) < 0)
 | 
			
		||||
			retval = CMD_RETURN_ERROR;
 | 
			
		||||
		else if (new_item != NULL)
 | 
			
		||||
			after = new_item;
 | 
			
		||||
	}
 | 
			
		||||
	if (cfg_finished) {
 | 
			
		||||
		new_item = cmdq_get_callback(cmd_source_file_done, NULL);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user