diff options
Diffstat (limited to 'gcc/f/runtime/libI77/util.c')
-rw-r--r-- | gcc/f/runtime/libI77/util.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/gcc/f/runtime/libI77/util.c b/gcc/f/runtime/libI77/util.c new file mode 100644 index 00000000000..a24932533c1 --- /dev/null +++ b/gcc/f/runtime/libI77/util.c @@ -0,0 +1,51 @@ +#ifndef NON_UNIX_STDIO +#include <sys/types.h> +#include <sys/stat.h> +#endif +#include "f2c.h" +#include "fio.h" + + VOID +#ifdef KR_headers +g_char(a,alen,b) char *a,*b; ftnlen alen; +#else +g_char(char *a, ftnlen alen, char *b) +#endif +{ + char *x = a + alen, *y = b + alen; + + for(;; y--) { + if (x <= a) { + *b = 0; + return; + } + if (*--x != ' ') + break; + } + *y-- = 0; + do *y-- = *x; + while(x-- > a); + } + + VOID +#ifdef KR_headers +b_char(a,b,blen) char *a,*b; ftnlen blen; +#else +b_char(char *a, char *b, ftnlen blen) +#endif +{ int i; + for(i=0;i<blen && *a!=0;i++) *b++= *a++; + for(;i<blen;i++) *b++=' '; +} +#ifndef NON_UNIX_STDIO +#ifdef KR_headers +long f__inode(a, dev) char *a; int *dev; +#else +long f__inode(char *a, int *dev) +#endif +{ struct stat x; + if(stat(a,&x)<0) return(-1); + *dev = x.st_dev; + return(x.st_ino); +} +#endif |