|
|
1.1 ! root 1: #include "stdio.h" ! 2: #include "f2c.h" ! 3: #define PAUSESIG 15 ! 4: ! 5: #ifdef KR_headers ! 6: #define Void /* void */ ! 7: #define Int /* int */ ! 8: #else ! 9: #define Void void ! 10: #define Int int ! 11: #undef abs ! 12: #include "stdlib.h" ! 13: #include "signal.h" ! 14: #ifdef __cplusplus ! 15: extern "C" { ! 16: #endif ! 17: extern int getpid(void), isatty(int), pause(void); ! 18: #endif ! 19: ! 20: extern VOID f_exit(Void); ! 21: ! 22: static VOID waitpause(Int n) ! 23: { ! 24: return; ! 25: } ! 26: ! 27: #ifdef KR_headers ! 28: int s_paus(s, n) char *s; ftnlen n; ! 29: #else ! 30: int s_paus(char *s, ftnlen n) ! 31: #endif ! 32: { ! 33: int i; ! 34: ! 35: fprintf(stderr, "PAUSE "); ! 36: if(n > 0) ! 37: for(i = 0; i<n ; ++i) ! 38: putc(*s++, stderr); ! 39: fprintf(stderr, " statement executed\n"); ! 40: if( isatty(fileno(stdin)) ) ! 41: { ! 42: fprintf(stderr, "To resume execution, type go. Any other input will terminate job.\n"); ! 43: fflush(stderr); ! 44: if( getchar()!='g' || getchar()!='o' || getchar()!='\n' ) ! 45: { ! 46: fprintf(stderr, "STOP\n"); ! 47: f_exit(); ! 48: exit(0); ! 49: } ! 50: } ! 51: else ! 52: { ! 53: fprintf(stderr, "To resume execution, execute a kill -%d %d command\n", ! 54: PAUSESIG, getpid() ); ! 55: signal(PAUSESIG, waitpause); ! 56: fflush(stderr); ! 57: pause(); ! 58: } ! 59: fprintf(stderr, "Execution resumes after PAUSE.\n"); ! 60: #ifdef __cplusplus ! 61: return 0; /* NOT REACHED */ ! 62: } ! 63: #endif ! 64: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.