X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fsyntax-gen.c;h=229e478161299794664b7048eb464fb69b7bfb81;hb=d775f576e4ffc0973c5f183b57b2baa089f555dc;hp=f063fa3965b4c840b76ec02a91bf08733e85a27a;hpb=729b96a6bd9342c45e6f65a113fd87c70da85b0a;p=pspp diff --git a/src/ui/syntax-gen.c b/src/ui/syntax-gen.c index f063fa3965..229e478161 100644 --- a/src/ui/syntax-gen.c +++ b/src/ui/syntax-gen.c @@ -1,5 +1,5 @@ /* PSPPIRE - a graphical user interface for PSPP. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008, 2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,13 +21,14 @@ #include #include -#include -#include -#include -#include -#include -#include -#include +#include "data/data-in.h" +#include "data/data-out.h" +#include "data/format.h" +#include "data/value.h" +#include "libpspp/assertion.h" +#include "libpspp/cast.h" +#include "libpspp/message.h" +#include "libpspp/str.h" /* Appends to OUTPUT a pair of hex digits for each byte in IN. */ static void @@ -152,8 +153,9 @@ syntax_gen_number (struct string *output, v_in.f = number; s = data_out (&v_in, "FIXME", format); msg_disable (); + /* FIXME: UTF8 encoded strings will fail here */ ok = data_in (ss_cstr (s), LEGACY_NATIVE, - format->type, false, 0, 0, &v_out, 0); + format->type, false, 0, 0, NULL, &v_out, 0); msg_enable (); if (ok && v_out.f == number) { @@ -196,7 +198,10 @@ 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_str (value, width), width)); + { + char *s = CHAR_CAST_BUG (char *, value_str (value, width)); + syntax_gen_string (output, ss_buffer (s, width)); + } } /* Appends THRU to OUTPUT. If LOW is LOWEST, then