mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	Add -c to refresh-client to set client size in control mode, based on
code from George Nachman.
This commit is contained in:
		| @@ -28,8 +28,8 @@ enum cmd_retval	 cmd_refresh_client_exec(struct cmd *, struct cmd_ctx *); | |||||||
|  |  | ||||||
| const struct cmd_entry cmd_refresh_client_entry = { | const struct cmd_entry cmd_refresh_client_entry = { | ||||||
| 	"refresh-client", "refresh", | 	"refresh-client", "refresh", | ||||||
| 	"St:", 0, 0, | 	"C:St:", 0, 0, | ||||||
| 	"[-S] " CMD_TARGET_CLIENT_USAGE, | 	"[-S] [-C size]" CMD_TARGET_CLIENT_USAGE, | ||||||
| 	0, | 	0, | ||||||
| 	NULL, | 	NULL, | ||||||
| 	NULL, | 	NULL, | ||||||
| @@ -41,11 +41,33 @@ cmd_refresh_client_exec(struct cmd *self, struct cmd_ctx *ctx) | |||||||
| { | { | ||||||
| 	struct args	*args = self->args; | 	struct args	*args = self->args; | ||||||
| 	struct client	*c; | 	struct client	*c; | ||||||
|  | 	const char	*size; | ||||||
|  | 	u_int		 w, h; | ||||||
|  |  | ||||||
| 	if ((c = cmd_find_client(ctx, args_get(args, 't'))) == NULL) | 	if ((c = cmd_find_client(ctx, args_get(args, 't'))) == NULL) | ||||||
| 		return (CMD_RETURN_ERROR); | 		return (CMD_RETURN_ERROR); | ||||||
|  |  | ||||||
| 	if (args_has(args, 'S')) { | 	if (args_has(args, 'C')) { | ||||||
|  | 		if ((size = args_get(args, 'C')) == NULL) { | ||||||
|  | 			ctx->error(ctx, "missing size"); | ||||||
|  | 			return (CMD_RETURN_ERROR); | ||||||
|  | 		} | ||||||
|  | 		if (sscanf(size, "%u,%u", &w, &h) != 2) { | ||||||
|  | 			ctx->error(ctx, "bad size argument"); | ||||||
|  | 			return (CMD_RETURN_ERROR); | ||||||
|  | 		} | ||||||
|  | 		if (w < PANE_MINIMUM || w > 5000 || | ||||||
|  | 		    h < PANE_MINIMUM || h > 5000) { | ||||||
|  | 			ctx->error(ctx, "size too small or too big"); | ||||||
|  | 			return (CMD_RETURN_ERROR); | ||||||
|  | 		} | ||||||
|  | 		if (!(c->flags & CLIENT_CONTROL)) { | ||||||
|  | 			ctx->error(ctx, "not a control client"); | ||||||
|  | 			return (CMD_RETURN_ERROR); | ||||||
|  | 		} | ||||||
|  | 		if (tty_set_size(&c->tty, w, h)) | ||||||
|  | 			recalculate_sizes(); | ||||||
|  | 	} else if (args_has(args, 'S')) { | ||||||
| 		status_update_jobs(c); | 		status_update_jobs(c); | ||||||
| 		server_status_client(c); | 		server_status_client(c); | ||||||
| 	} else | 	} else | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Nicholas Marriott
					Nicholas Marriott