ichange global movement commands -- g+[gGmhjkl] - 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 557124afa12af33f8453f04beab1ebfbe1e7a593 /scm/gramscii/commit/557124afa12af33f8453f04beab1ebfbe1e7a593.gph bitreich.org 70 1parent f73faa7a82282660413e4056486e452af61832c0 /scm/gramscii/commit/f73faa7a82282660413e4056486e452af61832c0.gph bitreich.org 70 hAuthor: KatolaZ URL:mailto:katolaz@freaknet.org bitreich.org 70 iDate: Mon, 22 Jul 2019 13:54:48 +0100 Err bitreich.org 70 i Err bitreich.org 70 ichange global movement commands -- g+[gGmhjkl] Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M TODO | 25 +++++++++++++++---------- Err bitreich.org 70 i M gramscii.c | 49 ++++++++++++++++++++++++------- Err bitreich.org 70 i Err bitreich.org 70 i2 files changed, 54 insertions(+), 20 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,27 +1,32 @@ Err bitreich.org 70 i + optimize redraws (i.e., avoid to redraw if possible) Err bitreich.org 70 i - move configs in config.h Err bitreich.org 70 i - add Makefile Err bitreich.org 70 i-- auto-arrow 'A' (automatic end-char) Err bitreich.org 70 i-- change screen management (i.e., use an array of lines) Err bitreich.org 70 i+- change screen management (i.e., dynamic array of lines) Err bitreich.org 70 i+- get screen geometry Err bitreich.org 70 i+- add action multiplier (e.g., "7h" moves left by 7 cols) Err bitreich.org 70 i+- use [ENTER] to confirm arrow, boxes, and text (useful for scripting) Err bitreich.org 70 i+- add scripting mode option ("-s"?) 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 - parse control characters Err bitreich.org 70 i - parse arrows (text-mode will allow movements as well) Err bitreich.org 70 i-- implement CTRL+G as abort (aside ESC) Err bitreich.org 70 i-- change "g" command: Err bitreich.org 70 i- - g-g (goto top-left) Err bitreich.org 70 i- - g-G (goto bottom-right) Err bitreich.org 70 i- - g-m (goto middle) Err bitreich.org 70 i- - g-[hjkl] (goto leftmost, bottom, top, rightmost) Err bitreich.org 70 i+- (?) implement CTRL+G as abort (aside ESC) Err bitreich.org 70 i+- add crop command (c) Err bitreich.org 70 i + visual selection Err bitreich.org 70 i- - crop Err bitreich.org 70 i+ - crop-to Err bitreich.org 70 i - yank/put Err bitreich.org 70 i * fill Err bitreich.org 70 i * delete 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 i-- get screen geometry Err bitreich.org 70 i - allow scrolling (both vertical and horizontal) Err bitreich.org 70 i+- auto-arrow 'A' (automatic end-char) Err bitreich.org 70 i+* change "g" command: Err bitreich.org 70 i+ - g-g (goto top-left) Err bitreich.org 70 i+ - g-G (goto bottom-right) Err bitreich.org 70 i+ - g-m (goto middle) Err bitreich.org 70 i+ - g-[hjkl] (goto leftmost, bottom, top, rightmost) Err bitreich.org 70 i * move style commands in a separate function Err bitreich.org 70 i (and allow style change in all the modes...) Err bitreich.org 70 i * add "vis" (for visual) in mode strings Err bitreich.org 70 1diff --git a/gramscii.c b/gramscii.c /scm/gramscii/file/gramscii.c.gph bitreich.org 70 i@@ -273,6 +273,44 @@ void go_to(int where){ Err bitreich.org 70 i show_cursor(); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i+void handle_goto(){ Err bitreich.org 70 i+ char c; Err bitreich.org 70 i+ c=getchar(); Err bitreich.org 70 i+ switch(c){ Err bitreich.org 70 i+ case 'h': Err bitreich.org 70 i+ dir = DIR_L; Err bitreich.org 70 i+ x = 0; Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case 'l': Err bitreich.org 70 i+ dir = DIR_R; Err bitreich.org 70 i+ x = WIDTH - 1; Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case 'j': Err bitreich.org 70 i+ dir = DIR_D; Err bitreich.org 70 i+ y = HEIGHT - 1; Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case 'k': Err bitreich.org 70 i+ dir = DIR_U; Err bitreich.org 70 i+ y = 0; Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case 'g': Err bitreich.org 70 i+ dir = DIR_N; Err bitreich.org 70 i+ go_to(HOME); Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case 'G': Err bitreich.org 70 i+ dir = DIR_N; Err bitreich.org 70 i+ go_to(END); Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case 'm': Err bitreich.org 70 i+ dir = DIR_N; Err bitreich.org 70 i+ go_to(MIDDLE); Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ } Err bitreich.org 70 i+ check_bound(); Err bitreich.org 70 i+ show_cursor(); Err bitreich.org 70 i+} Err bitreich.org 70 i+ Err bitreich.org 70 i+ Err bitreich.org 70 i int move_around(char c){ Err bitreich.org 70 i Err bitreich.org 70 i switch(c){ Err bitreich.org 70 i@@ -297,16 +335,7 @@ int move_around(char c){ Err bitreich.org 70 i x += step; Err bitreich.org 70 i break; Err bitreich.org 70 i case 'g': Err bitreich.org 70 i- dir = DIR_N; Err bitreich.org 70 i- go_to(HOME); Err bitreich.org 70 i- break; Err bitreich.org 70 i- case 'G': Err bitreich.org 70 i- dir = DIR_N; Err bitreich.org 70 i- go_to(END); Err bitreich.org 70 i- break; Err bitreich.org 70 i- case 'm': Err bitreich.org 70 i- dir = DIR_N; Err bitreich.org 70 i- go_to(MIDDLE); Err bitreich.org 70 i+ handle_goto(); Err bitreich.org 70 i break; Err bitreich.org 70 i default: Err bitreich.org 70 i return 0; Err bitreich.org 70 .