mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	Sync OpenBSD patchset 1020:
Add pane id to each pane in layout description (while still accepting the old form). Based on diff from George Nachman.
This commit is contained in:
		@@ -105,6 +105,7 @@ cmd_select_layout_exec(struct cmd *self, struct cmd_ctx *ctx)
 | 
				
			|||||||
			layout = layout_set_next(wl->window);
 | 
								layout = layout_set_next(wl->window);
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			layout = layout_set_previous(wl->window);
 | 
								layout = layout_set_previous(wl->window);
 | 
				
			||||||
 | 
							server_redraw_window(wl->window);
 | 
				
			||||||
		ctx->info(ctx, "arranging in: %s", layout_set_name(layout));
 | 
							ctx->info(ctx, "arranging in: %s", layout_set_name(layout));
 | 
				
			||||||
		return (0);
 | 
							return (0);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -115,6 +116,7 @@ cmd_select_layout_exec(struct cmd *self, struct cmd_ctx *ctx)
 | 
				
			|||||||
		layout = layout_set_lookup(args->argv[0]);
 | 
							layout = layout_set_lookup(args->argv[0]);
 | 
				
			||||||
	if (layout != -1) {
 | 
						if (layout != -1) {
 | 
				
			||||||
		layout = layout_set_select(wl->window, layout);
 | 
							layout = layout_set_select(wl->window, layout);
 | 
				
			||||||
 | 
							server_redraw_window(wl->window);
 | 
				
			||||||
		ctx->info(ctx, "arranging in: %s", layout_set_name(layout));
 | 
							ctx->info(ctx, "arranging in: %s", layout_set_name(layout));
 | 
				
			||||||
		return (0);
 | 
							return (0);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -125,6 +127,7 @@ cmd_select_layout_exec(struct cmd *self, struct cmd_ctx *ctx)
 | 
				
			|||||||
			ctx->error(ctx, "can't set layout: %s", layoutname);
 | 
								ctx->error(ctx, "can't set layout: %s", layoutname);
 | 
				
			||||||
			return (-1);
 | 
								return (-1);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							server_redraw_window(wl->window);
 | 
				
			||||||
		ctx->info(ctx, "arranging in: %s", layoutname);
 | 
							ctx->info(ctx, "arranging in: %s", layoutname);
 | 
				
			||||||
		return (0);
 | 
							return (0);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -79,8 +79,13 @@ layout_append(struct layout_cell *lc, char *buf, size_t len)
 | 
				
			|||||||
	if (len == 0)
 | 
						if (len == 0)
 | 
				
			||||||
		return (-1);
 | 
							return (-1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tmplen = xsnprintf(tmp, sizeof tmp,
 | 
						if (lc->wp != NULL) {
 | 
				
			||||||
	    "%ux%u,%u,%u", lc->sx, lc->sy, lc->xoff, lc->yoff);
 | 
							tmplen = xsnprintf(tmp, sizeof tmp, "%ux%u,%u,%u,%u",
 | 
				
			||||||
 | 
							    lc->sx, lc->sy, lc->xoff, lc->yoff, lc->wp->id);
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							tmplen = xsnprintf(tmp, sizeof tmp, "%ux%u,%u,%u",
 | 
				
			||||||
 | 
							    lc->sx, lc->sy, lc->xoff, lc->yoff);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	if (tmplen > (sizeof tmp) - 1)
 | 
						if (tmplen > (sizeof tmp) - 1)
 | 
				
			||||||
		return (-1);
 | 
							return (-1);
 | 
				
			||||||
	if (strlcat(buf, tmp, len) >= len)
 | 
						if (strlcat(buf, tmp, len) >= len)
 | 
				
			||||||
@@ -202,7 +207,8 @@ layout_construct(struct layout_cell *lcparent, const char **layout)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if (!isdigit((u_char) **layout))
 | 
						if (!isdigit((u_char) **layout))
 | 
				
			||||||
		return (NULL);
 | 
							return (NULL);
 | 
				
			||||||
	if (sscanf(*layout, "%ux%u,%u,%u", &sx, &sy, &xoff, &yoff) != 4)
 | 
						if (sscanf(*layout, "%ux%u,%u,%u,%*u", &sx, &sy, &xoff, &yoff) != 5 &&
 | 
				
			||||||
 | 
						    sscanf(*layout, "%ux%u,%u,%u", &sx, &sy, &xoff, &yoff) != 4)
 | 
				
			||||||
		return (NULL);
 | 
							return (NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	while (isdigit((u_char) **layout))
 | 
						while (isdigit((u_char) **layout))
 | 
				
			||||||
@@ -222,6 +228,11 @@ layout_construct(struct layout_cell *lcparent, const char **layout)
 | 
				
			|||||||
	(*layout)++;
 | 
						(*layout)++;
 | 
				
			||||||
	while (isdigit((u_char) **layout))
 | 
						while (isdigit((u_char) **layout))
 | 
				
			||||||
		(*layout)++;
 | 
							(*layout)++;
 | 
				
			||||||
 | 
						if (**layout == ',') {
 | 
				
			||||||
 | 
							(*layout)++;
 | 
				
			||||||
 | 
							while (isdigit((u_char) **layout))
 | 
				
			||||||
 | 
								(*layout)++;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	lc = layout_create_cell(lcparent);
 | 
						lc = layout_create_cell(lcparent);
 | 
				
			||||||
	lc->sx = sx;
 | 
						lc->sx = sx;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user