updated for version 7.3.083
Problem: When a read() or write() is interrupted by a signal it fails.
Solution: Add read_eintr() and write_eintr().
diff --git a/src/undo.c b/src/undo.c
index 8fb46e4..bcf9463 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -1386,7 +1386,7 @@
char_u mbuf[UF_START_MAGIC_LEN];
int len;
- len = vim_read(fd, mbuf, UF_START_MAGIC_LEN);
+ len = read_eintr(fd, mbuf, UF_START_MAGIC_LEN);
close(fd);
if (len < UF_START_MAGIC_LEN
|| memcmp(mbuf, UF_START_MAGIC, UF_START_MAGIC_LEN) != 0)