Browse Source

Add hacky save "feature" (until I make a real one)

master
cancel 6 years ago
parent
commit
12dfcde0b5
  1. 2
      field.c
  2. 14
      tui_main.c

2
field.c

@ -54,7 +54,7 @@ void field_fput(Field* f, FILE* stream) {
Glyph* row_p = f_buffer + f_width * iy; Glyph* row_p = f_buffer + f_width * iy;
for (Usz ix = 0; ix < f_width; ++ix) { for (Usz ix = 0; ix < f_width; ++ix) {
char c = row_p[ix]; char c = row_p[ix];
out_buffer[ix] = glyph_char_is_valid(c) ? c : '!'; out_buffer[ix] = glyph_char_is_valid(c) ? c : '?';
} }
out_buffer[f_width] = '\n'; out_buffer[f_width] = '\n';
out_buffer[f_width + 1] = '\0'; out_buffer[f_width + 1] = '\0';

14
tui_main.c

@ -1459,6 +1459,16 @@ void app_input_cmd(App_state* a, App_input_cmd ev) {
} }
} }
bool app_hacky_try_save(App_state* a) {
if (!a->filename) return false;
if (a->field.height == 0 || a->field.width == 0) return false;
FILE* f = fopen(a->filename, "w");
if (!f) return false;
field_fput(&a->field, f);
fclose(f);
return true;
}
enum { enum {
Argopt_margins = UCHAR_MAX + 1, Argopt_margins = UCHAR_MAX + 1,
Argopt_osc_server, Argopt_osc_server,
@ -1839,6 +1849,10 @@ int main(int argc, char** argv) {
app_input_character(&app_state, '.'); app_input_character(&app_state, '.');
break; break;
case KEY_F(2):
app_hacky_try_save(&app_state);
break;
default: default:
if (key >= CHAR_MIN && key <= CHAR_MAX && is_valid_glyph((Glyph)key)) { if (key >= CHAR_MIN && key <= CHAR_MAX && is_valid_glyph((Glyph)key)) {
app_input_character(&app_state, (char)key); app_input_character(&app_state, (char)key);

Loading…
Cancel
Save