view lib-src/=wakeup.c @ 6038:2f1deaa86ee2

Removed all support for Emacs-18: Removed autoload for `backquote'. Removed arglist specifications for `documentation' and `fset'. (ad-emacs19-p, ad-use-jwz-compiler): Removed these variables. (ad-lemacs-p, ad-v19-compiled-p, ad-subr-arglist, ad-make-advised-docstring): Removed reference to `ad-emacs19-p'. (ad-compiled-p): Renamed from `ad-v19-compiled-p'. Removed old definition of `ad-compiled-p'. (ad-compiled-code): Renamed from `ad-v19-compiled-code'. (ad-arglists, ad-docstring, ad-interactive-form): Use new names. (ad-body-forms): Always return nil for compiled definitions. (ad-compile-function): Simplified, because the v19 incarnation of `byte-compile' can compile macros. (ad-real-byte-codify): Removed. (ad-execute-defadvices): Removed. The `defadvice's it contained are now at the top level. (ad-advised-byte-code-definition): Renamed to `ad-advised-byte-code' and removed the definition of `ad-advised-byte-code' via `fset'. (ad-advised-byte-code-definition, ad-recover-byte-code, ad-stop-advice, ad-recover-normality): Removed `ad-real-byte-codify'-cation of their definitions. (ad-adjust-stack-sizes): Removed. (ad-enable-definition-hooks, ad-disable-definition-hooks): Removed v19 conditionalization. Fixed the problematic interaction between the byte-compiler and Advice when `ad-activate-on-definition' was t which resulted in erroneous compilation of nested `defun/defmacro's: (byte-compile-from-buffer, byte-compile-top-level): Advised to temporarily deactivate the advice of `defun/defmacro'. (ad-advised-definers, ad-advised-byte-compilers): New variables. (ad-enable-definition-hooks, ad-disable-definition-hooks): En/disable the advised byte-compiler entry points. (defadvice): Implement a `freeze' option which expands the `defadvice' into a redefining and dumpable `defun/defmacro' whose documentation can be written to the `DOC' file. Frozen advices cannot be undone, hence, they do not need any Advice runtime support. (ad-defadvice-flags): Add `freeze' flag. (ad-make-advised-docstring, ad-make-single-advice-docstring): New STYLE option for `plain' and `freeze' styles. Slightly changed the default formatting of advised docstrings. (ad-make-plain-docstring, ad-make-freeze-docstring): New functions. (ad-recover-all, ad-scan-byte-code-for-fsets): Removed unused condition variable `ignore-errors'. (ad-save-real-definition): New macro to save real definitions of functions used by Advice. Use `ad-save-real-definition' to save definitions of `fset', `byte-code' and now also `documentation'. (ad-subr-arglist, ad-docstring, ad-make-advised-docstring): Use `ad-real-documentation' to avoid interference with the advised version of `documentation'. (ad-execute-defadvices): Copy advice infos. (ad-start-advice-on-load): Default changed to t.
author Richard M. Stallman <rms@gnu.org>
date Wed, 23 Feb 1994 03:57:07 +0000
parents 1fc792473491
children dd3b83e4ceb0
line wrap: on
line source

/* Program to produce output at regular intervals.  */

#include <config.h>

#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 ();

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);
    }
}