ifix bug in screen init - 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 a64ca9d14f8c197398badad39148b794757742b2 /scm/gramscii/commit/a64ca9d14f8c197398badad39148b794757742b2.gph bitreich.org 70
1parent c9a6b0faecb76984eb51754f6d188a87be025e8f /scm/gramscii/commit/c9a6b0faecb76984eb51754f6d188a87be025e8f.gph bitreich.org 70
hAuthor: KatolaZ <katolaz@freaknet.org> URL:mailto:katolaz@freaknet.org bitreich.org 70
iDate: Mon, 22 Jul 2019 18:14:51 +0100 Err bitreich.org 70
i Err bitreich.org 70
ifix bug in screen init Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M gramscii.c | 34 ++++++++++++++++++++----------- Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 22 insertions(+), 12 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@@ -51,6 +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+#define DEBUG 1 Err bitreich.org 70
i+ 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@@ -129,6 +131,9 @@ void status_bar(){ Err bitreich.org 70
i printf(" [%s]", fname ); Err bitreich.org 70
i else Err bitreich.org 70
i printf(" *%s*", fname ); Err bitreich.org 70
i+#ifdef DEBUG Err bitreich.org 70
i+ printf(" '%d' ", screen[y][x]); Err bitreich.org 70
i+#endif Err bitreich.org 70
i printf("\033[0m"); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i@@ -168,7 +173,7 @@ void show_cursor(){ Err bitreich.org 70
i printf("\033[%d;%df", y+1, x+1); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i-void set(char c){ Err bitreich.org 70
i+void set_cur(char c){ Err bitreich.org 70
i screen[y][x] = c; Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i@@ -190,7 +195,8 @@ void update_current(){ Err bitreich.org 70
i Err bitreich.org 70
i void erase_line(char *s){ Err bitreich.org 70
i while(*s){ Err bitreich.org 70
i- *s++ = BG; Err bitreich.org 70
i+ *s = BG; Err bitreich.org 70
i+ s++; Err bitreich.org 70
i } Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i@@ -214,7 +220,6 @@ void erase_screen(){ Err bitreich.org 70
i erase_line(screen[i]); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i- Err bitreich.org 70
i void check_bound(){ Err bitreich.org 70
i if (x<0) x=0; Err bitreich.org 70
i else if (x>=WIDTH) x = WIDTH-1; Err bitreich.org 70
i@@ -232,10 +237,8 @@ void reset_styles(){ Err bitreich.org 70
i line_v = vlines[cur_vl]; Err bitreich.org 70
i mark_st = st_marks[cur_start]; Err bitreich.org 70
i mark_end = end_marks[cur_end]; 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 redraw(){ Err bitreich.org 70
i int i; Err bitreich.org 70
i Err bitreich.org 70
i@@ -302,7 +305,6 @@ void handle_goto(){ 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@@ -421,12 +423,12 @@ void get_text(){ Err bitreich.org 70
i redraw(); Err bitreich.org 70
i while((c=getchar())!=EOF && c != 27){ Err bitreich.org 70
i if(c=='\n'){ Err bitreich.org 70
i- set(BG); Err bitreich.org 70
i+ set_cur(BG); Err bitreich.org 70
i y += 1; Err bitreich.org 70
i x = orig_x; Err bitreich.org 70
i } Err bitreich.org 70
i else { Err bitreich.org 70
i- set(c); Err bitreich.org 70
i+ set_cur(c); Err bitreich.org 70
i update_current(); Err bitreich.org 70
i modified = 1; Err bitreich.org 70
i x += 1; Err bitreich.org 70
i@@ -735,18 +737,26 @@ void init_screen(){ 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+ WIDTH=wsz.ws_col - 2; 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+ WIDTH=80; 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+ if (screen == NULL){ Err bitreich.org 70
i+ perror("allocating screen"); Err bitreich.org 70
i+ exit(1); Err bitreich.org 70
i+ } 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+ if (screen[i] == NULL){ Err bitreich.org 70
i+ perror("allocating screen[i]"); Err bitreich.org 70
i+ exit(1); Err bitreich.org 70
i+ } Err bitreich.org 70
i+ memset(screen[i], ' ', WIDTH * sizeof(char)); 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
.
Response:
text/plain