SMOLNET PORTAL home about changes
irefactor box management -- towards trapezium - 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 e8c98a65cd161a5d2c0a76d41e39b352e083a9ab	/scm/gramscii/commit/e8c98a65cd161a5d2c0a76d41e39b352e083a9ab.gph	bitreich.org	70
1parent ce2bfb4d3a49a27bde7c8bbc6c6b1ef6f80054aa	/scm/gramscii/commit/ce2bfb4d3a49a27bde7c8bbc6c6b1ef6f80054aa.gph	bitreich.org	70
hAuthor: KatolaZ <katolaz@freaknet.org>	URL:mailto:katolaz@freaknet.org	bitreich.org	70
iDate:   Sat, 17 Aug 2019 07:43:03 +0100	Err	bitreich.org	70
i	Err	bitreich.org	70
irefactor box management -- towards trapezium	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M draw.c                              |      88 +++++++++++++++++++++++--------	Err	bitreich.org	70
i  M gramscii.h                          |      14 ++++++++++++--	Err	bitreich.org	70
i	Err	bitreich.org	70
i2 files changed, 77 insertions(+), 25 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@@ -161,7 +161,7 @@ void draw_parallelogram(int x1, int y1, char st, char fix){	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i         else	Err	bitreich.org	70
i                 f = draw_xy;	Err	bitreich.org	70
i-        if (st & BOX_PARR){	Err	bitreich.org	70
i+        if (st == BOX_PARR){	Err	bitreich.org	70
i                 minoff = dy;	Err	bitreich.org	70
i                 maxoff = 0;	Err	bitreich.org	70
i                 lean = '/';	Err	bitreich.org	70
i@@ -195,47 +195,89 @@ void draw_parallelogram(int x1, int y1, char st, char fix){	Err	bitreich.org	70
i 	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-char flip_lean(char st){	Err	bitreich.org	70
i-        if (st & BOX_PARR)	Err	bitreich.org	70
i+char flip_par_lean(char st){	Err	bitreich.org	70
i+        if (st == BOX_PARR)	Err	bitreich.org	70
i                 return BOX_PARL;	Err	bitreich.org	70
i-        else if (st & BOX_PARL)	Err	bitreich.org	70
i+        else if (st == BOX_PARL)	Err	bitreich.org	70
i                 return BOX_PARR;	Err	bitreich.org	70
i         return st;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+void draw_trapezium(int x1, int y1, char st, char fix){	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+ * draw the current box, being it an actual box, a parallelogram, or a 	Err	bitreich.org	70
i+ *  trapezium	Err	bitreich.org	70
i+ */	Err	bitreich.org	70
i+void update_box(int x1, int y1, char st, char fix){	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        if (st == BOX_RECT)	Err	bitreich.org	70
i+                draw_box(x1, y1, fix);	Err	bitreich.org	70
i+        else if (st & BOX_PAR)	Err	bitreich.org	70
i+                draw_parallelogram(x1, y1, st, fix);	Err	bitreich.org	70
i+        else if (st & BOX_TRAP)	Err	bitreich.org	70
i+                draw_trapezium(x1, y1, st, fix);	Err	bitreich.org	70
i+        status_bar();	Err	bitreich.org	70
i+        show_cursor();	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+char toggle_trap_type(char st){	Err	bitreich.org	70
i+        return st;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+int box_end(char c, char st){	Err	bitreich.org	70
i+        if (c == '\n' || 	Err	bitreich.org	70
i+            c == 27   ||	Err	bitreich.org	70
i+            ((st == BOX_RECT) &&  c == 'b') ||	Err	bitreich.org	70
i+            ((st & BOX_PAR)   &&  c == 'z') ||	Err	bitreich.org	70
i+            ((st & BOX_TRAP)  &&  c == 't'))	Err	bitreich.org	70
i+                return 1;	Err	bitreich.org	70
i+        return 0; 	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/* draw boxes, parallelograms, and trapezia */	Err	bitreich.org	70
i void get_box(FILE *fc, char st){	Err	bitreich.org	70
i         char c;	Err	bitreich.org	70
i         int orig_x=x, orig_y=y;	Err	bitreich.org	70
i         redraw();	Err	bitreich.org	70
i         step = 1;	Err	bitreich.org	70
i+#ifdef DEBUG	Err	bitreich.org	70
i+        fprintf(stderr, "box style: %d\n", st);	Err	bitreich.org	70
i+#endif	Err	bitreich.org	70
i         draw_box(x,y,NOFIX);	Err	bitreich.org	70
i-        while((c=fgetc(fc))!=EOF && c != 27 && c!= 'b' && c != '\n'){	Err	bitreich.org	70
i-                if (c == 'Z'){	Err	bitreich.org	70
i-                        st = flip_lean(st);	Err	bitreich.org	70
i+        while((c=fgetc(fc))!=EOF && !box_end(c, st)){	Err	bitreich.org	70
i+                if (c == 'Z' && (st & BOX_PAR)){	Err	bitreich.org	70
i+                        st = flip_par_lean(st);	Err	bitreich.org	70
i                         redraw();	Err	bitreich.org	70
i-                        goto update_box;	Err	bitreich.org	70
i+#ifdef DEBUG	Err	bitreich.org	70
i+        fprintf(stderr, "new parallelogram style: %d\n", st);	Err	bitreich.org	70
i+#endif	Err	bitreich.org	70
i+                        update_box(orig_x, orig_y, st, NOFIX);	Err	bitreich.org	70
i+                        continue;	Err	bitreich.org	70
i+                }	Err	bitreich.org	70
i+                else if (c == 'T' && (st & BOX_TRAP)){	Err	bitreich.org	70
i+                        st = toggle_trap_type(st);	Err	bitreich.org	70
i+                        redraw();	Err	bitreich.org	70
i+                        update_box(orig_x, orig_y, st, NOFIX);	Err	bitreich.org	70
i+                        continue;	Err	bitreich.org	70
i+                }	Err	bitreich.org	70
i+                if (change_style(c)){	Err	bitreich.org	70
i+                        update_box(orig_x, orig_y, st, NOFIX);	Err	bitreich.org	70
i+                        continue;	Err	bitreich.org	70
i                 }	Err	bitreich.org	70
i-                if (change_style(c))	Err	bitreich.org	70
i-                        goto update_box;	Err	bitreich.org	70
i                 if (!move_around(c, fc, 1)) 	Err	bitreich.org	70
i                         continue;	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-                if (st == BOX_RECT)	Err	bitreich.org	70
i-                        draw_box(orig_x, orig_y, NOFIX);	Err	bitreich.org	70
i-                else	Err	bitreich.org	70
i-                        draw_parallelogram(orig_x, orig_y, st, NOFIX);	Err	bitreich.org	70
i-                status_bar();	Err	bitreich.org	70
i-                show_cursor();	Err	bitreich.org	70
i-        }	Err	bitreich.org	70
i-        if (st == BOX_RECT && (c == 'b' || c == '\n')){	Err	bitreich.org	70
i-                draw_box(orig_x, orig_y, FIX);	Err	bitreich.org	70
i-                modified = 1;	Err	bitreich.org	70
i+                update_box(orig_x, orig_y, st, NOFIX);	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i-        else if ((st & (BOX_PARR | BOX_PARL)) &&  (c == 'z' || c == '\n')){	Err	bitreich.org	70
i-                draw_parallelogram(orig_x, orig_y, st, FIX);	Err	bitreich.org	70
i+        if (((st == BOX_RECT ) && (c == 'b' || c == '\n')) ||	Err	bitreich.org	70
i+           ( (st &  BOX_PAR  ) && (c == 'z' || c == '\n')) ||	Err	bitreich.org	70
i+           ( (st &  BOX_TRAP ) && (c == 't' || c == '\n'))){	Err	bitreich.org	70
i+                update_box(orig_x, orig_y, st, FIX);	Err	bitreich.org	70
i                 modified = 1;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i         redraw();	Err	bitreich.org	70
1diff --git a/gramscii.h b/gramscii.h	/scm/gramscii/file/gramscii.h.gph	bitreich.org	70
i@@ -36,10 +36,20 @@	Err	bitreich.org	70
i /** box style **/	Err	bitreich.org	70
i /* rectangular box */	Err	bitreich.org	70
i #define BOX_RECT 0x00	Err	bitreich.org	70
i+/* parallelograms */	Err	bitreich.org	70
i+#define BOX_PAR  0x04	Err	bitreich.org	70
i /* parallelogram (leaning right) */	Err	bitreich.org	70
i-#define BOX_PARR 0x01	Err	bitreich.org	70
i+#define BOX_PARR 0x05	Err	bitreich.org	70
i /* parallelogram (leaning left) */	Err	bitreich.org	70
i-#define BOX_PARL 0x02	Err	bitreich.org	70
i+#define BOX_PARL 0x06	Err	bitreich.org	70
i+/* trapezium */	Err	bitreich.org	70
i+#define BOX_TRAP    0x10	Err	bitreich.org	70
i+#define BOX_TRAP_UR 0x11	Err	bitreich.org	70
i+#define BOX_TRAP_UC 0x12	Err	bitreich.org	70
i+#define BOX_TRAP_UL 0x13	Err	bitreich.org	70
i+#define BOX_TRAP_DL 0x14	Err	bitreich.org	70
i+#define BOX_TRAP_DC 0x15	Err	bitreich.org	70
i+#define BOX_TRAP_DR 0x16	Err	bitreich.org	70
i /**/	Err	bitreich.org	70
i 	Err	bitreich.org	70
i #define NOFIX 0x0	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/gramscii/commit/e8c98a65cd161...
Content-Typetext/plain; charset=utf-8