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/memline.c b/src/memline.c
index e4e5bad..7393324 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -2062,7 +2062,7 @@
fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
if (fd >= 0)
{
- if (read(fd, (char *)&b0, sizeof(b0)) == sizeof(b0))
+ if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0))
{
if (STRNCMP(b0.b0_version, "VIM 3.0", 7) == 0)
{
@@ -4392,7 +4392,7 @@
fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
if (fd >= 0)
{
- if (read(fd, (char *)&b0, sizeof(b0)) == sizeof(b0))
+ if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0))
{
/*
* If the swapfile has the same directory as the