home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
f2csrc.zip
/
f2csrc
/
libF77
/
s_paus.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-07-28
|
1KB
|
69 lines
#include "stdio.h"
#include "f2c.h"
#define PAUSESIG 15
#ifdef KR_headers
#define Void /* void */
#define Int /* int */
#else
#define Void void
#define Int int
#undef abs
#undef min
#undef max
#include "stdlib.h"
#include "signal.h"
#ifdef __cplusplus
extern "C" {
#endif
extern int getpid(void), isatty(int), pause(void);
#endif
extern VOID f_exit(Void);
static VOID waitpause(Int n)
{
return;
}
#ifdef KR_headers
int s_paus(s, n) char *s; ftnlen n;
#else
int s_paus(char *s, ftnlen n)
#endif
{
int i;
fprintf(stderr, "PAUSE ");
if(n > 0)
for(i = 0; i<n ; ++i)
putc(*s++, stderr);
fprintf(stderr, " statement executed\n");
if( isatty(fileno(stdin)) )
{
fprintf(stderr, "To resume execution, type go. Any other input will terminate job.\n");
fflush(stderr);
if( getchar()!='g' || getchar()!='o' || getchar()!='\n' )
{
fprintf(stderr, "STOP\n");
#ifdef NO_ONEXIT
f_exit();
#endif
exit(0);
}
}
else
{
fprintf(stderr, "To resume execution, execute a kill -%d %d command\n",
PAUSESIG, getpid() );
signal(PAUSESIG, waitpause);
fflush(stderr);
pause();
}
fprintf(stderr, "Execution resumes after PAUSE.\n");
#ifdef __cplusplus
return 0; /* NOT REACHED */
}
#endif
}