X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdictionary%2Fvector.c;h=1216d9dd338d5586fb34e63956c5492887b67bd8;hb=8acca2de53c1852f38726f70fc6516b34732a79f;hp=90f245c85f4b84b9ca54490667fa7fd751aeadd9;hpb=b0bf9b1b0f727fafac4296a048e3f45db5936f81;p=pspp-builds.git diff --git a/src/language/dictionary/vector.c b/src/language/dictionary/vector.c index 90f245c8..1216d9dd 100644 --- a/src/language/dictionary/vector.c +++ b/src/language/dictionary/vector.c @@ -21,12 +21,14 @@ #include -#include +#include #include #include #include #include +#include #include +#include #include #include #include @@ -35,7 +37,7 @@ #define _(msgid) gettext (msgid) int -cmd_vector (void) +cmd_vector (struct dataset *ds) { /* Just to be different, points to a set of null terminated strings containing the names of the vectors to be created. The list @@ -49,6 +51,8 @@ cmd_vector (void) /* Maximum allocated position for vecnames, plus one position. */ char *endp = NULL; + struct dictionary *dict = dataset_dict (ds); + cp = vecnames = xmalloc (256); endp = &vecnames[256]; do @@ -73,7 +77,7 @@ cmd_vector (void) goto fail; } - if (dict_lookup_vector (default_dict, tokid)) + if (dict_lookup_vector (dict, tokid)) { msg (SE, _("There is already a vector with name %s."), tokid); goto fail; @@ -102,11 +106,11 @@ cmd_vector (void) goto fail; } - if (!parse_variables (default_dict, &v, &nv, + if (!parse_variables (dict, &v, &nv, PV_SAME_TYPE | PV_DUPLICATE)) goto fail; - dict_create_vector (default_dict, vecnames, v, nv); + dict_create_vector (dict, vecnames, v, nv); free (v); } else if (lex_match ('(')) @@ -156,7 +160,7 @@ cmd_vector (void) for (i = 0; i < nv; i++) { sprintf (name, "%s%d", cp, i + 1); - if (dict_lookup_var (default_dict, name)) + if (dict_lookup_var (dict, name)) { msg (SE, _("There is already a variable named %s."), name); @@ -173,10 +177,10 @@ cmd_vector (void) for (i = 0; i < nv; i++) { sprintf (name, "%s%d", cp, i + 1); - v[i] = dict_create_var_assert (default_dict, name, 0); + v[i] = dict_create_var_assert (dict, name, 0); } - if (!dict_create_vector (default_dict, cp, v, nv)) - assert (0); + if (!dict_create_vector (dict, cp, v, nv)) + NOT_REACHED (); cp += strlen (cp) + 1; } free (v);