ifiles.c - 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 ifiles.c (2694B) Err bitreich.org 70 i--- Err bitreich.org 70 i 1 #define _POSIX_C_SOURCE 200112L Err bitreich.org 70 i 2 Err bitreich.org 70 i 3 #include Err bitreich.org 70 i 4 #include Err bitreich.org 70 i 5 #include "gramscii.h" Err bitreich.org 70 i 6 Err bitreich.org 70 i 7 Err bitreich.org 70 i 8 /** extern declarations **/ Err bitreich.org 70 i 9 Err bitreich.org 70 i 10 extern lineset_t screen; /* what is visualised */ Err bitreich.org 70 i 11 Err bitreich.org 70 i 12 extern int WIDTH, HEIGHT; Err bitreich.org 70 i 13 Err bitreich.org 70 i 14 extern int force_new; Err bitreich.org 70 i 15 extern char modified; /* set to 1 if screen modified since last save */ Err bitreich.org 70 i 16 extern char fname[256]; Err bitreich.org 70 i 17 Err bitreich.org 70 i 18 /*** File management ***/ Err bitreich.org 70 i 19 Err bitreich.org 70 i 20 void write_file(FILE *fc){ Err bitreich.org 70 i 21 FILE *fout; Err bitreich.org 70 i 22 int i, ne; Err bitreich.org 70 i 23 Err bitreich.org 70 i 24 if (!fname[0] || force_new){ Err bitreich.org 70 i 25 get_string(fc, "Write to: ", fname, 255); Err bitreich.org 70 i 26 if ((fout=fopen(fname, "r"))!=NULL){ Err bitreich.org 70 i 27 if (!is_yes(get_key(fc,"File exists. Overwrite [y/n]?")) ){ Err bitreich.org 70 i 28 fclose(fout); Err bitreich.org 70 i 29 return; Err bitreich.org 70 i 30 } Err bitreich.org 70 i 31 fclose(fout); Err bitreich.org 70 i 32 } Err bitreich.org 70 i 33 } Err bitreich.org 70 i 34 if((fout=fopen(fname, "w"))==NULL){ Err bitreich.org 70 i 35 get_key(fc, "Error opening file."); Err bitreich.org 70 i 36 return; Err bitreich.org 70 i 37 } Err bitreich.org 70 i 38 ne = 0; Err bitreich.org 70 i 39 for (i=0; i