about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-11-13 15:17:13 -0800
committerKartik K. Agaram <vc@akkartik.com>2021-11-13 16:13:05 -0800
commit647a2520d69242d64857307cdf284538fdf1f011 (patch)
tree8001297475e19b349519f303c1a2988d656ffdea
parentee0e7c36f588b9a80284b305fe4ba4bd549ce390 (diff)
downloadteliva-647a2520d69242d64857307cdf284538fdf1f011.tar.gz
shield kilo.c from teliva_editbuffer detail
-rw-r--r--src/kilo.c8
-rw-r--r--src/lua.c6
2 files changed, 10 insertions, 4 deletions
diff --git a/src/kilo.c b/src/kilo.c
index bbeb482..7ea4dd0 100644
--- a/src/kilo.c
+++ b/src/kilo.c
@@ -604,7 +604,7 @@ static void editorDelRow(int at) {
     E.dirty++;
 }
 
-static void editorClear(void) {
+void editorClear(void) {
     for (int j = E.numrows-1; j >= 0; j--)
       editorDelRow(j);
 }
@@ -773,7 +773,7 @@ static void editorDelChar() {
 
 /* Load the specified program in the editor memory and returns 0 on success
  * or 1 on error. */
-static int editorOpen(char *filename) {
+int editorOpen(char *filename) {
     FILE *fp;
 
     E.dirty = 0;
@@ -1171,6 +1171,7 @@ static void editorMoveCursor(int key) {
 
 extern void save_to_current_definition_and_editor_buffer(lua_State *L, char *name);
 extern void load_editor_buffer_to_current_definition_in_image(lua_State *L);
+extern void editorRefreshBuffer(void);
 static void editorGo(lua_State* L, int fd) {
     char query[KILO_QUERY_LEN+1] = {0};
     int qlen = 0;
@@ -1189,8 +1190,7 @@ static void editorGo(lua_State* L, int fd) {
             editorSetStatusMessage("");
             if (c == ENTER) {
               save_to_current_definition_and_editor_buffer(L, query);
-              editorClear();
-              editorOpen("teliva_editbuffer");
+              editorRefreshBuffer();
             }
             return;
         } else if (isprint(c)) {
diff --git a/src/lua.c b/src/lua.c
index 42fd1ec..5aabde4 100644
--- a/src/lua.c
+++ b/src/lua.c
@@ -366,9 +366,15 @@ static void save_image (lua_State *L) {
 char *Script_name = NULL;
 char **Argv = NULL;
 extern void edit(lua_State *L, char *filename, const char *message);
+extern void editorClear(void);
+extern int editorOpen(char *filename);
 void editBuffer(lua_State* L, const char* message) {
   edit(L, "teliva_editbuffer", message);
 }
+void editorRefreshBuffer(void) {
+  editorClear();
+  editorOpen("teliva_editbuffer");
+}
 
 
 void load_editor_buffer_to_current_definition_in_image(lua_State *L) {