Annotation of researchv9/jerq/sgs/compress/tstc.c, revision 1.1.1.1

1.1       root        1: /*
                      2: *     static char ID_mn[] = "@(#) tstc.c: 1.2 3/17/82";
                      3: */
                      4: 
                      5: /*     main program for the compress utility is used as a bridge
                      6:  *     between the 3 main functions: frstpass, build, and secpass.
                      7:  */
                      8: 
                      9: 
                     10: #include <stdio.h>
                     11: #include "sdp.h"
                     12: #include "sdp1.h"
                     13: #include <signal.h>
                     14: #include "filehdr.h"
                     15: #include "syms.h"
                     16: #include "ldfcn.h"
                     17: 
                     18: long   tag_sum = 0;
                     19: int    vflag = 0;
                     20: int    pflag = 0;
                     21: extern  struct ENVIRON *ENV;
                     22: 
                     23: 
                     24: main(argc, argv)
                     25: 
                     26: int    argc;
                     27: char   *argv[];
                     28: {
                     29:        extern int      frstpass();
                     30:        extern int      secpass();
                     31:        extern int      build();
                     32:        extern int      tagfini(),
                     33:                        symfini();
                     34:        extern long     delsum;
                     35:        char            *c;
                     36:        int             nargs;
                     37: 
                     38:        nargs = argc;
                     39:        while (--argc > 0 && **++argv == '-' ) {
                     40:                --nargs;
                     41:                for ( c =argv[0]+1; *c != '\0'; c++)
                     42:                                switch(*c) {
                     43:                                        case 'v': vflag++; break;
                     44:                                        case 'p': pflag++; break;
                     45:                                        default:
                     46:                                                fprintf(stderr, "invalid option '%c' ignored \n", *c);
                     47:                                                break;
                     48:                                }  /* end of switch  */
                     49:        }  /* end of othermost while  */
                     50: 
                     51:        if ( nargs < 3 ) {
                     52:                fprintf(stderr,"usage: cprs [-v] [-p] infile outfile\n");
                     53:                exit (1);
                     54:        }
                     55: 
                     56:        if(frstpass(*argv) != SUCCESS) { 
                     57:                fprintf(stderr, "error condition: no compression\n");
                     58:                exit (1);
                     59:        }
                     60:        if ( pflag > 0)
                     61:                printf("number of tags read %ld\n",tag_sum);
                     62:        if ( delsum == 0) {
                     63:                if ( pflag > 0)
                     64:                        fprintf(stderr, "no duplicate tags\n");
                     65:                if ( cpyfile(argv[0], argv[1]) != SUCCESS)
                     66:                        fprintf(stderr,"error in copying file\n");
                     67:                kill_sdp();
                     68:                exit (2);
                     69:        }
                     70:        if ( build() != SUCCESS) {
                     71:                if ( vflag > 0)
                     72:                        fprintf(stderr,"unable to build table for compression\n");
                     73:                exit (3);
                     74:        }
                     75:        kill_sdp();
                     76:        if(secpass(argv[0], argv[1]) != SUCCESS) {
                     77:                fprintf(stderr,"couldn't compress\n");
                     78:        }
                     79: 
                     80:        exit(0);
                     81: }
                     82: 
                     83: kill_sdp()
                     84: {
                     85:        if (tagfini() != SUCCESS || symfini() != SUCCESS)
                     86:                return(FAILURE);
                     87:        else
                     88:                {
                     89:                if (sdp_vacate(ENV) == SDPERROR)
                     90:                        {
                     91:                        fprintf(stderr,"Failed to close SDP");
                     92:                        return(FAILURE);
                     93:                        }
                     94:                return(SUCCESS);
                     95:                }
                     96: }

unix.superglobalmegacorp.com

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