Annotation of researchv10dc/cmd/oworm/t0, revision 1.1.1.1

1.1       root        1: 
                      2: static Inode *inodes;
                      3: static long ip;
                      4: static long ninodes = 0;
                      5: static char *nameb;
                      6: static long np;
                      7: static long nnameb = 0;
                      8: static long nblocks;
                      9: #define                IINC            1024
                     10: #define                NINC            (64*IINC)
                     11: 
                     12: ininit()
                     13: {
                     14:        if(nnameb == 0){
                     15:                nameb = malloc((unsigned)(nnameb = NINC));
                     16:                if(nameb == 0){
                     17:                        fprint(2, "wmv: malloc fail, %d bytes\n", nnameb);
                     18:                        exit(1);
                     19:                }
                     20:        }
                     21:        np = 0;
                     22:        if(ninodes == 0){
                     23:                inodes = (Inode *)malloc(sizeof(Inode)*(unsigned)(ninodes = IINC));
                     24:                if(inodes == 0){
                     25:                        fprint(2, "wmv: malloc fail, %d inodes %d bytes\n", ninodes, ninodes*sizeof(Inode));
                     26:                        exit(1);
                     27:                }
                     28:        }
                     29:        ip = 0;
                     30: }
                     31: 
                     32: inadd(s, i)
                     33:        Superblock *s;
                     34:        register Inode *i;
                     35: {
                     36:        register long len;
                     37: 
                     38:        len = strlen(i->name.n)+1;
                     39:        if(np+len > nnameb){
                     40:                while(np+len > nnameb)
                     41:                        nnameb += NINC;
                     42:                nameb = realloc(nameb, (unsigned)nnameb);
                     43:                if(nameb == 0){
                     44:                        fprint(2, "wmv: realloc fail, %d bytes\n", nnameb);
                     45:                        exit(1);
                     46:                }
                     47:        }
                     48:        strcpy(nameb+np, i->name.n);
                     49:        i->name.o = np;
                     50:        np += len;
                     51:        if(ip == ninodes){
                     52:                ninodes += IINC;
                     53:                inodes = (Inode *)realloc((char *)inodes, (unsigned)ninodes*sizeof(Inode));
                     54:                if(inodes == 0){
                     55:                        fprint(2, "wmv: realloc fail, %d inodes %d bytes\n", ninodes, ninodes*sizeof(Inode));
                     56:                        exit(1);
                     57:                }
                     58:        }
                     59:        inodes[ip++] = *i;
                     60: }
                     61: 
                     62: inwrite(s)
                     63:        Superblock *s;
                     64: {
                     65:        char *e;
                     66: 
                     67:        if(e = lkwri(s, inodes, ip, nameb, np, 0L)){
                     68:                fprint(2, "%s\n", e);
                     69:                return(1);
                     70:        }
                     71:        return(0);
                     72: }

unix.superglobalmegacorp.com

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