Annotation of 43BSD/ingres/source/libq/IIcvar.c, revision 1.1

1.1     ! root        1: # include      <ingres.h>
        !             2: # include      <symbol.h>
        !             3: # include      "IIglobals.h"
        !             4: # include      <sccs.h>
        !             5: 
        !             6: SCCSID(@(#)IIcvar.c    8.2     2/10/86)
        !             7: 
        !             8: 
        !             9: /*
        !            10: **     IIcvar -- write C variable values to parser
        !            11: **
        !            12: **
        !            13: **             IIcvar is used to write the contents
        !            14: **             of a C-variable to the quel parser.
        !            15: **
        !            16: **             Floats are converted to doubles first.
        !            17: **
        !            18: */
        !            19: 
        !            20: IIcvar(obj, type, len)
        !            21: char   *obj;
        !            22: int    type;
        !            23: int    len;
        !            24: {
        !            25:        register int            length;
        !            26:        register ANYTYPE        *addr;
        !            27:        char                    t;
        !            28:        double                  d;
        !            29: 
        !            30:        t = type;       /* copy type of symbol */
        !            31:        length = len;   /* and its length */
        !            32:        addr = (ANYTYPE *) obj; /* and a pointer to it */
        !            33: 
        !            34:        switch (t)
        !            35:        {
        !            36: 
        !            37:          case opFLOAT:
        !            38:                /* convert from f4 to f8 */
        !            39:                d = addr->f4type;
        !            40:                addr = (ANYTYPE *) &d;
        !            41:                length = sizeof d;
        !            42:                t = opDOUBLE;
        !            43:                break;
        !            44: 
        !            45:          case opSTRING:
        !            46:                length = IIlength(addr) + 1;    /* length includes null byte at end */
        !            47: 
        !            48:          case opSHORT:
        !            49:          case opLONG:
        !            50:          case opDOUBLE:
        !            51:                break;
        !            52: 
        !            53:          default:
        !            54:                IIsyserr("IIcvar:bad type %d", t);
        !            55:        }
        !            56: 
        !            57: 
        !            58: #      ifdef xETR1
        !            59:        if (IIdebug)
        !            60:                printf("IIcvar:type %d, length %d\n", t, length);
        !            61: #      endif
        !            62: 
        !            63:        IIpb_put(&t, 1, &IIpb);
        !            64:        IIpb_put(addr, length, &IIpb);
        !            65: }

unix.superglobalmegacorp.com

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