diff options
Diffstat (limited to 'libf2c/libF77/system_.c')
-rw-r--r-- | libf2c/libF77/system_.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/libf2c/libF77/system_.c b/libf2c/libF77/system_.c new file mode 100644 index 00000000000..ed024a14ded --- /dev/null +++ b/libf2c/libF77/system_.c @@ -0,0 +1,36 @@ +/* f77 interface to system routine */ + +#include "f2c.h" + +#ifdef KR_headers +extern char *F77_aloc(); + + integer +G77_system_0 (s, n) register char *s; ftnlen n; +#else +#undef abs +#undef min +#undef max +#include <stdlib.h> +extern char *F77_aloc(ftnlen, char*); + + integer +G77_system_0 (register char *s, ftnlen n) +#endif +{ + char buff0[256], *buff; + register char *bp, *blast; + integer rv; + + buff = bp = n < sizeof(buff0) + ? buff0 : F77_aloc(n+1, "system_"); + blast = bp + n; + + while(bp < blast && *s) + *bp++ = *s++; + *bp = 0; + rv = system(buff); + if (buff != buff0) + free(buff); + return rv; + } |