/* -*-c-*-
*
- * $Id: xcatch.c,v 1.7 1999/05/21 22:09:19 mdw Exp $
+ * $Id: xcatch.c,v 1.8 1999/06/19 23:42:55 mdw Exp $
*
* Catch input and trap it in an X window
*
/*----- Revision history --------------------------------------------------*
*
* $Log: xcatch.c,v $
+ * Revision 1.8 1999/06/19 23:42:55 mdw
+ * Improve signal handling. Fix options parsing to POSIX order only.
+ *
* Revision 1.7 1999/05/21 22:09:19 mdw
* Take advantage of new dynamic string macros.
*
{
pid_t k;
int s;
+ int e = errno;
for (;;) {
k = waitpid(-1, &s, WNOHANG);
status = 127;
}
}
+ errno = e;
}
/* --- Main program --- */
{ "font", OPTF_ARGREQ, 0, 'F' },
{ 0, 0, 0, 0 }
};
- int i = mdwopt(argc, argv, "huvf:F:", opt, 0, 0, 0);
+ int i = mdwopt(argc, argv, "+huvf:F:", opt, 0, 0, 0);
if (i < 0)
break;
sa.sa_handler = reap;
sigemptyset(&sa.sa_mask);
- sa.sa_flags = 0;
+ sa.sa_flags = SA_NOCLDSTOP;
+#ifdef SA_RESTART
+ sa.sa_flags |= SA_RESTART;
+#endif
sigaction(SIGCHLD, &sa, 0);
/* --- Start a child program --- */