X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=inline;f=src%2Flanguage%2Fstats%2Fdescriptives.c;h=32a979d205fa413853c447c848f851f78b5f9752;hb=9546bbb38b562024daa469a8a03a5fbfdb5df542;hp=50d52d3cff03f68d2bac2d9d0a84097b961ae032;hpb=81579d9e9f994fb2908f50af41c3eb033d216e58;p=pspp-builds.git diff --git a/src/language/stats/descriptives.c b/src/language/stats/descriptives.c index 50d52d3c..32a979d2 100644 --- a/src/language/stats/descriptives.c +++ b/src/language/stats/descriptives.c @@ -22,8 +22,8 @@ #include "data/casegrouper.h" #include "data/casereader.h" +#include "data/dataset.h" #include "data/dictionary.h" -#include "data/procedure.h" #include "data/transformations.h" #include "data/variable.h" #include "language/command.h" @@ -31,9 +31,10 @@ #include "language/lexer/lexer.h" #include "language/lexer/variable-parser.h" #include "libpspp/array.h" +#include "libpspp/assertion.h" #include "libpspp/compiler.h" +#include "libpspp/i18n.h" #include "libpspp/message.h" -#include "libpspp/assertion.h" #include "math/moments.h" #include "output/tab.h" @@ -303,7 +304,7 @@ cmd_descriptives (struct lexer *lexer, struct dataset *ds) } else if (var_cnt == 0) { - if (lex_look_ahead (lexer) == T_EQUALS) + if (lex_next_token (lexer, 1) == T_EQUALS) { lex_match_id (lexer, "VARIABLES"); lex_match (lexer, T_EQUALS); @@ -507,17 +508,22 @@ static char * generate_z_varname (const struct dictionary *dict, struct dsc_proc *dsc, const char *var_name, int *z_cnt) { - char name[VAR_NAME_LEN + 1]; + char *z_name, *trunc_name; /* Try a name based on the original variable name. */ - name[0] = 'Z'; - str_copy_trunc (name + 1, sizeof name - 1, var_name); - if (try_name (dict, dsc, name)) - return xstrdup (name); + z_name = xasprintf ("Z%s", var_name); + trunc_name = utf8_encoding_trunc (z_name, dict_get_encoding (dict), + ID_MAX_LEN); + free (z_name); + if (try_name (dict, dsc, trunc_name)) + return trunc_name; + free (trunc_name); /* Generate a synthetic name. */ for (;;) { + char name[8]; + (*z_cnt)++; if (*z_cnt <= 99) @@ -572,7 +578,7 @@ dump_z_table (struct dsc_proc *dsc) for (i = 0, y = 1; i < dsc->var_cnt; i++) if (dsc->vars[i].z_name != NULL) { - tab_text (t, 0, y, TAB_LEFT, var_get_name (dsc->vars[i].v)); + tab_text (t, 0, y, TAB_LEFT, var_to_string (dsc->vars[i].v)); tab_text (t, 1, y++, TAB_LEFT, dsc->vars[i].z_name); } } @@ -674,8 +680,9 @@ setup_z_trns (struct dsc_proc *dsc, struct dataset *ds) struct variable *dst_var; dst_var = dict_create_var_assert (dataset_dict (ds), dv->z_name, 0); - var_set_label (dst_var, xasprintf (_("Z-score of %s"), - var_to_string (dv->v))); + var_set_label (dst_var, + xasprintf (_("Z-score of %s"),var_to_string (dv->v)), + false); z = &t->z_scores[cnt++]; z->src_var = dv->v; @@ -907,7 +914,7 @@ display (struct dsc_proc *dsc) size_t j; nc = 0; - tab_text (t, nc++, i + 1, TAB_LEFT, var_get_name (dv->v)); + tab_text (t, nc++, i + 1, TAB_LEFT, var_to_string (dv->v)); tab_text_format (t, nc++, i + 1, 0, "%g", dv->valid); if (dsc->format == DSC_SERIAL) tab_text_format (t, nc++, i + 1, 0, "%g", dv->missing);