ivisual mode (erase and fill) - 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 d87cf8ea7ec68de924179eb1dbaa13f4b52bd1aa /scm/gramscii/commit/d87cf8ea7ec68de924179eb1dbaa13f4b52bd1aa.gph bitreich.org 70 1parent c8512825e3baf1525af7117affa13d00ac6b0d1d /scm/gramscii/commit/c8512825e3baf1525af7117affa13d00ac6b0d1d.gph bitreich.org 70 hAuthor: KatolaZ URL:mailto:katolaz@freaknet.org bitreich.org 70 iDate: Sat, 20 Jul 2019 14:47:12 +0100 Err bitreich.org 70 i Err bitreich.org 70 ivisual mode (erase and fill) Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M TODO | 7 ++++--- Err bitreich.org 70 i M gramscii.c | 66 +++++++++++++++++++++++++++++++ Err bitreich.org 70 i Err bitreich.org 70 i2 files changed, 70 insertions(+), 3 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@@ -2,11 +2,12 @@ Err bitreich.org 70 i - (?) change cursor shape according to action Err bitreich.org 70 i - auto-arrow 'A' (automatic end-char) Err bitreich.org 70 i - read file at point Err bitreich.org 70 i-- visual selection Err bitreich.org 70 i++ visual selection Err bitreich.org 70 i - crop Err bitreich.org 70 i- - fill Err bitreich.org 70 i- - delete Err bitreich.org 70 i - yank/put Err bitreich.org 70 i+ * fill Err bitreich.org 70 i+ * delete Err bitreich.org 70 i+- change screen management (i.e., use an array of lines) Err bitreich.org 70 i - undo (by storing lines changed across insert/remove operations) Err bitreich.org 70 i - manage special chars (DEL/CANC) during text insert Err bitreich.org 70 i (also do not print unmanaged chars!) Err bitreich.org 70 1diff --git a/gramscii.c b/gramscii.c /scm/gramscii/file/gramscii.c.gph bitreich.org 70 i@@ -16,6 +16,7 @@ Err bitreich.org 70 i #define ARROW 0x02 Err bitreich.org 70 i #define TEXT 0x04 Err bitreich.org 70 i #define DEL 0x08 Err bitreich.org 70 i+#define VIS 0x10 Err bitreich.org 70 i Err bitreich.org 70 i #define DIR_N 0x00 Err bitreich.org 70 i #define DIR_R 0x01 Err bitreich.org 70 i@@ -45,6 +46,9 @@ Err bitreich.org 70 i #define END 0x02 Err bitreich.org 70 i #define MIDDLE 0x04 Err bitreich.org 70 i Err bitreich.org 70 i+#define VIDEO_NRM 0 Err bitreich.org 70 i+#define VIDEO_REV 7 Err bitreich.org 70 i+ Err bitreich.org 70 i #define MIN(x,y) (x) < (y) ? (x) : (y) Err bitreich.org 70 i #define MAX(x,y) (x) > (y) ? (x) : (y) Err bitreich.org 70 i Err bitreich.org 70 i@@ -188,6 +192,21 @@ void erase_line(char *s){ Err bitreich.org 70 i } Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i+void erase_box(int x1, int y1, char c){ Err bitreich.org 70 i+ Err bitreich.org 70 i+ int x_incr, y_incr, i; Err bitreich.org 70 i+ Err bitreich.org 70 i+ x_incr = x1 < x? +1: -1; Err bitreich.org 70 i+ y_incr = y1 < y? +1: -1; Err bitreich.org 70 i+ do{ Err bitreich.org 70 i+ i = y1; Err bitreich.org 70 i+ do{ Err bitreich.org 70 i+ set_xy(x1, i, c); Err bitreich.org 70 i+ } while(i != y && (1 | (i += y_incr))); Err bitreich.org 70 i+ } while(x1 != x && (1 | (x1 += x_incr))); Err bitreich.org 70 i+ Err bitreich.org 70 i+} Err bitreich.org 70 i+ Err bitreich.org 70 i void erase_screen(){ Err bitreich.org 70 i int i; Err bitreich.org 70 i for(i=0;i