These functions construct struct fmt_spec
s and verify that they are
valid.
struct fmt_spec
fmt_for_input (enum fmt_type type, int w, int d)
¶struct fmt_spec
fmt_for_output (enum fmt_type type, int w, int d)
¶Constructs a struct fmt_spec
with the given type, w, and
d, asserts that the result is a valid input (or output) format,
and returns it.
struct fmt_spec
fmt_for_output_from_input (const struct fmt_spec *input)
¶Given input, which must be a valid input format, returns the equivalent output format. See Input and Output Formats in PSPP Users Guide, for the rules for converting input formats into output formats.
struct fmt_spec
fmt_default_for_width (int width)
¶Returns the default output format for a variable of the given width. For a numeric variable, this is F8.2 format; for a string variable, it is the A format of the given width.
The following functions check whether a struct fmt_spec
is valid for
various uses and return true if so, false otherwise. When any of them
returns false, it also outputs an explanatory error message using
msg
. To suppress error output, enclose a call to one of these
functions by a msg_disable
/msg_enable
pair.
bool
fmt_check (const struct fmt_spec *format, bool for_input)
¶bool
fmt_check_input (const struct fmt_spec *format)
¶bool
fmt_check_output (const struct fmt_spec *format)
¶Checks whether format is a valid input format (for
fmt_check_input
, or fmt_check
if for_input) or
output format (for fmt_check_output
, or fmt_check
if not
for_input).
bool
fmt_check_type_compat (const struct fmt_spec *format, enum val_type type)
¶Checks whether format matches the value type type, that
is, if type is VAL_NUMERIC
and format is a numeric
format or type is VAL_STRING
and format is a string
format.
bool
fmt_check_width_compat (const struct fmt_spec *format, int width)
¶Checks whether format may be used as an output format for a value of the given width.
fmt_var_width
, described in
the following section, can be also be used to determine the value
width needed by a format.