X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Fdescriptives.c;h=adedd5e67f600aeb651eafa68316d615d5d73ef0;hb=9ade26c8349b4434008c46cf09bc7473ec743972;hp=a21ccc5f9028d699ac8172cf7f84f9a48574dc7e;hpb=d723af7eca95b73a618ae5fe831f380239550a23;p=pspp-builds.git diff --git a/src/language/stats/descriptives.c b/src/language/stats/descriptives.c index a21ccc5f..adedd5e6 100644 --- a/src/language/stats/descriptives.c +++ b/src/language/stats/descriptives.c @@ -20,24 +20,25 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "xalloc.h" +#include "data/casegrouper.h" +#include "data/casereader.h" +#include "data/dictionary.h" +#include "data/procedure.h" +#include "data/transformations.h" +#include "data/variable.h" +#include "language/command.h" +#include "language/dictionary/split-file.h" +#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 "math/moments.h" +#include "output/tab.h" + +#include "gl/xalloc.h" #include "gettext.h" #define _(msgid) gettext (msgid) @@ -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) @@ -675,7 +681,8 @@ setup_z_trns (struct dsc_proc *dsc, struct dataset *ds) 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_to_string (dv->v)), + dict_get_encoding (dataset_dict (ds)), false); z = &t->z_scores[cnt++]; z->src_var = dv->v;