X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fsyntax-gen.c;h=54a7845b70d44722c6b3bcb531def0556a3365fd;hb=afbfc96669bd1fe36ca1b08b59c9c137938049c1;hp=f14a87a91f04059021dc1dfe9d3c113679a2c119;hpb=0df9cdd3df66caf4353128feff3008289cda8115;p=pspp diff --git a/src/ui/syntax-gen.c b/src/ui/syntax-gen.c index f14a87a91f..54a7845b70 100644 --- a/src/ui/syntax-gen.c +++ b/src/ui/syntax-gen.c @@ -29,6 +29,7 @@ #include "libpspp/cast.h" #include "libpspp/i18n.h" #include "libpspp/message.h" +#include "data/settings.h" #include "libpspp/str.h" #include "libpspp/misc.h" @@ -148,7 +149,7 @@ syntax_gen_number (struct string *output, { assert (format == NULL || fmt_is_numeric (format->type)); if (format != NULL - && (format->type + && (fmt_get_category (format->type) & (FMT_CAT_DATE | FMT_CAT_TIME | FMT_CAT_DATE_COMPONENT))) { union value v_in, v_out; @@ -156,10 +157,11 @@ syntax_gen_number (struct string *output, bool ok; v_in.f = number; - s = data_out (&v_in, "FIXME", format); + s = data_out (&v_in, "FIXME", format, settings_get_fmt_settings ()); /* FIXME: UTF8 encoded strings will fail here */ - error = data_in (ss_cstr (s), C_ENCODING, format->type, &v_out, 0, NULL); + error = data_in (ss_cstr (s), C_ENCODING, format->type, + settings_get_fmt_settings (), &v_out, 0, NULL); ok = error == NULL; free (error); @@ -196,10 +198,8 @@ syntax_gen_value (struct string *output, const union value *value, int width, if (width == 0) syntax_gen_number (output, value->f, format); else - { - char *s = CHAR_CAST_BUG (char *, value_str (value, width)); - syntax_gen_string (output, ss_buffer (s, width)); - } + syntax_gen_string (output, + ss_buffer (CHAR_CAST (const char *, value->s), width)); } /* Appends THRU to OUTPUT. If LOW is LOWEST, then @@ -298,7 +298,7 @@ syntax_gen_pspp_valist (struct string *output, const char *format, } conv[x++] = directive; conv[x++] = '\0'; - + ds_put_c_format (output, conv, d); break; }