mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Merge branch 'obsd-master'
Conflicts: Makefile
This commit is contained in:
		@@ -49,6 +49,19 @@ const struct cmd_entry cmd_capture_pane_entry = {
 | 
			
		||||
	.exec = cmd_capture_pane_exec
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const struct cmd_entry cmd_clear_history_entry = {
 | 
			
		||||
	.name = "clear-history",
 | 
			
		||||
	.alias = "clearhist",
 | 
			
		||||
 | 
			
		||||
	.args = { "t:", 0, 0 },
 | 
			
		||||
	.usage = CMD_TARGET_PANE_USAGE,
 | 
			
		||||
 | 
			
		||||
	.tflag = CMD_PANE,
 | 
			
		||||
 | 
			
		||||
	.flags = CMD_AFTERHOOK,
 | 
			
		||||
	.exec = cmd_capture_pane_exec
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static char *
 | 
			
		||||
cmd_capture_pane_append(char *buf, size_t *len, char *line, size_t linelen)
 | 
			
		||||
{
 | 
			
		||||
@@ -91,7 +104,6 @@ cmd_capture_pane_pending(struct args *args, struct window_pane *wp,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static char *
 | 
			
		||||
 | 
			
		||||
cmd_capture_pane_history(struct args *args, struct cmdq_item *item,
 | 
			
		||||
    struct window_pane *wp, size_t *len)
 | 
			
		||||
{
 | 
			
		||||
@@ -186,6 +198,13 @@ cmd_capture_pane_exec(struct cmd *self, struct cmdq_item *item)
 | 
			
		||||
	const char		*bufname;
 | 
			
		||||
	size_t			 len;
 | 
			
		||||
 | 
			
		||||
	if (self->entry == &cmd_clear_history_entry) {
 | 
			
		||||
		if (wp->mode == &window_copy_mode)
 | 
			
		||||
			window_pane_reset_mode(wp);
 | 
			
		||||
		grid_clear_history(wp->base.grid);
 | 
			
		||||
		return (CMD_RETURN_NORMAL);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	len = 0;
 | 
			
		||||
	if (args_has(args, 'P'))
 | 
			
		||||
		buf = cmd_capture_pane_pending(args, wp, &len);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,53 +0,0 @@
 | 
			
		||||
/* $OpenBSD$ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com>
 | 
			
		||||
 *
 | 
			
		||||
 * Permission to use, copy, modify, and distribute this software for any
 | 
			
		||||
 * purpose with or without fee is hereby granted, provided that the above
 | 
			
		||||
 * copyright notice and this permission notice appear in all copies.
 | 
			
		||||
 *
 | 
			
		||||
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
			
		||||
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
			
		||||
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
			
		||||
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
			
		||||
 * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
 | 
			
		||||
 * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
 | 
			
		||||
 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
 | 
			
		||||
#include "tmux.h"
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Clear pane history.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
static enum cmd_retval	cmd_clear_history_exec(struct cmd *,
 | 
			
		||||
			    struct cmdq_item *);
 | 
			
		||||
 | 
			
		||||
const struct cmd_entry cmd_clear_history_entry = {
 | 
			
		||||
	.name = "clear-history",
 | 
			
		||||
	.alias = "clearhist",
 | 
			
		||||
 | 
			
		||||
	.args = { "t:", 0, 0 },
 | 
			
		||||
	.usage = CMD_TARGET_PANE_USAGE,
 | 
			
		||||
 | 
			
		||||
	.tflag = CMD_PANE,
 | 
			
		||||
 | 
			
		||||
	.flags = CMD_AFTERHOOK,
 | 
			
		||||
	.exec = cmd_clear_history_exec
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static enum cmd_retval
 | 
			
		||||
cmd_clear_history_exec(__unused struct cmd *self, struct cmdq_item *item)
 | 
			
		||||
{
 | 
			
		||||
	struct window_pane	*wp = item->state.tflag.wp;
 | 
			
		||||
 | 
			
		||||
	if (wp->mode == &window_copy_mode)
 | 
			
		||||
		window_pane_reset_mode(wp);
 | 
			
		||||
	grid_clear_history(wp->base.grid);
 | 
			
		||||
 | 
			
		||||
	return (CMD_RETURN_NORMAL);
 | 
			
		||||
}
 | 
			
		||||
@@ -194,7 +194,7 @@ grid_view_insert_cells(struct grid *gd, u_int px, u_int py, u_int nx, u_int bg)
 | 
			
		||||
 | 
			
		||||
	sx = grid_view_x(gd, gd->sx);
 | 
			
		||||
 | 
			
		||||
	if (px == sx - 1)
 | 
			
		||||
	if (px >= sx - 1)
 | 
			
		||||
		grid_clear(gd, px, py, 1, 1, bg);
 | 
			
		||||
	else
 | 
			
		||||
		grid_move_cells(gd, px + nx, px, py, sx - px - nx, bg);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								input.c
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								input.c
									
									
									
									
									
								
							@@ -1389,7 +1389,7 @@ input_csi_dispatch(struct input_ctx *ictx)
 | 
			
		||||
		break;
 | 
			
		||||
	case INPUT_CSI_IL:
 | 
			
		||||
		screen_write_insertline(sctx, input_get(ictx, 0, 1, 1),
 | 
			
		||||
			ictx->cell.cell.bg);
 | 
			
		||||
		    ictx->cell.cell.bg);
 | 
			
		||||
		break;
 | 
			
		||||
	case INPUT_CSI_RCP:
 | 
			
		||||
		memcpy(&ictx->cell, &ictx->old_cell, sizeof ictx->cell);
 | 
			
		||||
@@ -1779,6 +1779,9 @@ input_csi_dispatch_sgr(struct input_ctx *ictx)
 | 
			
		||||
		case 27:
 | 
			
		||||
			gc->attr &= ~GRID_ATTR_REVERSE;
 | 
			
		||||
			break;
 | 
			
		||||
		case 28:
 | 
			
		||||
			gc->attr &= ~GRID_ATTR_HIDDEN;
 | 
			
		||||
			break;
 | 
			
		||||
		case 30:
 | 
			
		||||
		case 31:
 | 
			
		||||
		case 32:
 | 
			
		||||
 
 | 
			
		||||
@@ -1260,6 +1260,7 @@ screen_write_cell(struct screen_write_ctx *ctx, const struct grid_cell *gc)
 | 
			
		||||
 | 
			
		||||
	/* Create space for character in insert mode. */
 | 
			
		||||
	if (s->mode & MODE_INSERT) {
 | 
			
		||||
		screen_write_collect_flush(ctx, 0);
 | 
			
		||||
		ttyctx.num = width;
 | 
			
		||||
		tty_write(tty_cmd_insertcharacter, &ttyctx);
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								tty.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								tty.c
									
									
									
									
									
								
							@@ -1321,7 +1321,7 @@ tty_region(struct tty *tty, u_int rupper, u_int rlower)
 | 
			
		||||
		tty_cursor(tty, 0, tty->cy);
 | 
			
		||||
 | 
			
		||||
	tty_putcode2(tty, TTYC_CSR, tty->rupper, tty->rlower);
 | 
			
		||||
	tty->cx = tty->cy = 0;
 | 
			
		||||
	tty->cx = tty->cy = UINT_MAX;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Turn off margin. */
 | 
			
		||||
@@ -1359,7 +1359,7 @@ tty_margin(struct tty *tty, u_int rleft, u_int rright)
 | 
			
		||||
	else
 | 
			
		||||
		snprintf(s, sizeof s, "\033[%u;%us", rleft + 1, rright + 1);
 | 
			
		||||
	tty_puts(tty, s);
 | 
			
		||||
	tty->cx = tty->cy = 0;
 | 
			
		||||
	tty->cx = tty->cy = UINT_MAX;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Move cursor inside pane. */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user