Annotation of 43BSD/ingres/source/libq/IIcvar.c, revision 1.1.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.