Introduction
Introduction Statistics Contact Development Disclaimer Help
check if modified before exit, and save - gramscii - A simple editor for ASCII …
Log
Files
Refs
Tags
README
LICENSE
---
commit a4c6053e9df10cc4060696d6c29e84fa3105ad0e
parent 575703d810415c9f427104ab0225a1e5916983ec
Author: KatolaZ <[email protected]>
Date: Fri, 19 Jul 2019 19:39:04 +0100
check if modified before exit, and save
Diffstat:
M TODO | 1 +
M gramscii.c | 30 +++++++++++++++++++++++++-----
2 files changed, 26 insertions(+), 5 deletions(-)
---
diff --git a/TODO b/TODO
@@ -13,6 +13,7 @@
(also do not print unmanaged chars!)
- get screen geometry
- allow scrolling (both vertical and horizontal)
+* check if modified on exit
* write to new file / default file
* delete -- 'x'
* save to file
diff --git a/gramscii.c b/gramscii.c
@@ -146,9 +146,11 @@ char* state_str(){
void status_bar(){
printf("\033[%d;1f\033[7m", HEIGHT+1);
+ printf("%100s", " ");
+ printf("\033[%d;1f\033[7m", HEIGHT+1);
printf(" x: %3d y: %3d -- mode: %4s hl: %c vl: %c cn: %c <: %c >: %c %…
x, y, state_str(), line_h, line_v, corner, mark_st, mark_end, …
-
+ printf(" [%s]", fname );
printf("\033[0m");
}
@@ -302,8 +304,10 @@ void get_box(){
status_bar();
show_cursor();
}
- if (c == 'b')
+ if (c == 'b'){
draw_box(orig_x, orig_y, FIX);
+ modified = 1;
+ }
redraw();
state = MOVE;
}
@@ -392,8 +396,10 @@ void get_arrow(){
status_bar();
show_cursor();
}
- if (c == 'a')
+ if (c == 'a'){
draw_arrow(orig_x, orig_y, arrow, arrow_len, FIX);
+ modified = 1;
+ }
redraw();
state = MOVE;
}
@@ -435,7 +441,7 @@ void write_file(){
if (!fname[0] || force_new){
get_string(fname, 255);
if (f=fopen(fname, "r")){
- if (!is_yes(get_key("File exists. Overwrite [y/N]?")) …
+ if (!is_yes(get_key("File exists. Overwrite [y/n]?")) …
fclose(f);
return;
}
@@ -450,6 +456,7 @@ void write_file(){
fprintf(f, "%s\n", screen[i]);
}
fclose(f);
+ modified = 0;
get_key("File saved.");
}
@@ -533,6 +540,7 @@ void delete(){
check_bound();
step = 1;
do_delete(orig_x, orig_y);
+ modified = 1;
orig_x = x;
orig_y = y;
redraw();
@@ -542,6 +550,17 @@ void delete(){
state = MOVE;
}
+void check_modified(){
+
+ if (modified){
+ if (!is_yes(get_key("Unsaved changes. Write to file [y/n]?")) …
+ return;
+ }
+ write_file(0);
+ }
+}
+
+
void commands(){
@@ -617,8 +636,9 @@ void commands(){
case '>':
toggle_end_mark();
break;
- case 'Q':
case 'q':
+ check_modified();
+ case 'Q':
cleanup(0);
exit(0);
break;
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.