File: newvar.c

package info (click to toggle)
icmake 6.22-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 2,120 kB
  • ctags: 1,045
  • sloc: ansic: 9,241; makefile: 1,138; asm: 126; sh: 124
file content (40 lines) | stat: -rw-r--r-- 916 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
\funcref{newvar}{VAR\_ newvar (\params)}
    {
        {E\_TYPE\_} {type} {type of variable to make}
    }
    {new variable}
    {initvar()}
    {initvar()}
    {newvar.c}
    {
        This function makes a new variable and returns it. The {\em type}
        indicates the type of the new variable (field {\em type}).

        When the variable is not of type {\em e\_int}, {\em initvar()} is
        called to initialize the variable. The {\em vu.i$\rightarrow$count}
        field is set to one, indicating that the variable shall be used to
        point to once used memory. All relevant pointers (to strings or lists)
        are set to {\em NULL}.
    }
*/

#include "icm-exec.h"

VAR_ newvar (type)
E_TYPE_ type;
{
    VAR_
        ret;

    ret.type = type;
    if (type & e_int)
        ret.vu.intval = 0;
    else
    {
        ret.vu.i = NULL;
        ret = initvar (ret);
    }

    return (ret);
}