X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fsyntax-gen.c;h=22e717ac965903acdb5a8b12f95e5e3dd6492832;hb=a5097a183f00ab2d2dc538ba7094a4696e2fea04;hp=84415c3e92f38adac840c6842c433c2b8aeab49d;hpb=57e1bd2b5e86c0f47ed8fcc23c4945034afb2053;p=pspp-builds.git diff --git a/src/ui/syntax-gen.c b/src/ui/syntax-gen.c index 84415c3e..22e717ac 100644 --- a/src/ui/syntax-gen.c +++ b/src/ui/syntax-gen.c @@ -146,20 +146,23 @@ syntax_gen_number (struct string *output, & (FMT_CAT_DATE | FMT_CAT_TIME | FMT_CAT_DATE_COMPONENT))) { union value v_in, v_out; - char buffer[FMT_MAX_NUMERIC_WIDTH]; + char *s; bool ok; v_in.f = number; - data_out (&v_in, format, buffer); + s = data_out (&v_in, "FIXME", format); msg_disable (); - ok = data_in (ss_buffer (buffer, format->w), LEGACY_NATIVE, - format->type, false, 0, 0, &v_out, 0); + /* FIXME: UTF8 encoded strings will fail here */ + ok = data_in (ss_cstr (s), LEGACY_NATIVE, + format->type, false, 0, 0, NULL, &v_out, 0); msg_enable (); if (ok && v_out.f == number) { - syntax_gen_string (output, ss_buffer (buffer, format->w)); + syntax_gen_string (output, ss_cstr (s)); + free (s); return; } + free (s); } if (number == SYSMIS) @@ -194,7 +197,7 @@ syntax_gen_value (struct string *output, const union value *value, int width, if (width == 0) syntax_gen_number (output, value->f, format); else - syntax_gen_string (output, ss_buffer (value->s, width)); + syntax_gen_string (output, ss_buffer (value_str (value, width), width)); } /* Appends THRU to OUTPUT. If LOW is LOWEST, then