home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / f2c-93.04.28-src.tgz / tar.out / fsf / f2c / libF77 / s_paus.c < prev    next >
C/C++ Source or Header  |  1996-09-28  |  1KB  |  65 lines

  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. }
  65.