freebsd-nq/lib/libF77/s_paus.c
Joerg Wunsch c3ad4b4583 Update to the most recent version. Among other things, this also solves
the function naming problem for complex double function i've recently
aksed for in -committers.  (The recently committed rev 1.5 of proc.c
was actually also part of this update.)

Should the mailing lists come to an agreement that f2c better belongs
into the ports, this could be done nevertheless.  For the time being,
we've at least got a current version now.

Thanks, Steve!

Submitted by:	Steve Kargl <sgk@troutmask.apl.washington.edu>
1999-02-03 17:23:49 +00:00

89 lines
1.5 KiB
C

#include "stdio.h"
#include "f2c.h"
#define PAUSESIG 15
#include "signal1.h"
#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"
#ifdef __cplusplus
extern "C" {
#endif
extern int getpid(void), isatty(int), pause(void);
#endif
extern VOID f_exit(Void);
static VOID
waitpause(Sigarg)
{ Use_Sigarg;
return;
}
static VOID
#ifdef KR_headers
s_1paus(fin) FILE *fin;
#else
s_1paus(FILE *fin)
#endif
{
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
#ifdef KR_headers
s_paus(s, n) char *s; ftnlen n;
#else
s_paus(char *s, ftnlen n)
#endif
{
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 {
#ifdef MSDOS
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 */
#ifdef __cplusplus
}
#endif
}