Annotation of 43BSDReno/contrib/isode-beta/others/quipu/photo/d_main.c, revision 1.1.1.1

1.1       root        1: /* d_main.c - make the decode routine into a stand alone program */
                      2: 
                      3: #ifndef        lint
                      4: static char *rcsid = "$Header: /f/osi/others/quipu/photo/RCS/d_main.c,v 7.1 90/03/15 11:18:08 mrose Exp $";
                      5: #endif
                      6: 
                      7: /* 
                      8:  * $Header: /f/osi/others/quipu/photo/RCS/d_main.c,v 7.1 90/03/15 11:18:08 mrose Exp $
                      9:  *
                     10:  *
                     11:  * $Log:       d_main.c,v $
                     12:  * Revision 7.1  90/03/15  11:18:08  mrose
                     13:  * quipu-sync
                     14:  * 
                     15:  * Revision 7.0  89/11/23  22:01:36  mrose
                     16:  * Release 6.0
                     17:  * 
                     18:  */
                     19: 
                     20: /*
                     21:  *                               NOTICE
                     22:  *
                     23:  *    Acquisition, use, and distribution of this module and related
                     24:  *    materials are subject to the restrictions of a license agreement.
                     25:  *    Consult the Preface in the User's Manual for the full terms of
                     26:  *    this agreement.
                     27:  *
                     28:  */
                     29: 
                     30: 
                     31: 
                     32: #include <sys/file.h>
                     33: #include <stdio.h>
                     34: #include "quipu/photo.h"
                     35: 
                     36: 
                     37: int    two_passes = 0;
                     38: 
                     39: char   *getenv ();
                     40: 
                     41: main (argc,argv)
                     42: int     argc;
                     43: char ** argv;
                     44: {
                     45: char    *inbuf;
                     46: char   *cp;
                     47: char * name;   
                     48: int    n, count, len;
                     49: char * malloc();
                     50: 
                     51:    if (argc > 1) 
                     52:        name = *++argv;
                     53:    else
                     54:        if ((name = getenv ("RDN")) == 0)
                     55:           name = "unknown";
                     56: 
                     57:    if ((len = find_size()) < 0) {
                     58:         fprintf(stderr, "\n");
                     59:         exit(-1);
                     60:    }
                     61:    if ((inbuf = malloc(len)) < 0) {
                     62:        fprintf(stderr, "PHOTO:  Couldn't malloc() %d bytes\n", n);
                     63:        exit(-1);
                     64:    }
                     65:    for (cp = inbuf, n = len; n > 0; ) {
                     66:        if ((count = read (0, cp, n)) <= 0)
                     67:            break;
                     68:        cp += count;
                     69:        n -= count;
                     70:    }
                     71:        
                     72:    if (decode_t4 (inbuf, name, len) == -1) {
                     73:        (void) fprintf (stderr,"\n");
                     74:        exit (-1);
                     75:    }
                     76:    if (two_passes && decode_t4 (inbuf, name, len) == -1) {
                     77:        (void) fprintf (stderr,"\n");
                     78:        exit (-1);
                     79:    }
                     80: }
                     81: 
                     82: static find_size()
                     83: {
                     84:        char c, i;
                     85:        long size = 0;
                     86: 
                     87:        /* read the ASN.1 "magic number" for bitstring */
                     88:        read(0, &c, 1);
                     89: 
                     90:        /* how many of the next N bytes store the size? */
                     91:        read(0, &c, 1);
                     92:        for (c &= 0x7f; c > 0; c--) {
                     93:                read(0, &i, 1);
                     94:                size = (size << 8) | (i & 0xff);
                     95:        }
                     96: 
                     97:        return(size);
                     98: }

unix.superglobalmegacorp.com

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