mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	Merge branch 'obsd-master'
This commit is contained in:
		@@ -63,7 +63,7 @@ cmd_split_window_exec(struct cmd *self, struct cmdq_item *item)
 | 
			
		||||
	const char		*cmd, *path, *shell, *template, *tmp;
 | 
			
		||||
	char		       **argv, *cause, *new_cause, *cp, *cwd;
 | 
			
		||||
	u_int			 hlimit;
 | 
			
		||||
	int			 argc, size, percentage;
 | 
			
		||||
	int			 argc, size, percentage, before;
 | 
			
		||||
	enum layout_type	 type;
 | 
			
		||||
	struct layout_cell	*lc;
 | 
			
		||||
	struct environ_entry	*envent;
 | 
			
		||||
@@ -95,6 +95,7 @@ cmd_split_window_exec(struct cmd *self, struct cmdq_item *item)
 | 
			
		||||
	type = LAYOUT_TOPBOTTOM;
 | 
			
		||||
	if (args_has(args, 'h'))
 | 
			
		||||
		type = LAYOUT_LEFTRIGHT;
 | 
			
		||||
	before = args_has(args, 'b');
 | 
			
		||||
 | 
			
		||||
	size = -1;
 | 
			
		||||
	if (args_has(args, 'l')) {
 | 
			
		||||
@@ -124,13 +125,12 @@ cmd_split_window_exec(struct cmd *self, struct cmdq_item *item)
 | 
			
		||||
	if (*shell == '\0' || areshell(shell))
 | 
			
		||||
		shell = _PATH_BSHELL;
 | 
			
		||||
 | 
			
		||||
	lc = layout_split_pane(wp, type, size, args_has(args, 'b'),
 | 
			
		||||
	    args_has(args, 'f'));
 | 
			
		||||
	lc = layout_split_pane(wp, type, size, before, args_has(args, 'f'));
 | 
			
		||||
	if (lc == NULL) {
 | 
			
		||||
		cause = xstrdup("pane too small");
 | 
			
		||||
		goto error;
 | 
			
		||||
	}
 | 
			
		||||
	new_wp = window_add_pane(w, wp, args_has(args, 'b'), hlimit);
 | 
			
		||||
	new_wp = window_add_pane(w, wp, before, args_has(args, 'f'), hlimit);
 | 
			
		||||
	layout_make_leaf(lc, new_wp);
 | 
			
		||||
 | 
			
		||||
	path = NULL;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								tmux.h
									
									
									
									
									
								
							@@ -2149,7 +2149,7 @@ int		 window_has_pane(struct window *, struct window_pane *);
 | 
			
		||||
int		 window_set_active_pane(struct window *, struct window_pane *);
 | 
			
		||||
void		 window_redraw_active_switch(struct window *,
 | 
			
		||||
		     struct window_pane *);
 | 
			
		||||
struct window_pane *window_add_pane(struct window *, struct window_pane *,
 | 
			
		||||
struct window_pane *window_add_pane(struct window *, struct window_pane *, int,
 | 
			
		||||
		     int, u_int);
 | 
			
		||||
void		 window_resize(struct window *, u_int, u_int);
 | 
			
		||||
int		 window_zoom(struct window_pane *);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								window.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								window.c
									
									
									
									
									
								
							@@ -339,7 +339,7 @@ window_create_spawn(const char *name, int argc, char **argv, const char *path,
 | 
			
		||||
	struct window_pane	*wp;
 | 
			
		||||
 | 
			
		||||
	w = window_create(sx, sy);
 | 
			
		||||
	wp = window_add_pane(w, NULL, 0, hlimit);
 | 
			
		||||
	wp = window_add_pane(w, NULL, 0, 0, hlimit);
 | 
			
		||||
	layout_init(w, wp);
 | 
			
		||||
 | 
			
		||||
	if (window_pane_spawn(wp, argc, argv, path, shell, cwd,
 | 
			
		||||
@@ -608,7 +608,7 @@ window_unzoom(struct window *w)
 | 
			
		||||
 | 
			
		||||
struct window_pane *
 | 
			
		||||
window_add_pane(struct window *w, struct window_pane *other, int before,
 | 
			
		||||
    u_int hlimit)
 | 
			
		||||
    int full_size, u_int hlimit)
 | 
			
		||||
{
 | 
			
		||||
	struct window_pane	*wp;
 | 
			
		||||
 | 
			
		||||
@@ -621,10 +621,16 @@ window_add_pane(struct window *w, struct window_pane *other, int before,
 | 
			
		||||
		TAILQ_INSERT_HEAD(&w->panes, wp, entry);
 | 
			
		||||
	} else if (before) {
 | 
			
		||||
		log_debug("%s: @%u before %%%u", __func__, w->id, wp->id);
 | 
			
		||||
		TAILQ_INSERT_BEFORE(other, wp, entry);
 | 
			
		||||
		if (full_size)
 | 
			
		||||
			TAILQ_INSERT_HEAD(&w->panes, wp, entry);
 | 
			
		||||
		else
 | 
			
		||||
			TAILQ_INSERT_BEFORE(other, wp, entry);
 | 
			
		||||
	} else {
 | 
			
		||||
		log_debug("%s: @%u after %%%u", __func__, w->id, wp->id);
 | 
			
		||||
		TAILQ_INSERT_AFTER(&w->panes, other, wp, entry);
 | 
			
		||||
		if (full_size)
 | 
			
		||||
			TAILQ_INSERT_TAIL(&w->panes, wp, entry);
 | 
			
		||||
		else
 | 
			
		||||
			TAILQ_INSERT_AFTER(&w->panes, other, wp, entry);
 | 
			
		||||
	}
 | 
			
		||||
	return (wp);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user