$OpenBSD: patch-src_minibuf_c,v 1.1.1.1 2011/03/28 15:18:56 jasper Exp $ 'emacs --batch -f byte-compile-file' fails after inactivity timer fires up. the solution is to restart fgets upon receiving EINTR. afaik, read_minibuf_noninteractive is called only in the batch mode --- src/minibuf.c.orig Sat Jan 8 18:45:14 2011 +++ src/minibuf.c Wed Mar 23 20:56:39 2011 @@ -20,6 +20,7 @@ along with GNU Emacs. If not, see +#include #include #include @@ -306,12 +307,21 @@ read_minibuf_noninteractive (map, initial, prompt, bac size = 100; len = 0; line = (char *) xmalloc (size * sizeof *line); - while ((s = fgets (line + len, size - len, stdin)) != NULL - && (len = strlen (line), - len == size - 1 && line[len - 1] != '\n')) + +again: + if ((s = fgets (line + len, size - len, stdin)) != NULL) { - size *= 2; - line = (char *) xrealloc (line, size); + len = strlen (line); + if (len > 0 && line[len - 1] != '\n') + { + size *= 2; + line = (char *) xrealloc (line, size); + goto again; + } + } + else if (errno == EINTR) + { + goto again; } if (s)