diff options
Diffstat (limited to 'gnu/lib/libf2c/libF77/s_cat.c')
-rw-r--r-- | gnu/lib/libf2c/libF77/s_cat.c | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/gnu/lib/libf2c/libF77/s_cat.c b/gnu/lib/libf2c/libF77/s_cat.c deleted file mode 100644 index 4e8da1b3fdb..00000000000 --- a/gnu/lib/libf2c/libF77/s_cat.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Unless compiled with -DNO_OVERWRITE, this variant of s_cat allows the - * target of a concatenation to appear on its right-hand side (contrary - * to the Fortran 77 Standard, but in accordance with Fortran 90). - */ - -#include "f2c.h" -#ifndef NO_OVERWRITE -#include <stdio.h> -#undef abs -#undef min -#undef max -#include <stdlib.h> -extern char *F77_aloc (ftnlen, char *); -#include <string.h> -#endif /* NO_OVERWRITE */ - -void -s_cat (char *lp, char *rpp[], ftnint rnp[], ftnint * np, ftnlen ll) -{ - ftnlen i, nc; - char *rp; - ftnlen n = *np; -#ifndef NO_OVERWRITE - ftnlen L, m; - char *lp0, *lp1; - - lp0 = 0; - lp1 = lp; - L = ll; - i = 0; - while (i < n) - { - rp = rpp[i]; - m = rnp[i++]; - if (rp >= lp1 || rp + m <= lp) - { - if ((L -= m) <= 0) - { - n = i; - break; - } - lp1 += m; - continue; - } - lp0 = lp; - lp = lp1 = F77_aloc (L = ll, "s_cat"); - break; - } - lp1 = lp; -#endif /* NO_OVERWRITE */ - for (i = 0; i < n; ++i) - { - nc = ll; - if (rnp[i] < nc) - nc = rnp[i]; - ll -= nc; - rp = rpp[i]; - while (--nc >= 0) - *lp++ = *rp++; - } - while (--ll >= 0) - *lp++ = ' '; -#ifndef NO_OVERWRITE - if (lp0) - { - memcpy (lp0, lp1, L); - free (lp1); - } -#endif -} |