- for (i = 0; i < inp->init_cnt; i++)
- switch (inp->init[i])
- {
- case INP_NUMERIC | INP_INIT_ONCE:
- break;
- case INP_NUMERIC | INP_REINIT:
- case_data_rw (c, i)->f = SYSMIS;
- break;
- case INP_STRING | INP_INIT_ONCE:
- break;
- case INP_STRING | INP_REINIT:
- memset (case_data_rw (c, i)->s, ' ', sizeof case_data_rw (c, i)->s);
- break;
- default:
- assert (0);
- }
-}
-
-/* Executes each transformation in turn on a `blank' case.
- Returns true if successful, false if an I/O error occurred. */
-static bool
-input_program_source_read (struct case_source *source,
- struct ccase *c,
- write_case_func *write_case,
- write_case_data wc_data)
-{
- struct input_program_pgm *inp = source->aux;
- size_t i;
-
- /* Nonzero if there were any END CASE commands in the set of
- transformations. If so, we don't automatically write out
- cases. */
- int end_case = 0;
-
- /* FIXME? This is the number of cases sent out of the input
- program, not the number of cases written to the procedure.
- The difference should only show up in $CASENUM in COMPUTE.
- We should check behavior against SPSS. */
- int cases_written = 0;
-
- assert (inp != NULL);
-
- /* Figure end_case. */
- for (i = 0; i < f_trns; i++)
- if (t_trns[i].proc == end_case_trns_proc)
- end_case = 1;
-
- init_case (inp, c);
- for (;;)