From eebc645dee0d15871d6cc46f156d424cd916b191 Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Tue, 30 Jul 2019 12:15:54 +0100 Subject: yank buffer and initial copy/cut/paste support --- draw.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'draw.c') diff --git a/draw.c b/draw.c index 9724a1f..3c98534 100644 --- a/draw.c +++ b/draw.c @@ -299,9 +299,15 @@ void visual_box(FILE *fc){ draw_box(x,y,NOFIX); while((c=fgetc(fc))!=EOF && c != 27 && c!= 'v' && c != '\n'){ if (!move_around(c, fc)) switch(c){ + case 'y': /* yank (copy) */ + yank_region(MIN(orig_x,x), MIN(orig_y,y), MAX(orig_x, x), MAX(orig_y, y)); + goto vis_exit; + break; case 'f':/* fill */ f = get_key(fc, "fill char: "); /** FALLTHROUGH **/ case 'x':/* erase */ + if (c == 'x') + yank_region(MIN(orig_x,x), MIN(orig_y,y), MAX(orig_x, x), MAX(orig_y, y)); erase_box(orig_x, orig_y, f); erase_blank_lines(MIN(y,orig_y), MAX(y, orig_y)); modified = 1; @@ -323,3 +329,8 @@ vis_exit: redraw(); mode = MOVE; } + +void paste(){ + paste_region(x, y); + redraw(); +} -- cgit v1.2.3