aboutsummaryrefslogtreecommitdiff
path: root/editor.c
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2014-09-11 10:04:34 +0200
committerMarc André Tanner <mat@brain-dump.org>2014-09-11 10:04:34 +0200
commite324e6975367c235ed5413f76fdc3d5189cd00a2 (patch)
tree3d421c8189ebcc66263c6c7c21f4af022091bde3 /editor.c
parentaa3948409ade9064d90f3e60af5201da83b097d7 (diff)
downloadvis-e324e6975367c235ed5413f76fdc3d5189cd00a2.tar.gz
vis-e324e6975367c235ed5413f76fdc3d5189cd00a2.tar.xz
Add :qall command
Diffstat (limited to 'editor.c')
-rw-r--r--editor.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/editor.c b/editor.c
index 97d6fa9..a7ef802 100644
--- a/editor.c
+++ b/editor.c
@@ -316,9 +316,10 @@ static void editor_window_detach(Editor *ed, EditorWin *win) {
win->next = win->prev = NULL;
}
-void editor_window_close(Editor *ed) {
- EditorWin *win = ed->win;
- ed->win = win->next ? win->next : win->prev;
+void editor_window_close(EditorWin *win) {
+ Editor *ed = win->editor;
+ if (ed->win == win)
+ ed->win = win->next ? win->next : win->prev;
editor_window_detach(ed, win);
editor_window_free(ed, win);
editor_draw(ed);
@@ -343,7 +344,7 @@ err:
void editor_free(Editor *ed) {
while (ed->windows)
- editor_window_close(ed);
+ editor_window_close(ed->windows);
editor_prompt_free(ed->prompt);
text_regex_free(ed->search_pattern);
for (int i = 0; i < REG_LAST; i++)