1#include <stdio.h> 2#include "f2c.h" 3#define PAUSESIG 15 4 5#include "signal1.h" 6#ifdef KR_headers 7#define Void /* void */ 8#define Int /* int */ 9#else 10#define Void void 11#define Int int 12#undef abs 13#undef min 14#undef max 15#include <stdlib.h> 16#ifdef __cplusplus 17extern "C" { 18#endif 19extern int getpid(void), isatty(int), pause(void); 20#endif 21 22extern VOID f_exit(Void); 23 24 static VOID 25waitpause(Sigarg) 26{ Use_Sigarg; 27 return; 28 } 29 30 static VOID 31#ifdef KR_headers 32s_1paus(fin) FILE *fin; 33#else 34s_1paus(FILE *fin) 35#endif 36{ 37 fprintf(stderr, 38 "To resume execution, type go. Other input will terminate the job.\n"); 39 fflush(stderr); 40 if( getc(fin)!='g' || getc(fin)!='o' || getc(fin)!='\n' ) { 41 fprintf(stderr, "STOP\n"); 42#ifdef NO_ONEXIT 43 f_exit(); 44#endif 45 exit(0); 46 } 47 } 48 49 int 50#ifdef KR_headers 51s_paus(s, n) char *s; ftnlen n; 52#else 53s_paus(char *s, ftnlen n) 54#endif 55{ 56 fprintf(stderr, "PAUSE "); 57 if(n > 0) 58 fprintf(stderr, " %.*s", (int)n, s); 59 fprintf(stderr, " statement executed\n"); 60 if( isatty(fileno(stdin)) ) 61 s_1paus(stdin); 62 else { 63#if (defined (MSDOS) && !defined (GO32)) || defined (_WIN32) 64 FILE *fin; 65 fin = fopen("con", "r"); 66 if (!fin) { 67 fprintf(stderr, "s_paus: can't open con!\n"); 68 fflush(stderr); 69 exit(1); 70 } 71 s_1paus(fin); 72 fclose(fin); 73#else 74 fprintf(stderr, 75 "To resume execution, execute a kill -%d %d command\n", 76 PAUSESIG, getpid() ); 77 signal1(PAUSESIG, waitpause); 78 fflush(stderr); 79 pause(); 80#endif 81 } 82 fprintf(stderr, "Execution resumes after PAUSE.\n"); 83 fflush(stderr); 84 return 0; /* NOT REACHED */ 85#ifdef __cplusplus 86 } 87#endif 88} 89