diff options
Diffstat (limited to 'lib/libI77/util.c')
-rw-r--r-- | lib/libI77/util.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/lib/libI77/util.c b/lib/libI77/util.c new file mode 100644 index 0000000..5275499 --- /dev/null +++ b/lib/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 |