From 9b230368c21fae27e04855ca944221ce136a42a1 Mon Sep 17 00:00:00 2001 From: bx Date: Sat, 2 Apr 2022 15:05:07 +0000 Subject: [PATCH] added instert line command --- c_insertline.c | 22 ++++++++++++++++++++++ commands.c | 1 + efn.c | 1 + efn.h | 1 + 4 files changed, 25 insertions(+) create mode 100644 c_insertline.c diff --git a/c_insertline.c b/c_insertline.c new file mode 100644 index 0000000..f89f868 --- /dev/null +++ b/c_insertline.c @@ -0,0 +1,22 @@ +void +c_insertline(char *c) { + c += 2; + int line = atoi(c); + for(; *c != 0 && *c != ' '; c++); + c += 1; // start of text + Row *r = b_getline(buffer, line); + if (r == NULL) { + printf("%i, invalid line.\n", line); + return; + } + // ^ same as write line + r = b_insert(r); + // v same as write line + int i = 0; + for (;i < ROW_SIZE && c[i] != 0; i++) { + r->text[i] = c[i]; + } + for(;i < ROW_SIZE; i++) { + r->text[i] = 0; + } +} diff --git a/commands.c b/commands.c index 968b80a..1a969a8 100644 --- a/commands.c +++ b/commands.c @@ -7,3 +7,4 @@ NULL, ['q'] = NULL, ['Q'] = c_quit, ['S'] = c_save, +['i'] = c_insertline, diff --git a/efn.c b/efn.c index d499431..fa2d546 100644 --- a/efn.c +++ b/efn.c @@ -21,3 +21,4 @@ #include "b_getline.c" #include "c_save.c" +#include "c_insertline.c" diff --git a/efn.h b/efn.h index e118c15..1e09275 100644 --- a/efn.h +++ b/efn.h @@ -13,3 +13,4 @@ Row *b_insert(Row *); Row *b_getline(Row *, int); void c_writeline(char *); void c_save(char*); +void c_insertline(char *);