diff --git a/src/svalue.c b/src/svalue.c index 65206b22c550523600a573aeb4f2ba9ae11bf6d4..834b66543d6f0acc666ea81c4caeeb4f2dba5ecd 100644 --- a/src/svalue.c +++ b/src/svalue.c @@ -21,7 +21,7 @@ #include <ctype.h> #include "queue.h" -RCSID("$Id: svalue.c,v 1.33 1998/05/25 21:24:02 grubba Exp $"); +RCSID("$Id: svalue.c,v 1.34 1998/05/25 21:38:35 grubba Exp $"); struct svalue dest_ob_zero = { T_INT, 0 }; @@ -311,21 +311,23 @@ void assign_to_short_svalue_no_free(union anything *u, void assign_from_short_svalue_no_free(struct svalue *s, - union anything *u, - TYPE_T type) + union anything *u, + TYPE_T type) { check_type(type); check_refs2(u,type); + s->type = type; + s->subtype = 0; + switch(type) { - case T_FLOAT: s->type=T_FLOAT; s->u.float_number=u->float_number; break; - case T_INT: s->type=T_INT; s->u.integer=u->integer; break; + case T_FLOAT: s->u.float_number=u->float_number; break; + case T_INT: s->u.integer=u->integer; break; default: if((s->u.refs=u->refs)) { u->refs[0]++; - s->type=type; }else{ s->type=T_INT; s->subtype=NUMBER_NUMBER;