freebsd-skq/contrib/libf2c/libF77/s_paus.c
2003-07-11 03:42:19 +00:00

72 lines
1.4 KiB
C

#include <stdio.h>
#include "f2c.h"
#define PAUSESIG 15
#include "signal1.h"
#undef abs
#undef min
#undef max
#include <stdlib.h>
extern int getpid (void), isatty (int), pause (void);
extern void f_exit (void);
static void
waitpause (Sigarg)
{
Use_Sigarg;
return;
}
static void
s_1paus (FILE * fin)
{
fprintf (stderr,
"To resume execution, type go. Other input will terminate the job.\n");
fflush (stderr);
if (getc (fin) != 'g' || getc (fin) != 'o' || getc (fin) != '\n')
{
fprintf (stderr, "STOP\n");
#ifdef NO_ONEXIT
f_exit ();
#endif
exit (0);
}
}
int
s_paus (char *s, ftnlen n)
{
fprintf (stderr, "PAUSE ");
if (n > 0)
fprintf (stderr, " %.*s", (int) n, s);
fprintf (stderr, " statement executed\n");
if (isatty (fileno (stdin)))
s_1paus (stdin);
else
{
#if (defined (MSDOS) && !defined (GO32)) || defined (_WIN32)
FILE *fin;
fin = fopen ("con", "r");
if (!fin)
{
fprintf (stderr, "s_paus: can't open con!\n");
fflush (stderr);
exit (1);
}
s_1paus (fin);
fclose (fin);
#else
fprintf (stderr,
"To resume execution, execute a kill -%d %d command\n",
PAUSESIG, getpid ());
signal1 (PAUSESIG, waitpause);
fflush (stderr);
pause ();
#endif
}
fprintf (stderr, "Execution resumes after PAUSE.\n");
fflush (stderr);
return 0; /* NOT REACHED */
}