X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fsyntax-gen.c;h=e853c5692780463beed4a27887ffdda079dd93df;hb=f15c854d8500105766b2f5666bb62b983ff24f88;hp=84415c3e92f38adac840c6842c433c2b8aeab49d;hpb=57e1bd2b5e86c0f47ed8fcc23c4945034afb2053;p=pspp-builds.git diff --git a/src/ui/syntax-gen.c b/src/ui/syntax-gen.c index 84415c3e..e853c569 100644 --- a/src/ui/syntax-gen.c +++ b/src/ui/syntax-gen.c @@ -146,20 +146,22 @@ 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, format); msg_disable (); - ok = data_in (ss_buffer (buffer, format->w), LEGACY_NATIVE, + ok = data_in (ss_cstr (s), LEGACY_NATIVE, format->type, false, 0, 0, &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 +196,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