\f
/* Definitions. */
+/* Type of source value for RECODE. */
enum
{
RCD_END, /* sentinel value */
static int parse_dest_spec (struct rcd_var * rcd, union value *v,
size_t *max_dst_width);
static int parse_src_spec (struct rcd_var * rcd, int type, size_t max_src_width);
-static int recode_trns_proc (struct trns_header *, struct ccase *);
-static void recode_trns_free (struct trns_header *);
+static trns_proc_func recode_trns_proc;
+static trns_free_func recode_trns_free;
static double convert_to_double (char *, int);
#if DEBUGGING
v->c = NULL;
}
}
+ else
+ {
+ lex_error (_("expecting output value"));
+ return 0;
+ }
if ((rcd->flags & RCD_DEST_MASK) == RCD_DEST_ERROR)
rcd->flags |= flags;
}
static int
-recode_trns_proc (struct trns_header * t, struct ccase * c)
+recode_trns_proc (struct trns_header * t, struct ccase * c,
+ int case_num UNUSED)
{
struct rcd_var *v;
- struct coding *cp;
for (v = ((struct recode_trns *) t)->codings; v; v = v->next)
{
+ struct coding *cp;
+
switch (v->flags & RCD_SRC_MASK)
{
case RCD_SRC_NUMERIC:
case RCD_SRC_STRING:
cp = find_src_string (v, c);
break;
+ default:
+ assert (0);
}
if (!cp)
continue;