diff --git a/src/fileio.c b/src/fileio.c index 5d33fb9..611ccff 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -4956,6 +4956,7 @@ See Info node `(elisp)Modification Time' for more details. */) struct stat st; Lisp_Object handler; Lisp_Object filename; + int stat_status; if (NILP (buf)) b = current_buffer; @@ -4977,7 +4978,10 @@ See Info node `(elisp)Modification Time' for more details. */) filename = ENCODE_FILE (BVAR (b, filename)); - if (stat (SSDATA (filename), &st) < 0) + while ((stat_status = stat (SSDATA (filename), &st)) < 0 && errno == EINTR); + + /* if (stat (SSDATA (filename), &st) < 0) */ + if (stat_status < 0) { /* If the file doesn't exist now and didn't exist before, we say that it isn't modified, provided the error is a tame one. */