Annotation of researchv10no/cmd/sort/cgets.c, revision 1.1

1.1     ! root        1: /* Copyright AT&T Bell Laboratories, 1993 */
        !             2: #include       <stdio.h>
        !             3: 
        !             4: /* same as fgets, but returns a char count instead of first arg.
        !             5: *  robust against null bytes in input */
        !             6: 
        !             7: int
        !             8: cgets(char *ptr, int n, FILE *iop)
        !             9: {
        !            10:        int l;
        !            11:        char *s = ptr;
        !            12:        unsigned char *t;
        !            13:        while(--n > 0) {
        !            14:                l = iop->_cnt;
        !            15:                if(l > 0) {
        !            16:                        if(l > n) l = n;
        !            17:                        t = iop->_ptr;
        !            18:                        while(--l >= 0 && (*s++ = *t++) != '\n')
        !            19:                                continue;
        !            20:                        l = t - iop->_ptr;
        !            21:                        iop->_ptr = t;
        !            22:                        iop->_cnt -= l;
        !            23:                        if(t[-1] == '\n' || (n -= l) <= 0)
        !            24:                                break;
        !            25:                }
        !            26:                l = getc(iop);
        !            27:                if(l == EOF)
        !            28:                        break;
        !            29:                *s++ = l;
        !            30:                if(l == '\n')
        !            31:                        break;
        !            32:        }
        !            33:        *s = 0;
        !            34:        return s - ptr;
        !            35: }

unix.superglobalmegacorp.com

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