X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdata-io%2Finpt-pgm.c;h=8cadb94b1e31d9ba5bdbdbef5810e1a0423166d6;hb=3ace9347326a50c8865b4f48ce4681472be5b285;hp=c2e5dc0f721438a7af412fc936e19cb20a99b1d1;hpb=9a331fe64eb814ae5c1322e21717a04fb254bf65;p=pspp diff --git a/src/language/data-io/inpt-pgm.c b/src/language/data-io/inpt-pgm.c index c2e5dc0f72..8cadb94b1e 100644 --- a/src/language/data-io/inpt-pgm.c +++ b/src/language/data-io/inpt-pgm.c @@ -70,7 +70,7 @@ struct input_program_pgm casenumber case_nr; /* Incremented by END CASE transformation. */ struct caseinit *init; - size_t value_cnt; + struct caseproto *proto; }; static void destroy_input_program (struct input_program_pgm *); @@ -111,6 +111,7 @@ cmd_input_program (struct lexer *lexer, struct dataset *ds) inp = xmalloc (sizeof *inp); inp->trns_chain = NULL; inp->init = NULL; + inp->proto = NULL; inside_input_program = true; for (;;) @@ -153,10 +154,10 @@ cmd_input_program (struct lexer *lexer, struct dataset *ds) /* Figure out how to initialize each input case. */ inp->init = caseinit_create (); caseinit_mark_for_init (inp->init, dataset_dict (ds)); - inp->value_cnt = dict_get_next_value_idx (dataset_dict (ds)); + inp->proto = caseproto_ref (dict_get_proto (dataset_dict (ds))); proc_set_active_file_data ( - ds, casereader_create_sequential (NULL, inp->value_cnt, CASENUMBER_MAX, + ds, casereader_create_sequential (NULL, inp->proto, CASENUMBER_MAX, &input_program_casereader_class, inp)); return CMD_SUCCESS; @@ -187,7 +188,7 @@ static struct ccase * input_program_casereader_read (struct casereader *reader UNUSED, void *inp_) { struct input_program_pgm *inp = inp_; - struct ccase *c = case_create (inp->value_cnt); + struct ccase *c = case_create (inp->proto); do { @@ -217,6 +218,7 @@ destroy_input_program (struct input_program_pgm *pgm) { trns_chain_destroy (pgm->trns_chain); caseinit_destroy (pgm->init); + caseproto_unref (pgm->proto); free (pgm); } } @@ -283,7 +285,7 @@ cmd_reread (struct lexer *lexer, struct dataset *ds) if (e) { - msg (SE, _("COLUMN subcommand multiply specified.")); + msg (SE, _("%s subcommand may be given at most once."), "COLUMN"); expr_free (e); return CMD_CASCADING_FAILURE; }