-\f
-/* Debug output. */
-
-#if DEBUGGING
-static void
-dump_dest (struct rcd_var * v, union value * c)
-{
- if ((v->flags & RCD_DEST_MASK) == RCD_DEST_NUMERIC)
- if (c->f == SYSMIS)
- printf ("=SYSMIS");
- else if (c->f == -SYSMIS)
- printf ("=COPY");
- else
- printf ("=%g", c->f);
- else if (c->c)
- printf ("=\"%s\"", c->c);
- else
- printf ("=COPY");
-}
-
-static void
-debug_print (struct rcd_var * head)
-{
- struct rcd_var *iter, *start;
- struct coding *c;
-
- printf ("RECODE\n");
- for (iter = head; iter; iter = iter->next)
- {
- start = iter;
- printf (" %s%s", iter == head ? "" : "/", iter->src->name);
- while (iter->next && (iter->next->flags & RCD_MISC_DUPLICATE))
- {
- iter = iter->next;
- printf (" %s", iter->src->name);
- }
- if (iter->has_sysmis)
- {
- printf ("(SYSMIS");
- dump_dest (iter, &iter->sysmis);
- printf (")");
- }
- for (c = iter->map; c->type != RCD_END; c++)
- {
- printf ("(");
- if ((iter->flags & RCD_SRC_MASK) == RCD_SRC_NUMERIC)
- switch (c->type)
- {
- case RCD_END:
- printf (_("!!END!!"));
- break;
- case RCD_USER:
- printf ("MISSING");
- break;
- case RCD_SINGLE:
- printf ("%g", c->f1.f);
- break;
- case RCD_HIGH:
- printf ("%g THRU HIGH", c->f1.f);
- break;
- case RCD_LOW:
- printf ("LOW THRU %g", c->f1.f);
- break;
- case RCD_RANGE:
- printf ("%g THRU %g", c->f1.f, c->f2.f);
- break;
- case RCD_ELSE:
- printf ("ELSE");
- break;
- default:
- printf (_("!!ERROR!!"));
- break;
- }
- else
- switch (c->type)
- {
- case RCD_SINGLE:
- printf ("\"%s\"", c->f1.c);
- break;
- case RCD_ELSE:
- printf ("ELSE");
- break;
- case RCD_CONVERT:
- printf ("CONVERT");
- break;
- default:
- printf (_("!!ERROR!!"));
- break;
- }
- if (c->type != RCD_CONVERT)
- dump_dest (iter, &c->t);
- printf (")");
- }
- printf ("\n INTO");
- for (;;)
- {
- printf (" %s",
- start->dest_name[0] ? start->dest_name : start->dest->name);
- if (start == iter)
- break;
- start = start->next;
- }
- printf ("\n");
- }
-}
-#endif