New function fmt_dollar_template based on pspp-dev discussion.
[pspp] / src / data / format.h
index 3678632ea8029b7a5a7022670a8445746186633a..51484a3b1f1b260c1d02088888c2c56cf884a640 100644 (file)
@@ -24,6 +24,7 @@
 
 #include <stdbool.h>
 #include <stddef.h>
+#include <data/variable.h>
 #include <libpspp/str.h>
 
 /* Format type categories. */
@@ -76,17 +77,19 @@ void fmt_done (void);
 struct fmt_spec fmt_for_input (enum fmt_type, int w, int d) PURE_FUNCTION;
 struct fmt_spec fmt_for_output (enum fmt_type, int w, int d) PURE_FUNCTION;
 struct fmt_spec fmt_for_output_from_input (const struct fmt_spec *);
+struct fmt_spec fmt_default_for_width (int var_width);
 
 /* Verifying formats. */
 bool fmt_check (const struct fmt_spec *, bool for_input);
 bool fmt_check_input (const struct fmt_spec *);
 bool fmt_check_output (const struct fmt_spec *);
-bool fmt_check_type_compat (const struct fmt_spec *, int var_type);
-bool fmt_check_width_compat (const struct fmt_spec *, int width);
+bool fmt_check_type_compat (const struct fmt_spec *, enum var_type);
+bool 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]);
+bool fmt_equal (const struct fmt_spec *, const struct fmt_spec *);
 
 /* Format types. */
 const char *fmt_name (enum fmt_type) PURE_FUNCTION;
@@ -113,6 +116,7 @@ bool fmt_from_io (int io, enum fmt_type *);
 
 bool fmt_usable_for_input (enum fmt_type) PURE_FUNCTION;
 const char *fmt_date_template (enum fmt_type) PURE_FUNCTION;
+char *fmt_dollar_template (const struct fmt_spec *);
 \f
 /* Maximum length of prefix or suffix string in
    struct fmt_number_style. */
@@ -142,30 +146,5 @@ int fmt_decimal_char (enum fmt_type);
 int fmt_grouping_char (enum fmt_type);
 
 void fmt_set_decimal (char);
-\f
-/* Alignment of data for display. */
-enum alignment 
-  {
-    ALIGN_LEFT = 0,
-    ALIGN_RIGHT = 1,
-    ALIGN_CENTRE = 2, 
-    n_ALIGN
-  };
-
-/* How data is measured. */
-enum measure
-  {
-    MEASURE_NOMINAL=1,
-    MEASURE_ORDINAL=2,
-    MEASURE_SCALE=3,
-    n_MEASURES
-  };
-
-bool measure_is_valid(enum measure m);
-bool alignment_is_valid(enum alignment a);
-\f
-#include <libpspp/legacy-encoding.h>
-
-bool data_out (char *s, const struct fmt_spec *fp, const union value *v);
 
 #endif /* format.h */