|
|
|
@ -61,13 +61,20 @@ void buffer_insert(char ch, Buffer* buffer) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void buffer_delete(Buffer* buffer) {
|
|
|
|
|
void buffer_delete_front(Buffer* buffer) {
|
|
|
|
|
if (buffer->start != buffer->text) {
|
|
|
|
|
buffer->start--;
|
|
|
|
|
buffer->gap_size++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void buffer_delete_back(Buffer* buffer) {
|
|
|
|
|
if (buffer->end != buffer->text + buffer->size) {
|
|
|
|
|
buffer->end++;
|
|
|
|
|
buffer->gap_size++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void buffer_right(Buffer* buffer) {
|
|
|
|
|
if (buffer->end != buffer->text + buffer->size) {
|
|
|
|
|
char c = *(buffer->end);
|
|
|
|
@ -248,7 +255,11 @@ int main(int argc, char** argv) {
|
|
|
|
|
|
|
|
|
|
switch(ch) {
|
|
|
|
|
case KEY_BACKSPACE:
|
|
|
|
|
buffer_delete(buffer);
|
|
|
|
|
buffer_delete_front(buffer);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case KEY_DC:
|
|
|
|
|
buffer_delete_back(buffer);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case KEY_LEFT:
|
|
|
|
|