iremove trailing blank lines in write_file - change check_bound - 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 82a7c12e8338288ccb40d213fcc9e15d102aa968 /scm/gramscii/commit/82a7c12e8338288ccb40d213fcc9e15d102aa968.gph bitreich.org 70
1parent 62713aaf65264950aecad9237d50e911d7dad893 /scm/gramscii/commit/62713aaf65264950aecad9237d50e911d7dad893.gph bitreich.org 70
hAuthor: KatolaZ <katolaz@freaknet.org> URL:mailto:katolaz@freaknet.org bitreich.org 70
iDate: Thu, 1 Aug 2019 16:42:36 +0100 Err bitreich.org 70
i Err bitreich.org 70
iremove trailing blank lines in write_file - change check_bound Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M draw.c | 33 ++++++++++++++++--------------- Err bitreich.org 70
i M files.c | 14 +++++++++++--- Err bitreich.org 70
i M gramscii.h | 6 ++++-- Err bitreich.org 70
i M lineset.c | 9 +++++++-- Err bitreich.org 70
i M main.c | 2 +- Err bitreich.org 70
i M screen.c | 14 +++++++------- Err bitreich.org 70
i Err bitreich.org 70
i6 files changed, 47 insertions(+), 31 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/draw.c b/draw.c /scm/gramscii/file/draw.c.gph bitreich.org 70
i@@ -94,7 +94,7 @@ void get_text(FILE *fc){ Err bitreich.org 70
i if (x >= WIDTH) Err bitreich.org 70
i x = orig_x; Err bitreich.org 70
i } Err bitreich.org 70
i- check_bound(); Err bitreich.org 70
i+ check_bound(&x, &y); Err bitreich.org 70
i status_bar(); Err bitreich.org 70
i show_cursor(); Err bitreich.org 70
i } Err bitreich.org 70
i@@ -150,7 +150,7 @@ void get_box(FILE *fc){ Err bitreich.org 70
i goto update_box; Err bitreich.org 70
i if (!move_around(c, fc)) Err bitreich.org 70
i continue; Err bitreich.org 70
i- check_bound(); Err bitreich.org 70
i+ check_bound(&x, &y); Err bitreich.org 70
i redraw(); Err bitreich.org 70
i step = 1; Err bitreich.org 70
i update_box: Err bitreich.org 70
i@@ -166,19 +166,19 @@ update_box: Err bitreich.org 70
i mode = MOVE; Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i-void draw_arrow(int x, int y, char *a, int a_len, int fix){ Err bitreich.org 70
i+void draw_arrow(int xl, int yl, char *a, int a_len, int fix){ Err bitreich.org 70
i Err bitreich.org 70
i int i, j, cur_dir; Err bitreich.org 70
i char line; Err bitreich.org 70
i void (*f)(int, int, char); Err bitreich.org 70
i Err bitreich.org 70
i- a_miny = a_maxy = y; Err bitreich.org 70
i+ a_miny = a_maxy = yl; Err bitreich.org 70
i if (fix == FIX) Err bitreich.org 70
i f = set_xy; Err bitreich.org 70
i else Err bitreich.org 70
i f = draw_xy; Err bitreich.org 70
i Err bitreich.org 70
i- f(x,y,mark_st); Err bitreich.org 70
i+ f(xl, yl, mark_st); Err bitreich.org 70
i if (!a_len){ Err bitreich.org 70
i show_cursor(); Err bitreich.org 70
i return; Err bitreich.org 70
i@@ -189,27 +189,28 @@ void draw_arrow(int x, int y, char *a, int a_len, int fix){ Err bitreich.org 70
i /* If we are switching between horizontal and vertical, put a "corner" */ Err bitreich.org 70
i if (((cur_dir & DIR_HOR) && (a[i] & DIR_VER)) || Err bitreich.org 70
i ((cur_dir & DIR_VER) && (a[i] & DIR_HOR))){ Err bitreich.org 70
i- f(x,y,corner); Err bitreich.org 70
i+ f(xl, yl, corner); Err bitreich.org 70
i show_cursor(); Err bitreich.org 70
i } Err bitreich.org 70
i } Err bitreich.org 70
i for(j=0; j<a[i+1]; j++){ Err bitreich.org 70
i line = (a[i] & DIR_L) || (a[i] & DIR_R) ? line_h : line_v; Err bitreich.org 70
i- x += progr_x(a[i]); Err bitreich.org 70
i- y += progr_y(a[i]); Err bitreich.org 70
i- if (y < a_miny) a_miny = y; Err bitreich.org 70
i- if (y > a_maxy) a_maxy = y; Err bitreich.org 70
i- f(x, y, line); Err bitreich.org 70
i+ xl += progr_x(a[i]); Err bitreich.org 70
i+ yl += progr_y(a[i]); Err bitreich.org 70
i+ check_bound(&xl, &yl); Err bitreich.org 70
i+ if (yl < a_miny) a_miny = yl; Err bitreich.org 70
i+ if (yl > a_maxy) a_maxy = yl; Err bitreich.org 70
i+ f(xl, yl, line); Err bitreich.org 70
i } Err bitreich.org 70
i /* f(x,y,mark_end);*/ Err bitreich.org 70
i cur_dir = a[i]; Err bitreich.org 70
i } Err bitreich.org 70
i if (autoend){ Err bitreich.org 70
i if (cur_dir != DIR_N) Err bitreich.org 70
i- f(x,y, get_mark(cur_dir)); Err bitreich.org 70
i+ f(xl,yl, get_mark(cur_dir)); Err bitreich.org 70
i } Err bitreich.org 70
i else Err bitreich.org 70
i- f(x,y,mark_end); Err bitreich.org 70
i+ f(xl,yl,mark_end); Err bitreich.org 70
i show_cursor(); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i@@ -235,7 +236,7 @@ void get_arrow(FILE *fc){ Err bitreich.org 70
i goto update_arrow; Err bitreich.org 70
i if (!move_around(c, fc)) Err bitreich.org 70
i continue; Err bitreich.org 70
i- check_bound(); Err bitreich.org 70
i+ check_bound(&x, &y); Err bitreich.org 70
i /* FIXME: if we are out of bound, do nothing? */ Err bitreich.org 70
i if (arrow_len == arrow_sz){ Err bitreich.org 70
i arrow_sz *=2; Err bitreich.org 70
i@@ -289,7 +290,7 @@ void erase(FILE *fc){ Err bitreich.org 70
i show_cursor(); Err bitreich.org 70
i while((c=fgetc(fc))!=EOF && c!=27 && c!= 'x' && c != '\n'){ Err bitreich.org 70
i if (!move_around(c, fc)) continue; Err bitreich.org 70
i- check_bound(); Err bitreich.org 70
i+ check_bound(&x, &y); Err bitreich.org 70
i if (first || Err bitreich.org 70
i (y != orig_y && ! opened) || Err bitreich.org 70
i (y == orig_y && x != orig_x && !opened) ){ Err bitreich.org 70
i@@ -354,7 +355,7 @@ void visual_box(FILE *fc){ Err bitreich.org 70
i goto vis_exit; Err bitreich.org 70
i break; Err bitreich.org 70
i } Err bitreich.org 70
i- check_bound(); Err bitreich.org 70
i+ check_bound(&x, &y); Err bitreich.org 70
i set_video(VIDEO_NRM); Err bitreich.org 70
i redraw(); Err bitreich.org 70
i step = 1; Err bitreich.org 70
1diff --git a/files.c b/files.c /scm/gramscii/file/files.c.gph bitreich.org 70
i@@ -7,7 +7,7 @@ Err bitreich.org 70
i Err bitreich.org 70
i void write_file(FILE *fc){ Err bitreich.org 70
i FILE *fout; Err bitreich.org 70
i- int i; Err bitreich.org 70
i+ int i, ne; Err bitreich.org 70
i Err bitreich.org 70
i if (!fname[0] || force_new){ Err bitreich.org 70
i get_string(fc, "Write to: ", fname, 255); Err bitreich.org 70
i@@ -23,8 +23,16 @@ void write_file(FILE *fc){ Err bitreich.org 70
i get_key(fc, "Error opening file."); Err bitreich.org 70
i return; Err bitreich.org 70
i } Err bitreich.org 70
i+ ne = 0; Err bitreich.org 70
i for (i=0; i<HEIGHT; i++){ Err bitreich.org 70
i- fprintf(fout, "%s\n", screen.l[i].s); Err bitreich.org 70
i+ if (strlen(screen.l[i].s)){/* remove trailing blank lines */ Err bitreich.org 70
i+ /* put the empty lines preceeding the current non-empty one */ Err bitreich.org 70
i+ while (ne--) Err bitreich.org 70
i+ fprintf(fout, "\n"); Err bitreich.org 70
i+ fprintf(fout, "%s\n", screen.l[i].s); Err bitreich.org 70
i+ ne = 0; Err bitreich.org 70
i+ } Err bitreich.org 70
i+ else ne++; Err bitreich.org 70
i } Err bitreich.org 70
i fclose(fout); Err bitreich.org 70
i modified = 0; Err bitreich.org 70
i@@ -51,7 +59,7 @@ void load_file(FILE *fc){ Err bitreich.org 70
i if ((fin=fopen(newfname, "r")) != NULL){ Err bitreich.org 70
i i = 0; Err bitreich.org 70
i while((fgets(screen.l[i].s, WIDTH+1, fin)) != NULL && i<HEIGHT){ Err bitreich.org 70
i- screen.l[i].lst = strlen(screen.l[i].s) - 1; Err bitreich.org 70
i+ screen.l[i].lst = strlen(screen.l[i].s) - 2; Err bitreich.org 70
i screen.l[i].n = i; Err bitreich.org 70
i screen.l[i].s[strlen(screen.l[i].s)-1]='\0'; Err bitreich.org 70
i i++; Err bitreich.org 70
1diff --git a/gramscii.h b/gramscii.h /scm/gramscii/file/gramscii.h.gph bitreich.org 70
i@@ -82,7 +82,9 @@ typedef struct{ Err bitreich.org 70
i #define progr_x(d) ((d) == DIR_L ? -1 : (d) == DIR_R ? 1 : 0) Err bitreich.org 70
i #define progr_y(d) ((d) == DIR_U ? -1 : (d) == DIR_D ? 1 : 0) Err bitreich.org 70
i Err bitreich.org 70
i-#define DEBUG 1 Err bitreich.org 70
i+/* Err bitreich.org 70
i+ * #define DEBUG 1 Err bitreich.org 70
i+ */ Err bitreich.org 70
i Err bitreich.org 70
i /** global variables **/ Err bitreich.org 70
i Err bitreich.org 70
i@@ -139,7 +141,7 @@ struct termios t1, t2, t3; Err bitreich.org 70
i void reset_styles(); Err bitreich.org 70
i void redraw(); Err bitreich.org 70
i int move_around(char c, FILE *fc); Err bitreich.org 70
i-void check_bound(); Err bitreich.org 70
i+void check_bound(int *x, int *y); Err bitreich.org 70
i void status_bar(); Err bitreich.org 70
i void show_cursor(); Err bitreich.org 70
i void set_cur(char c); Err bitreich.org 70
1diff --git a/lineset.c b/lineset.c /scm/gramscii/file/lineset.c.gph bitreich.org 70
i@@ -144,13 +144,18 @@ void copy_lines_to_ring(int y1, int y2, int which){ Err bitreich.org 70
i else Err bitreich.org 70
i idx = undo_cur + 1; Err bitreich.org 70
i if (idx >= undo_sz - 1){ Err bitreich.org 70
i- undo_sz += 10; Err bitreich.org 70
i- tmp = realloc(undo, undo_sz * sizeof(lineset_t)); Err bitreich.org 70
i+ tmp = realloc(undo, (undo_sz + 10) * sizeof(lineset_t)); Err bitreich.org 70
i if (tmp == NULL){ Err bitreich.org 70
i fprintf(stderr, "Error allocating undo buffer"); Err bitreich.org 70
i exit(1); Err bitreich.org 70
i } Err bitreich.org 70
i undo = tmp; Err bitreich.org 70
i+ for (i=0; i<10; i++){ Err bitreich.org 70
i+ undo[undo_sz + i].sz = 0; Err bitreich.org 70
i+ undo[undo_sz + i].l = NULL; Err bitreich.org 70
i+ undo[undo_sz + i].num = 0; Err bitreich.org 70
i+ } Err bitreich.org 70
i+ undo_sz += 10; Err bitreich.org 70
i } Err bitreich.org 70
i ensure_num_lines(&(undo[idx]), y2 - y1 + 1); Err bitreich.org 70
i for(i=y1; i<=y2; i++){ Err bitreich.org 70
1diff --git a/main.c b/main.c /scm/gramscii/file/main.c.gph bitreich.org 70
i@@ -135,7 +135,7 @@ void commands(FILE *fc){ Err bitreich.org 70
i break; Err bitreich.org 70
i } Err bitreich.org 70
i } Err bitreich.org 70
i- check_bound(); Err bitreich.org 70
i+ check_bound(&x, &y); Err bitreich.org 70
i status_bar(); Err bitreich.org 70
i show_cursor(); Err bitreich.org 70
i step = 1; Err bitreich.org 70
1diff --git a/screen.c b/screen.c /scm/gramscii/file/screen.c.gph bitreich.org 70
i@@ -196,11 +196,11 @@ void erase_screen(){ Err bitreich.org 70
i erase_line(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- if (y<0) y=0; Err bitreich.org 70
i- else if (y>=HEIGHT) y = HEIGHT -1; Err bitreich.org 70
i+void check_bound(int *x, int *y){ 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+ if (*y<0) *y=0; Err bitreich.org 70
i+ else if (*y>=HEIGHT) *y = HEIGHT -1; Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i void reset_styles(){ Err bitreich.org 70
i@@ -242,7 +242,7 @@ void go_to(int where){ Err bitreich.org 70
i y = HEIGHT/2; Err bitreich.org 70
i break; Err bitreich.org 70
i } Err bitreich.org 70
i- check_bound(); Err bitreich.org 70
i+ check_bound(&x, &y); Err bitreich.org 70
i show_cursor(); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i@@ -279,7 +279,7 @@ void handle_goto(){ 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+ check_bound(&x, &y); Err bitreich.org 70
i show_cursor(); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
.
Response:
text/plain