#include "libpspp/cast.h"
#include "libpspp/i18n.h"
#include "libpspp/message.h"
+#include "data/settings.h"
#include "libpspp/str.h"
#include "libpspp/misc.h"
{
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;
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);
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 <low> THRU <high> to OUTPUT. If LOW is LOWEST, then
}
conv[x++] = directive;
conv[x++] = '\0';
-
+
ds_put_c_format (output, conv, d);
break;
}