From 6c5bdddbb5e7f79a04a0ee2bd7a9252035151812 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Thu, 11 Sep 2014 15:52:32 +0200 Subject: Add :edit command --- editor.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'editor.c') diff --git a/editor.c b/editor.c index a7ef802..455f3ae 100644 --- a/editor.c +++ b/editor.c @@ -85,6 +85,29 @@ static void editor_windows_arrange_vertical(Editor *ed) { } } +bool editor_window_reload(EditorWin *win) { + const char *filename = text_filename(win->text); + /* can't reload unsaved file */ + if (!filename) + return false; + Text *text = text_load(filename); + if (!text) + return false; + /* check wether the text is displayed in another window */ + bool needed = false; + for (EditorWin *w = win->editor->windows; w; w = w->next) { + if (w != win && w->text == win->text) { + needed = true; + break; + } + } + if (!needed) + text_free(win->text); + win->text = text; + window_reload(win->win, text); + return true; +} + static void editor_window_split_internal(Editor *ed, const char *filename) { EditorWin *sel = ed->win; if (filename) { -- cgit v1.2.3