You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA. */
#if !format_h
#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()
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[];
-/* Translates SPSS formats to PSPP formats. */
-extern const int translate_fmt[40];
-
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,
int fc, union value *v);
+int translate_fmt (int spss);
void data_out (char *s, const struct fmt_spec *fp, const union value *v);
char *fmt_to_string (const struct fmt_spec *);
void num_to_string (double v, char *s, int w, int d);