Implemented long variable names a la spss V12.
[pspp-builds.git] / src / format.h
index 375b639f762c891184833556a78ef3ca3be12202..7b8b432eec954ecd07aafff1de4462b1297bb1bc 100644 (file)
@@ -21,6 +21,9 @@
 #define format_h 1
 
 /* Display format types. */
+
+#include "bool.h"
+
 /* See the definitions of these functions and variables when modifying
    this list:
    misc.c:convert_fmt_ItoO()
@@ -68,19 +71,46 @@ struct fmt_spec
     int d;                     /* Number of implied decimal places. */
   };
 
+
+enum alignment 
+  {
+    ALIGN_LEFT = 0,
+    ALIGN_RIGHT = 1,
+    ALIGN_CENTRE = 2
+  };
+
+
+enum measure
+  {
+    MEASURE_NOMINAL=1,
+    MEASURE_ORDINAL=2,
+    MEASURE_SCALE=3
+  };
+
+
+
 /* Descriptions of all the display formats above. */
 extern struct fmt_desc formats[];
 
 union value;
 
-/* Maximum length of formatted value, in character. */
+/* Maximum length of formatted value, in characters. */
 #define MAX_FORMATTED_LEN 256
 
-int parse_format_specifier (struct fmt_spec *input, int allow_xt);
-int parse_format_specifier_name (const char **cp, int allow_xt);
-int check_input_specifier (const struct fmt_spec *spec);
-int check_output_specifier (const struct fmt_spec *spec);
-int check_string_specifier (const struct fmt_spec *spec, int min_len);
+/* Flags for parsing formats. */
+enum fmt_parse_flags
+  {
+    FMTP_ALLOW_XT = 001,                /* 1=Allow X and T formats. */
+    FMTP_SUPPRESS_ERRORS = 002          /* 1=Do not emit error messages. */
+  };
+
+int parse_format_specifier (struct fmt_spec *input, enum fmt_parse_flags);
+int parse_format_specifier_name (const char **cp, enum fmt_parse_flags);
+int check_input_specifier (const struct fmt_spec *spec, int emit_error);
+int check_output_specifier (const struct fmt_spec *spec, int emit_error);
+bool check_specifier_type (const struct fmt_spec *, int type, bool emit_error);
+bool check_specifier_width (const struct fmt_spec *,
+                            int width, bool emit_error);
 void convert_fmt_ItoO (const struct fmt_spec *input, struct fmt_spec *output);
 int get_format_var_width (const struct fmt_spec *);
 int parse_string_as_format (const char *s, int len, const struct fmt_spec *fp,