Mercurial > hg > xemacs-beta
diff lib-src/wakeup.c @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | ac2d302a0011 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib-src/wakeup.c Mon Aug 13 08:45:50 2007 +0200 @@ -0,0 +1,56 @@ +/* Program to produce output at regular intervals. */ + +#include <../src/config.h> + +#if __STDC__ || defined(STDC_HEADERS) +#include <stdlib.h> +#include <unistd.h> +#endif + +#include <stdio.h> +#include <sys/types.h> + +#ifdef TIME_WITH_SYS_TIME +#include <sys/time.h> +#include <time.h> +#else +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#else +#include <time.h> +#endif +#endif + +struct tm *localtime (); + +void +main (argc, argv) + int argc; + char **argv; +{ + int period = 60; + time_t when; + struct tm *tp; + + if (argc > 1) + period = atoi (argv[1]); + + while (1) + { + /* Make sure wakeup stops when Emacs goes away. */ + if (getppid () == 1) + exit (0); + printf ("Wake up!\n"); + fflush (stdout); + /* If using a period of 60, produce the output when the minute + changes. */ + if (period == 60) + { + time (&when); + tp = localtime (&when); + sleep (60 - tp->tm_sec); + } + else + sleep (period); + } +}