Rev 4680 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
/* PSPP - computes sample statistics.Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.Written by Ben Pfaff <blp@gnu.org>.Modified for R foreign library by Saikat DebRoy <saikat@stat.wisc.edu>.This program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public License aspublished by the Free Software Foundation; either version 2 of theLicense, or (at your option) any later version.This program is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, a copy is available athttp://www.r-project.org/Licenses/*/#if !format_h#define format_h 1/* Display format types. *//* See the definitions of these functions and variables when modifyingthis list:misc.c:convert_fmt_ItoO()sfm-read.c:parse_format_spec()data-in.c:parse_string_as_format()data-out.c:convert_format_to_string(). */#define DEFFMT(LABEL, NAME, N_ARGS, IMIN_W, IMAX_W, OMIN_W, OMAX_W, \CAT, OUTPUT, SPSS_FMT) \LABEL,enum{#include "pspp-format-def.h"FMT_NUMBER_OF_FORMATS};#undef DEFFMT/* Describes one of the display formats above. */struct fmt_desc{char name[9]; /* `DATETIME' is the longest name. */int n_args; /* 1=width; 2=width.decimals. */int Imin_w, Imax_w; /* Bounds on input width. */int Omin_w, Omax_w; /* Bounds on output width. */int cat; /* Categories. */int output; /* Output format. */int spss; /* Equivalent SPSS output format. */};/* Display format categories. */enum{FCAT_BLANKS_SYSMIS = 001, /* 1=All-whitespace means SYSMIS. */FCAT_EVEN_WIDTH = 002, /* 1=Width must be even. */FCAT_STRING = 004, /* 1=String input/output format. */FCAT_SHIFT_DECIMAL = 010, /* 1=Automatically shift decimal pointon output--used for fixed-pointformats. */FCAT_OUTPUT_ONLY = 020 /* 1=This is not an input format. */};/* Display format. */struct fmt_spec{int type; /* One of the above constants. */int w; /* Width. */int d; /* Number of implied decimal places. */};/* 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;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);void convert_fmt_ItoO (const struct fmt_spec *input, struct fmt_spec *output);int parse_string_as_format (const char *s, int len, const struct fmt_spec *fp,int fc, union value *v);int 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);#endif /* !format_h */