X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fdata%2Fformat.h;h=d6779d4b3f5f6dccab20e952d55006cf835eaf0e;hb=affc364e2d29fad9f18acba43ca81ce7ec0589aa;hp=223ce1533d11f2185568d8f18f9e1c444277cde3;hpb=07da9f454c17fb961cae09f6d7d505f7abb281c0;p=pspp diff --git a/src/data/format.h b/src/data/format.h index 223ce1533d..d6779d4b3f 100644 --- a/src/data/format.h +++ b/src/data/format.h @@ -25,6 +25,7 @@ #include "libpspp/str.h" struct fmt_settings; +struct msg_location; /* How a format is going to be used. */ enum fmt_use @@ -56,7 +57,7 @@ enum fmt_category }; /* Format type. */ -enum fmt_type +enum ATTRIBUTE ((packed)) fmt_type { #define FMT(NAME, METHOD, IMIN, OMIN, IO, CATEGORY) FMT_##NAME, #include "format.def" @@ -75,8 +76,8 @@ enum fmt_type struct fmt_spec { enum fmt_type type; /* One of FMT_*. */ - int w; /* Width. */ - int d; /* Number of decimal places. */ + uint8_t d; /* Number of decimal places. */ + uint16_t w; /* Width. */ }; /* Maximum width of any numeric format. */ @@ -96,6 +97,10 @@ bool fmt_check_output (const struct fmt_spec *); bool fmt_check_type_compat (const struct fmt_spec *, enum val_type); bool fmt_check_width_compat (const struct fmt_spec *, int var_width); +char *fmt_check__ (const struct fmt_spec *, enum fmt_use); +char *fmt_check_type_compat__ (const struct fmt_spec *, enum val_type); +char *fmt_check_width_compat__ (const struct fmt_spec *, int var_width); + /* Working with formats. */ int fmt_var_width (const struct fmt_spec *); char *fmt_to_string (const struct fmt_spec *, char s[FMT_STRING_LEN_MAX + 1]); @@ -175,6 +180,8 @@ struct fmt_number_style *fmt_number_style_clone ( const struct fmt_number_style *); void fmt_number_style_destroy (struct fmt_number_style *); +char *fmt_number_style_to_string (const struct fmt_number_style *); + int fmt_affix_width (const struct fmt_number_style *); int fmt_neg_affix_width (const struct fmt_number_style *); @@ -191,7 +198,7 @@ struct fmt_settings void fmt_settings_init (struct fmt_settings *); void fmt_settings_uninit (struct fmt_settings *); -void fmt_settings_copy (struct fmt_settings *, const struct fmt_settings *); +struct fmt_settings fmt_settings_copy (const struct fmt_settings *); const struct fmt_number_style *fmt_settings_get_style ( const struct fmt_settings *, enum fmt_type);