diff --git a/src/ChangeLog b/src/ChangeLog index 6099f6728..23a880a21 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,4 +1,9 @@ -2005-08-15 Jindrich Makovicka +2005-08-15 Roland Illig + + * view.c (view_growbuf_read_until): When using mc_read, recover + from interrupted system calls. + +2005-08-15 Jindrich Makovicka * view.c: Made the search function interruptible. diff --git a/src/view.c b/src/view.c index b218e71c7..f679b9982 100644 --- a/src/view.c +++ b/src/view.c @@ -415,7 +415,9 @@ view_growbuf_read_until (WView *view, offset_type ofs) } } else { assert (view->datasource == DS_VFS_PIPE); - nread = mc_read (view->ds_vfs_pipe, p, bytesfree); + do { + nread = mc_read (view->ds_vfs_pipe, p, bytesfree); + } while (nread == -1 && errno == EINTR); if (nread == -1 || nread == 0) { view->growbuf_finished = TRUE; (void) mc_close (view->ds_vfs_pipe);