From 0fa9885cda0778467ca5737ac888ece5ef371b3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Fri, 17 Jul 2015 14:38:36 +0200 Subject: vis: handle file truncation more gracefully If we use the file / virtual memory system as cache (using mmap(2)) and another process truncates the file we are editing, we have a problem. All we can do is catch the resulting SIGBUS, close the corresponding window and print a warning message. To test this use: $ dd if=/dev/zero of=TEST bs=8M count=1 $ vis TEST :! echo TRUNCATE > TEST --- editor.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'editor.c') diff --git a/editor.c b/editor.c index ad9bd4e..8628458 100644 --- a/editor.c +++ b/editor.c @@ -358,6 +358,8 @@ void editor_window_close(Win *win) { ed->windows = win->next; if (ed->win == win) ed->win = win->next ? win->next : win->prev; + if (ed->prompt_window == win) + ed->prompt_window = NULL; window_free(win); if (ed->win) ed->ui->window_focus(ed->win->ui); -- cgit v1.2.3