Esempio n. 1
0
File: map.c Progetto: caomw/grass
void showmap(SYMBOL * sym)
{
    MAP *map;

    map = (MAP *) sym->v.p;
    printmap(sym);
    if (--map->refcnt > 0)
	sym->v.p = NULL;
    freesym(sym);
}
Esempio n. 2
0
File: map.c Progetto: caomw/grass
void setmap(SYMBOL * var, SYMBOL * map)
{
    SYMBOL *sym;

    if (var->name) {
	sym = getsym(var->name);
	if (sym) {
	    sym->v.p = freemap(sym->v.p);
	    sym->v.p = map->v.p;
	}
    }

    freemap(var->v.p);
    var->v.p = NULL;
    freesym(var);

    printmap(map);
    map->v.p = NULL;
    freesym(map);
}
Esempio n. 3
0
void setany(SYMBOL * var, SYMBOL * any)
{
    SYMBOL *sym;

    if (var->name) {
	sym = getsym(var->name);
	if (sym) {
	    if (--((ANY *) sym->v.p)->refcnt < 1)
		G_free(sym->v.p);
	    sym->v.p = any->v.p;
	}
    }

    if (--((ANY *) var->v.p)->refcnt < 1)
	G_free(var->v.p);
    var->v.p = NULL;
    freesym(var);

    /* can't show an anyvar */
    any->v.p = NULL;
    freesym(any);
}
Esempio n. 4
0
File: map.c Progetto: caomw/grass
SYMBOL *mkmapvar(SYMBOL * var, SYMBOL * map)
{
    var->type = var->itype = st_map;
    var->name = var->v.p;
    var->v.p = map->v.p;
    map->v.p = NULL;
    freesym(map);

    symtab = (SYMBOL *) listadd((LIST *) symtab, (LIST *) var, cmpsymsym);

    printmap(var);

    return var;
}