Annotation of researchv10no/cmd/troff/ancient.nroff/suftabmake.c, revision 1.1

1.1     ! root        1: /*     suftabmake.c  -  make suftab data file for nroff        */
        !             2: 
        !             3: 
        !             4: #include "suftab.c"
        !             5: #include "stdio.h"
        !             6: #define yes 1
        !             7: #define no 0
        !             8: 
        !             9: 
        !            10: #define deftoc(table, exists)  if (exists) {suftoc[suflet++] = filepos; \
        !            11:                                             filepos += sizeof(table);  } \
        !            12:                                    else suftoc[suflet++] = 0;
        !            13: 
        !            14: #define puttab(table)  if (!fwrite(table,sizeof(table),1,fp)) \
        !            15:                                error("? error writting suftab\n");
        !            16: 
        !            17: 
        !            18: int suftoc[26];                /* table of contents for all letters */
        !            19: int filepos = 26*sizeof(int);  /* current position in suftab */
        !            20: int suflet = 0;                /* current letter offset */
        !            21: int nothing;
        !            22: 
        !            23: 
        !            24: main()
        !            25: {      FILE *fp;               /* file descriptor */
        !            26: 
        !            27:        deftoc(sufa, yes)
        !            28:        deftoc(nothing, no)     /* no b */
        !            29:        deftoc(sufc, yes)
        !            30:        deftoc(sufd, yes)
        !            31:        deftoc(sufe, yes)
        !            32:        deftoc(suff, yes)
        !            33:        deftoc(sufg, yes)
        !            34:        deftoc(sufh, yes)
        !            35:        deftoc(sufi, yes)
        !            36:        deftoc(nothing, no)     /* no j */
        !            37:        deftoc(sufk, yes)
        !            38:        deftoc(sufl, yes)
        !            39:        deftoc(sufm, yes)
        !            40:        deftoc(sufn, yes)
        !            41:        deftoc(sufo, yes)
        !            42:        deftoc(sufp, yes)
        !            43:        deftoc(nothing, no)     /* no q */
        !            44:        deftoc(sufr, yes)
        !            45:        deftoc(sufs, yes)
        !            46:        deftoc(suft, yes)
        !            47:        deftoc(nothing, no)     /* no u */
        !            48:        deftoc(nothing, no)     /* no v */
        !            49:        deftoc(nothing, no)     /* no w */
        !            50:        deftoc(nothing, no)     /* no x */
        !            51:        deftoc(sufy, yes)
        !            52:        deftoc(nothing, no)     /* no z */
        !            53: 
        !            54: 
        !            55: /* produce output file */
        !            56: 
        !            57: 
        !            58: #ifdef unix
        !            59:        if ((fp = fopen("suftab","w")) == NULL)
        !            60: #endif
        !            61: #ifdef ibm
        !            62:        if ((fp = fopen("suftab","w,BINARY")) == NULL)
        !            63: #endif
        !            64:                error("? can't create suftab\n");
        !            65: 
        !            66:        if (!fwrite(suftoc,sizeof(suftoc),1,fp))
        !            67:                error("? can't write suftab\n");
        !            68: 
        !            69:        puttab(sufa);
        !            70:        puttab(sufc);
        !            71:        puttab(sufd);
        !            72:        puttab(sufe);
        !            73:        puttab(suff);
        !            74:        puttab(sufg);
        !            75:        puttab(sufh);
        !            76:        puttab(sufi);
        !            77:        puttab(sufk);
        !            78:        puttab(sufl);
        !            79:        puttab(sufm);
        !            80:        puttab(sufn);
        !            81:        puttab(sufo);
        !            82:        puttab(sufp);
        !            83:        puttab(sufr);
        !            84:        puttab(sufs);
        !            85:        puttab(suft);
        !            86:        puttab(sufy);
        !            87: 
        !            88:        fclose(fp);
        !            89: }
        !            90: 
        !            91: error(spt)
        !            92: char *spt;
        !            93: {      register char *p;
        !            94:        for (p=spt; (*p && putc(*p,stderr)); p++) ;
        !            95:        exit(-1);
        !            96: }

unix.superglobalmegacorp.com

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