iadd crop-to-region in visual mode - gramscii - A simple editor for ASCII box-and-arrow charts Err bitreich.org 70 1Log /scm/gramscii/log.gph bitreich.org 70 1Files /scm/gramscii/files.gph bitreich.org 70 1Refs /scm/gramscii/refs.gph bitreich.org 70 1Tags /scm/gramscii/tag bitreich.org 70 1README /scm/gramscii/file/README.md.gph bitreich.org 70 1LICENSE /scm/gramscii/file/COPYING.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 47996e708ad2ab7e6a18633576c95e93d08e816a /scm/gramscii/commit/47996e708ad2ab7e6a18633576c95e93d08e816a.gph bitreich.org 70 1parent 6d34f883ba3ce2474df90432cc4aa387e9093321 /scm/gramscii/commit/6d34f883ba3ce2474df90432cc4aa387e9093321.gph bitreich.org 70 hAuthor: KatolaZ URL:mailto:katolaz@freaknet.org bitreich.org 70 iDate: Thu, 1 Aug 2019 08:02:33 +0100 Err bitreich.org 70 i Err bitreich.org 70 iadd crop-to-region in visual mode Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M draw.c | 7 +++++++ Err bitreich.org 70 i M gramscii.1 | 4 ++++ Err bitreich.org 70 i M gramscii.h | 3 ++- Err bitreich.org 70 i M screen.c | 2 +- Err bitreich.org 70 i Err bitreich.org 70 i4 files changed, 14 insertions(+), 2 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/draw.c b/draw.c /scm/gramscii/file/draw.c.gph bitreich.org 70 i@@ -331,6 +331,13 @@ void visual_box(FILE *fc){ Err bitreich.org 70 i modified = 1; Err bitreich.org 70 i goto vis_exit; Err bitreich.org 70 i break; Err bitreich.org 70 i+ case 'C':/* crop-to-region */ Err bitreich.org 70 i+ copy_lines_to_ring(0, HEIGHT-1, PRV_STATE); Err bitreich.org 70 i+ crop_to_rect(MIN(x, orig_x), MIN(y, orig_y), MAX(x, orig_x), MAX(y, orig_y)); Err bitreich.org 70 i+ copy_lines_to_ring(0, HEIGHT-1, NEW_STATE); Err bitreich.org 70 i+ modified = 1; Err bitreich.org 70 i+ goto vis_exit; Err bitreich.org 70 i+ break; Err bitreich.org 70 i } Err bitreich.org 70 i check_bound(); Err bitreich.org 70 i set_video(VIDEO_NRM); Err bitreich.org 70 1diff --git a/gramscii.1 b/gramscii.1 /scm/gramscii/file/gramscii.1.gph bitreich.org 70 i@@ -384,6 +384,10 @@ subsequent yank/cut commands. Err bitreich.org 70 i Fill region. gramscii will wait for a character on input and then will Err bitreich.org 70 i fill the highlighted region with that character. Err bitreich.org 70 i .TP 5m Err bitreich.org 70 i+.BI C Err bitreich.org 70 i+Crop-to-region. Crop the chart to the content of the highlighted region. Err bitreich.org 70 i+Everything else in the screen is erased. Err bitreich.org 70 i+.TP 5m Err bitreich.org 70 i .BI v Err bitreich.org 70 i leave Err bitreich.org 70 i .B visual Err bitreich.org 70 1diff --git a/gramscii.h b/gramscii.h /scm/gramscii/file/gramscii.h.gph bitreich.org 70 i@@ -71,7 +71,7 @@ typedef struct{ Err bitreich.org 70 i #define progr_x(d) ((d) == DIR_L ? -1 : (d) == DIR_R ? 1 : 0) Err bitreich.org 70 i #define progr_y(d) ((d) == DIR_U ? -1 : (d) == DIR_D ? 1 : 0) Err bitreich.org 70 i Err bitreich.org 70 i-#define DEBUG 1 Err bitreich.org 70 i+/** #define DEBUG 1 **/ Err bitreich.org 70 i Err bitreich.org 70 i /** global variables **/ Err bitreich.org 70 i Err bitreich.org 70 i@@ -139,6 +139,7 @@ void erase_line(int i); Err bitreich.org 70 i void erase_screen(); Err bitreich.org 70 i void go_to(int where); Err bitreich.org 70 i void crop_to_nonblank(); Err bitreich.org 70 i+void crop_to_rect(); Err bitreich.org 70 i void erase_blank_lines(int y1, int y2); Err bitreich.org 70 i Err bitreich.org 70 i /** drawing-related functions **/ Err bitreich.org 70 1diff --git a/screen.c b/screen.c /scm/gramscii/file/screen.c.gph bitreich.org 70 i@@ -449,7 +449,7 @@ void crop_to_rect(int x1, int y1, int x2, int y2){ Err bitreich.org 70 i sprintf(screen.l[i].s, "%s", screen.l[i+y1].s + x1); Err bitreich.org 70 i screen.l[i].lst = screen.l[i+y1].lst - x1; Err bitreich.org 70 i } Err bitreich.org 70 i- while (i<=y2){ Err bitreich.org 70 i+ while (i< HEIGHT){ Err bitreich.org 70 i screen.l[i].lst = -1; Err bitreich.org 70 i screen.l[i].s[0]= '\0'; Err bitreich.org 70 i i ++; Err bitreich.org 70 .