SMOLNET PORTAL home about changes
iadd crop-to-visible function (C) - 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 a99759398841d86928c7ad4d8248f907765cbeb2	/scm/gramscii/commit/a99759398841d86928c7ad4d8248f907765cbeb2.gph	bitreich.org	70
1parent b38ed132a7df231fc08ce384d8559e6648fdd0cc	/scm/gramscii/commit/b38ed132a7df231fc08ce384d8559e6648fdd0cc.gph	bitreich.org	70
hAuthor: KatolaZ <katolaz@freaknet.org>	URL:mailto:katolaz@freaknet.org	bitreich.org	70
iDate:   Sat, 27 Jul 2019 08:31:24 +0100	Err	bitreich.org	70
i	Err	bitreich.org	70
iadd crop-to-visible function (C)	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M TODO                                |       2 +-	Err	bitreich.org	70
i  M config.mk                           |       2 +-	Err	bitreich.org	70
i  M draw.c                              |       1 +	Err	bitreich.org	70
i  M gramscii.1                          |       5 +++++	Err	bitreich.org	70
i  M gramscii.h                          |       1 +	Err	bitreich.org	70
i  M screen.c                            |      30 +++++++++++++++++++++++++++---	Err	bitreich.org	70
i	Err	bitreich.org	70
i6 files changed, 36 insertions(+), 5 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/TODO b/TODO	/scm/gramscii/file/TODO.gph	bitreich.org	70
i@@ -1,5 +1,4 @@	Err	bitreich.org	70
i + optimize redraws (redraw only the modified rectangle)	Err	bitreich.org	70
i-+ add crop command (C)	Err	bitreich.org	70
i - fix bug with 'g' commands in arrow mode	Err	bitreich.org	70
i - add screen geometry option (-g 25x80?)	Err	bitreich.org	70
i - read file at point	Err	bitreich.org	70
i@@ -25,6 +24,7 @@	Err	bitreich.org	70
i - allow scrolling (both vertical and horizontal)	Err	bitreich.org	70
i - catch SIGWINCH and react appropriately (after scrolling is 	Err	bitreich.org	70
i   enabled)	Err	bitreich.org	70
i+* add crop command (C)	Err	bitreich.org	70
i * reorganise code	Err	bitreich.org	70
i * change screen management (i.e., dynamic array of lines)	Err	bitreich.org	70
i * add action multiplier (e.g., "7h" moves left by 7 cols)	Err	bitreich.org	70
1diff --git a/config.mk b/config.mk	/scm/gramscii/file/config.mk.gph	bitreich.org	70
i@@ -2,5 +2,5 @@ PREFIX = /usr/local	Err	bitreich.org	70
i BINDIR = ${PREFIX}/bin	Err	bitreich.org	70
i MANDIR = ${PREFIX}/share/man	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-CFLAGS = -O3 -std=c90 -pedantic -Wall	Err	bitreich.org	70
i+CFLAGS = -O0 -std=c99 -pedantic -Wall	Err	bitreich.org	70
i CC = cc	Err	bitreich.org	70
1diff --git a/draw.c b/draw.c	/scm/gramscii/file/draw.c.gph	bitreich.org	70
i@@ -303,6 +303,7 @@ void visual_box(FILE *fc){	Err	bitreich.org	70
i                                 f = get_key(fc, "fill char: "); /** FALLTHROUGH **/	Err	bitreich.org	70
i                         case 'x':/* erase */	Err	bitreich.org	70
i                                 erase_box(orig_x, orig_y, f);	Err	bitreich.org	70
i+                                erase_blank_lines(MIN(y,orig_y), MAX(y, orig_y));	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
1diff --git a/gramscii.1 b/gramscii.1	/scm/gramscii/file/gramscii.1.gph	bitreich.org	70
i@@ -52,6 +52,11 @@ mode:	Err	bitreich.org	70
i .BI R	Err	bitreich.org	70
i Redraw the screen	Err	bitreich.org	70
i .TP 5m	Err	bitreich.org	70
i+.BI C	Err	bitreich.org	70
i+Crop chart to the largest non-blank region. The first line and the first	Err	bitreich.org	70
i+column of the cropped chart will contain the first non-blank line and	Err	bitreich.org	70
i+the first non-blank column of the original chart, respectively.	Err	bitreich.org	70
i+.TP 5m	Err	bitreich.org	70
i .BI q	Err	bitreich.org	70
i Quit gramscii, and prompt for a filename if the current screen contains	Err	bitreich.org	70
i unsaved changes.	Err	bitreich.org	70
1diff --git a/gramscii.h b/gramscii.h	/scm/gramscii/file/gramscii.h.gph	bitreich.org	70
i@@ -120,6 +120,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 erase_blank_lines(int y1, int y2);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i /** drawing-related functions **/	Err	bitreich.org	70
i int change_style(char c);	Err	bitreich.org	70
1diff --git a/screen.c b/screen.c	/scm/gramscii/file/screen.c.gph	bitreich.org	70
i@@ -197,6 +197,26 @@ void update_current(){	Err	bitreich.org	70
i         fflush(stdout);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+void erase_blank_lines(int y1, int y2){	Err	bitreich.org	70
i+        int j;	Err	bitreich.org	70
i+        if (y1 > y2){	Err	bitreich.org	70
i+                y1 ^= y2;	Err	bitreich.org	70
i+                y2 ^= y1;	Err	bitreich.org	70
i+                y1 ^= y2;	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+        	Err	bitreich.org	70
i+        for (; y1 <= y2; y1++){	Err	bitreich.org	70
i+                j = screen[y1].lst; 	Err	bitreich.org	70
i+                while (j>=0 && isblank(screen[y1].s[j]))	Err	bitreich.org	70
i+                        j--;	Err	bitreich.org	70
i+                if (j<0){	Err	bitreich.org	70
i+                        screen[y1].lst = -1;	Err	bitreich.org	70
i+                        screen[y1].s[0] = '\0';	Err	bitreich.org	70
i+                }	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+	Err	bitreich.org	70
i void erase_line(int i){	Err	bitreich.org	70
i         screen[i].lst = -1;	Err	bitreich.org	70
i         screen[i].s[0] = '\0';	Err	bitreich.org	70
i@@ -446,13 +466,16 @@ void find_nonblank_rect(int *x1, int *y1, int *x2, int *y2){	Err	bitreich.org	70
i                 *y2 = i;	Err	bitreich.org	70
i                 if (i < *y1)	Err	bitreich.org	70
i                         *y1 = i;	Err	bitreich.org	70
i-                if (screen[i].lst > *x2)	Err	bitreich.org	70
i-                        *x2 = screen[i].lst;	Err	bitreich.org	70
i                 j = 0;	Err	bitreich.org	70
i-                while(j <= screen[i].lst && isblank(first=screen[i].s[j]))	Err	bitreich.org	70
i+                while((j <= screen[i].lst)  && isblank(first=screen[i].s[j]))	Err	bitreich.org	70
i                         j++;	Err	bitreich.org	70
i                 if (j < *x1)	Err	bitreich.org	70
i                         *x1 = j;	Err	bitreich.org	70
i+                j = screen[i].lst;	Err	bitreich.org	70
i+                while(isblank(screen[i].s[j]))	Err	bitreich.org	70
i+                        j--;	Err	bitreich.org	70
i+                if (j > *x2)	Err	bitreich.org	70
i+                        *x2 = j;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -478,6 +501,7 @@ void crop_to_nonblank(){	Err	bitreich.org	70
i         fprintf(stderr, "crop rectangle: (%d, %d)-(%d, %d)\n", x1, y1, x2, y2);	Err	bitreich.org	70
i #endif	Err	bitreich.org	70
i         crop_to_rect(x1, y1, x2, y2);	Err	bitreich.org	70
i+        modified=1;	Err	bitreich.org	70
i         redraw();	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/gramscii/commit/a99759398841d...
Content-Typetext/plain; charset=utf-8