iinitial commit of dynamic screen size - 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 c9a6b0faecb76984eb51754f6d188a87be025e8f /scm/gramscii/commit/c9a6b0faecb76984eb51754f6d188a87be025e8f.gph bitreich.org 70
1parent 0325743daff41b74466fb198eee5774d0c2ac004 /scm/gramscii/commit/0325743daff41b74466fb198eee5774d0c2ac004.gph bitreich.org 70
hAuthor: KatolaZ <katolaz@freaknet.org> URL:mailto:katolaz@freaknet.org bitreich.org 70
iDate: Mon, 22 Jul 2019 17:05:57 +0100 Err bitreich.org 70
i Err bitreich.org 70
iinitial commit of dynamic screen size Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M gramscii.c | 50 ++++++++++++++++++++----------- Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 32 insertions(+), 18 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/gramscii.c b/gramscii.c /scm/gramscii/file/gramscii.c.gph bitreich.org 70
i@@ -10,6 +10,7 @@ Err bitreich.org 70
i #include <unistd.h> Err bitreich.org 70
i #include <signal.h> Err bitreich.org 70
i #include <string.h> Err bitreich.org 70
i+#include <sys/ioctl.h> Err bitreich.org 70
i Err bitreich.org 70
i #define MOVE 0x00 Err bitreich.org 70
i #define BOX 0x01 Err bitreich.org 70
i@@ -27,8 +28,6 @@ Err bitreich.org 70
i #define DIR_HOR (DIR_R | DIR_L) Err bitreich.org 70
i #define DIR_VER (DIR_D | DIR_U) Err bitreich.org 70
i Err bitreich.org 70
i-#define WIDTH 100 Err bitreich.org 70
i-#define HEIGHT 25 Err bitreich.org 70
i Err bitreich.org 70
i #define NOFIX 0x0 Err bitreich.org 70
i #define FIX 0x1 Err bitreich.org 70
i@@ -52,7 +51,8 @@ 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-char screen[HEIGHT][WIDTH+1]; Err bitreich.org 70
i+char **screen; Err bitreich.org 70
i+int WIDTH, HEIGHT; Err bitreich.org 70
i Err bitreich.org 70
i int state; Err bitreich.org 70
i int dir; Err bitreich.org 70
i@@ -121,7 +121,7 @@ char* state_str(){ Err bitreich.org 70
i void status_bar(){ Err bitreich.org 70
i Err bitreich.org 70
i printf("\033[%d;1f\033[7m", HEIGHT+1); Err bitreich.org 70
i- printf("%100s", " "); Err bitreich.org 70
i+ printf("%*s", WIDTH-1, ""); Err bitreich.org 70
i printf("\033[%d;1f\033[7m", HEIGHT+1); Err bitreich.org 70
i printf(" x:%3d y:%3d -- MODE:%4s HL:%c VL:%c CN:%c SP:%c EP:%c %10s", Err bitreich.org 70
i x, y, state_str(), line_h, line_v, corner, mark_st, mark_end, ""); Err bitreich.org 70
i@@ -132,12 +132,12 @@ void status_bar(){ Err bitreich.org 70
i printf("\033[0m"); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i-char get_key(char *s){ Err bitreich.org 70
i+char get_key(char *msg){ Err bitreich.org 70
i Err bitreich.org 70
i printf("\033[%d;1f\033[7m", HEIGHT+1); Err bitreich.org 70
i- printf("%100s", " "); Err bitreich.org 70
i+ printf("%*s", WIDTH, ""); Err bitreich.org 70
i printf("\033[%d;1f\033[7m", HEIGHT+1); Err bitreich.org 70
i- printf("%s ", s); Err bitreich.org 70
i+ printf("%s", msg); Err bitreich.org 70
i printf("\033[0m"); Err bitreich.org 70
i return getchar(); Err bitreich.org 70
i } Err bitreich.org 70
i@@ -145,7 +145,7 @@ char get_key(char *s){ Err bitreich.org 70
i void get_string(char *msg, char *s, int sz){ Err bitreich.org 70
i Err bitreich.org 70
i printf("\033[%d;1f\033[7m", HEIGHT+1); Err bitreich.org 70
i- printf("%100s", " "); Err bitreich.org 70
i+ printf("%*s", WIDTH, ""); Err bitreich.org 70
i printf("\033[%d;1f\033[7m", HEIGHT+1); Err bitreich.org 70
i /* We must activate echo now */ Err bitreich.org 70
i t3 = t2; Err bitreich.org 70
i@@ -235,14 +235,6 @@ void reset_styles(){ Err bitreich.org 70
i Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i-void init_screen(){ Err bitreich.org 70
i- int i; Err bitreich.org 70
i- for(i=0; i<HEIGHT; i++){ Err bitreich.org 70
i- memset(screen[i], ' ', WIDTH); Err bitreich.org 70
i- screen[i][WIDTH]='\0'; Err bitreich.org 70
i- } Err bitreich.org 70
i- reset_styles(); Err bitreich.org 70
i-} Err bitreich.org 70
i Err bitreich.org 70
i void redraw(){ Err bitreich.org 70
i int i; Err bitreich.org 70
i@@ -738,6 +730,28 @@ vis_exit: Err bitreich.org 70
i Err bitreich.org 70
i /*** Initialisation ***/ Err bitreich.org 70
i Err bitreich.org 70
i+void init_screen(){ Err bitreich.org 70
i+ int i; Err bitreich.org 70
i+ struct winsize wsz; Err bitreich.org 70
i+ Err bitreich.org 70
i+ if (!ioctl(STDIN_FILENO, TIOCGWINSZ, &wsz)){ Err bitreich.org 70
i+ WIDTH=wsz.ws_col; Err bitreich.org 70
i+ HEIGHT=wsz.ws_row - 1; Err bitreich.org 70
i+ } Err bitreich.org 70
i+ else { Err bitreich.org 70
i+ WIDTH=8; Err bitreich.org 70
i+ HEIGHT=24; Err bitreich.org 70
i+ } Err bitreich.org 70
i+ screen = malloc(HEIGHT * sizeof(char *)); Err bitreich.org 70
i+ for (i=0; i<HEIGHT; i++){ Err bitreich.org 70
i+ screen[i] = malloc((WIDTH+1) * sizeof(char)); Err bitreich.org 70
i+ memset(screen[i], 32, WIDTH); Err bitreich.org 70
i+ screen[WIDTH]='\0'; Err bitreich.org 70
i+ } Err bitreich.org 70
i+ reset_styles(); Err bitreich.org 70
i+} Err bitreich.org 70
i+ Err bitreich.org 70
i+ Err bitreich.org 70
i void init(){ Err bitreich.org 70
i Err bitreich.org 70
i signal(SIGHUP, cleanup); Err bitreich.org 70
i@@ -751,8 +765,8 @@ void init(){ Err bitreich.org 70
i tcsetattr(0, TCSANOW, &t2); Err bitreich.org 70
i Err bitreich.org 70
i init_screen(); Err bitreich.org 70
i- x = WIDTH/2; Err bitreich.org 70
i- y = HEIGHT/2; Err bitreich.org 70
i+ x = 0; Err bitreich.org 70
i+ y = 0; Err bitreich.org 70
i modified = 0; Err bitreich.org 70
i fname[0] = '\0'; Err bitreich.org 70
i redraw(); Err bitreich.org 70
.
Response:
text/plain