Browse Source

Add field_resize_raw_if_necessary

master
cancel 6 years ago
parent
commit
09697c50bf
  1. 6
      field.c
  2. 1
      field.h
  3. 2
      tui_main.c

6
field.c

@ -24,6 +24,12 @@ void field_resize_raw(Field* f, Usz height, Usz width) {
f->width = (U16)width;
}
void field_resize_raw_if_necessary(Field* field, Usz height, Usz width) {
if (field->height != height || field->width != width) {
field_resize_raw(field, height, width);
}
}
void field_deinit(Field* f) { free(f->buffer); }
void field_copy_subrect(Field* src, Field* dest, Usz src_y, Usz src_x,

1
field.h

@ -4,6 +4,7 @@
void field_init(Field* field);
void field_init_fill(Field* field, Usz height, Usz width, Glyph fill_char);
void field_resize_raw(Field* field, Usz height, Usz width);
void field_resize_raw_if_necessary(Field* field, Usz height, Usz width);
void field_deinit(Field* field);
void field_copy_subrect(Field* src, Field* dest, Usz src_y, Usz src_x,
Usz dest_y, Usz dest_x, Usz height, Usz width);

2
tui_main.c

@ -245,6 +245,8 @@ void undo_history_push(Undo_history* hist, Field* field, Usz tick_num) {
hist->first = new_node->next;
hist->first->prev = NULL;
}
field_resize_raw_if_necessary(&new_node->field, field->height,
field->width);
} else {
new_node = malloc(sizeof(Undo_node));
++hist->count;

Loading…
Cancel
Save