SMOLNET PORTAL home about changes
iadd read-at-point function - 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 62267b8424170f9b136892248a77dbed3fdcbbba	/scm/gramscii/commit/62267b8424170f9b136892248a77dbed3fdcbbba.gph	bitreich.org	70
1parent 3ba178677800de55393f8ec80752ffe72660931a	/scm/gramscii/commit/3ba178677800de55393f8ec80752ffe72660931a.gph	bitreich.org	70
hAuthor: KatolaZ <katolaz@freaknet.org>	URL:mailto:katolaz@freaknet.org	bitreich.org	70
iDate:   Fri,  9 Aug 2019 07:08:35 +0100	Err	bitreich.org	70
i	Err	bitreich.org	70
iadd read-at-point function	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M TODO                                |       7 ++++---	Err	bitreich.org	70
i  M draw.c                              |       2 ++	Err	bitreich.org	70
i  M files.c                             |      47 +++++++++++++++++++++++++++++++	Err	bitreich.org	70
i  M gramscii.c                          |       5 +++++	Err	bitreich.org	70
i  M gramscii.h                          |       8 ++++++++	Err	bitreich.org	70
i  M screen.c                            |       2 ++	Err	bitreich.org	70
i	Err	bitreich.org	70
i6 files changed, 68 insertions(+), 3 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,8 +1,7 @@	Err	bitreich.org	70
i + optimize redraws (redraw only the modified rectangle)	Err	bitreich.org	70
i-- fir bug in reading commands from files	Err	bitreich.org	70
i+- fix bug in visual crop	Err	bitreich.org	70
i+- fix bug in reading commands from files	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-  - read output of command (!)	Err	bitreich.org	70
i - maybe move "text" mode to "t"	Err	bitreich.org	70
i - implement ellipse	Err	bitreich.org	70
i - (?) filled box (B)	Err	bitreich.org	70
i@@ -17,6 +16,8 @@	Err	bitreich.org	70
i - allow scrolling (both vertical and horizontal)	Err	bitreich.org	70
i - catch SIGWINCH and react appropriately (after scrolling is 	Err	bitreich.org	70
i   enabled)	Err	bitreich.org	70
i+* read file at point	Err	bitreich.org	70
i+  * read output of command (!)	Err	bitreich.org	70
i * fix bug with 'g' commands in arrow mode	Err	bitreich.org	70
i * undo (by storing lines changed across insert/remove operations)	Err	bitreich.org	70
i   * re-organise undo-ring management	Err	bitreich.org	70
1diff --git a/draw.c b/draw.c	/scm/gramscii/file/draw.c.gph	bitreich.org	70
i@@ -1,3 +1,5 @@	Err	bitreich.org	70
i+#define _POSIX_C_SOURCE 2 	Err	bitreich.org	70
i+	Err	bitreich.org	70
i #include <stdlib.h>	Err	bitreich.org	70
i #include <string.h>	Err	bitreich.org	70
i 	Err	bitreich.org	70
1diff --git a/files.c b/files.c	/scm/gramscii/file/files.c.gph	bitreich.org	70
i@@ -1,3 +1,5 @@	Err	bitreich.org	70
i+#define _POSIX_C_SOURCE 2 	Err	bitreich.org	70
i+	Err	bitreich.org	70
i #include <stdio.h>	Err	bitreich.org	70
i #include <string.h>	Err	bitreich.org	70
i #include "gramscii.h"	Err	bitreich.org	70
i@@ -37,6 +39,7 @@ void write_file(FILE *fc){	Err	bitreich.org	70
i         fclose(fout);	Err	bitreich.org	70
i         modified = 0;	Err	bitreich.org	70
i         get_key(fc, "File saved.");	Err	bitreich.org	70
i+        redraw();	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i void check_modified(FILE *fc){	Err	bitreich.org	70
i@@ -83,3 +86,47 @@ void new_file(FILE *fc){	Err	bitreich.org	70
i         modified=0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+void read_file_at(FILE *fc, int xl, int yl){	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        char nfname[512], tmp[512], *fptr, *tptr;	Err	bitreich.org	70
i+        FILE *fin;	Err	bitreich.org	70
i+        int i, j;	Err	bitreich.org	70
i+        char ftype;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        get_string(fc, "Read file: ", nfname, 511);	Err	bitreich.org	70
i+        fptr = nfname;	Err	bitreich.org	70
i+        while(*fptr && _isblank(*fptr))	Err	bitreich.org	70
i+                 fptr ++;	Err	bitreich.org	70
i+        if (*fptr == '!'){	Err	bitreich.org	70
i+                fin = popen(++fptr, "r");	Err	bitreich.org	70
i+                ftype = FPIPE;	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+        else {	Err	bitreich.org	70
i+                fin = fopen(fptr, "r");	Err	bitreich.org	70
i+                ftype = FFILE;	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+        if (fin != NULL){	Err	bitreich.org	70
i+                copy_lines_to_ring(0, HEIGHT-1, PRV_STATE);	Err	bitreich.org	70
i+                i = yl;	Err	bitreich.org	70
i+                while((fgets(tmp, WIDTH+1, fin)) != NULL && i<HEIGHT){	Err	bitreich.org	70
i+                        j = xl;	Err	bitreich.org	70
i+                        tptr = tmp;	Err	bitreich.org	70
i+                        if (strlen(tmp))	Err	bitreich.org	70
i+                                tmp[strlen(tmp) - 1] = '\0';	Err	bitreich.org	70
i+                        ensure_line_length(& (screen.l[i]), xl + strlen(tmp) + 1);	Err	bitreich.org	70
i+                        while (*tptr && j < WIDTH){	Err	bitreich.org	70
i+                                set_xy(j, i, *tptr);	Err	bitreich.org	70
i+                                j++;	Err	bitreich.org	70
i+                                tptr ++;	Err	bitreich.org	70
i+                        }	Err	bitreich.org	70
i+                        i++;	Err	bitreich.org	70
i+                }	Err	bitreich.org	70
i+                if (ftype == FFILE)	Err	bitreich.org	70
i+                        fclose(fin);	Err	bitreich.org	70
i+                else	Err	bitreich.org	70
i+                        pclose(fin);	Err	bitreich.org	70
i+                modified = 1;	Err	bitreich.org	70
i+                redraw();	Err	bitreich.org	70
i+                copy_lines_to_ring(yl, i-1, NEW_STATE);	Err	bitreich.org	70
i+        }	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@@ -20,6 +20,8 @@	Err	bitreich.org	70
i *	Err	bitreich.org	70
i */	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+#define _POSIX_C_SOURCE 2 	Err	bitreich.org	70
i+	Err	bitreich.org	70
i #include <stdio.h>	Err	bitreich.org	70
i #include <stdlib.h>	Err	bitreich.org	70
i #include <signal.h>	Err	bitreich.org	70
i@@ -124,6 +126,9 @@ void commands(FILE *fc){	Err	bitreich.org	70
i                                 case 'U':	Err	bitreich.org	70
i                                         redo_change();	Err	bitreich.org	70
i                                         break;	Err	bitreich.org	70
i+                                case 'r':	Err	bitreich.org	70
i+                                        read_file_at(fc, x, y);	Err	bitreich.org	70
i+                                        break;	Err	bitreich.org	70
i                                 case 'q':	Err	bitreich.org	70
i                                         check_modified(fc);/** FALLTHROUGH **/	Err	bitreich.org	70
i                                 case 'Q':	Err	bitreich.org	70
1diff --git a/gramscii.h b/gramscii.h	/scm/gramscii/file/gramscii.h.gph	bitreich.org	70
i@@ -1,6 +1,8 @@	Err	bitreich.org	70
i #ifndef __GRAMSCII_H__	Err	bitreich.org	70
i #define __GRAMSCII_H__	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+#define _POSIX_C_SOURCE 2 	Err	bitreich.org	70
i+	Err	bitreich.org	70
i #include <stdio.h>	Err	bitreich.org	70
i #include <termios.h>	Err	bitreich.org	70
i #include <unistd.h>	Err	bitreich.org	70
i@@ -58,6 +60,10 @@	Err	bitreich.org	70
i #define NEW_STATE 0x02	Err	bitreich.org	70
i /**/	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+/* file types */	Err	bitreich.org	70
i+#define FFILE 0x01	Err	bitreich.org	70
i+#define FPIPE 0x02	Err	bitreich.org	70
i+	Err	bitreich.org	70
i /** types **/	Err	bitreich.org	70
i 	Err	bitreich.org	70
i typedef struct{	Err	bitreich.org	70
i@@ -157,6 +163,7 @@ void go_to(int where);	Err	bitreich.org	70
i void crop_to_nonblank();	Err	bitreich.org	70
i void crop_to_rect();	Err	bitreich.org	70
i void erase_blank_lines(int y1, int y2);	Err	bitreich.org	70
i+int _isblank(int c);	Err	bitreich.org	70
i /**/	Err	bitreich.org	70
i 	Err	bitreich.org	70
i /** drawing-related functions **/	Err	bitreich.org	70
i@@ -176,6 +183,7 @@ void write_file(FILE *fc);	Err	bitreich.org	70
i void check_modified(FILE *fc);	Err	bitreich.org	70
i void load_file(FILE *fc);	Err	bitreich.org	70
i void new_file(FILE *fc);	Err	bitreich.org	70
i+void read_file_at(FILE *fc, int xl, int yl);	Err	bitreich.org	70
i /**/	Err	bitreich.org	70
i 	Err	bitreich.org	70
i /** line-related functions **/	Err	bitreich.org	70
1diff --git a/screen.c b/screen.c	/scm/gramscii/file/screen.c.gph	bitreich.org	70
i@@ -1,3 +1,5 @@	Err	bitreich.org	70
i+#define _POSIX_C_SOURCE 2 	Err	bitreich.org	70
i+	Err	bitreich.org	70
i #include <stdio.h>	Err	bitreich.org	70
i #include <stdlib.h>	Err	bitreich.org	70
i #include <string.h>	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/gramscii/commit/62267b8424170...
Content-Typetext/plain; charset=utf-8