Annotation of 43BSD/usr.lib/libI77/util.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1980 Regents of the University of California.
        !             3:  * All rights reserved.  The Berkeley software License Agreement
        !             4:  * specifies the terms and conditions for redistribution.
        !             5:  *
        !             6:  *     @(#)util.c      5.1     6/7/85
        !             7:  */
        !             8: 
        !             9: /*
        !            10:  * utility routines
        !            11:  */
        !            12: 
        !            13: #include "fio.h"
        !            14: 
        !            15: extern short   ccntrl_, blzero_;
        !            16: 
        !            17: nowreading(x) unit *x;
        !            18: {
        !            19:        return(now_acc(x,"r"));
        !            20: }
        !            21: 
        !            22: nowwriting(x) unit *x;
        !            23: {
        !            24:        return(now_acc(x,"a"));
        !            25: }
        !            26: 
        !            27: LOCAL now_acc(x,mode)
        !            28: unit *x; char *mode;
        !            29: {
        !            30:        long loc;
        !            31: 
        !            32:        if (!x->ufnm)
        !            33:        {
        !            34:                errno = EBADF;
        !            35:                return(NO);
        !            36:        }
        !            37:        if (x->useek)
        !            38:                loc=ftell(x->ufd);
        !            39:        if (freopen(x->ufnm,mode,x->ufd))
        !            40:        {
        !            41:                if (x->useek)
        !            42:                        fseek(x->ufd,loc,0);
        !            43:                x->uwrt = (*mode=='a');
        !            44:                return(YES);
        !            45:        }
        !            46:        if (x->ufd = fopen(x->ufnm, (*mode=='a')? "r":"a"))
        !            47:                if (x->useek)
        !            48:                        fseek(x->ufd,loc,0);
        !            49:        return(NO);
        !            50: }
        !            51: 
        !            52: g_char(a,alen,b) char *a,*b; ftnlen alen;
        !            53: {      char *x=a+alen-1, *y=b+alen-1;
        !            54:        while (x >= a  &&  *x == ' ') {x--; y--;}
        !            55:        *(y+1) = '\0';
        !            56:        while (x >= a) *y-- = *x--;
        !            57: }
        !            58: 
        !            59: b_char(from, to, tolen) char *from, *to; ftnlen tolen;
        !            60: {      int i=0;
        !            61:        while (*from && i < tolen) {
        !            62:                *to++ = *from++;
        !            63:                i++;
        !            64:        }
        !            65:        while (i++ < tolen)
        !            66:                *to++ = ' ';
        !            67: }
        !            68: 
        !            69: char
        !            70: last_char(f) FILE *f;
        !            71: {
        !            72:        fseek(f,-2L,1);
        !            73:        if(ftell(f)) return(getc(f));
        !            74:        else return('\n');
        !            75: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.