Adopt use of gnulib for portability.
[pspp-builds.git] / src / format.h
index c60e0456164adfa164d04345b39f0d8ea7810a10..988c8f8c6ae982941954de882d346b7a2c6b4a9b 100644 (file)
 
    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 <stdbool.h>
+
 /* See the definitions of these functions and variables when modifying
    this list:
    misc.c:convert_fmt_ItoO()
@@ -68,6 +71,24 @@ 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[];
 
@@ -83,11 +104,16 @@ enum fmt_parse_flags
     FMTP_SUPPRESS_ERRORS = 002          /* 1=Do not emit error messages. */
   };
 
+/* Common formats. */
+extern const struct fmt_spec f8_2;      /* F8.2. */
+
 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);
-int check_string_specifier (const struct fmt_spec *spec, int min_len);
+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,
@@ -96,5 +122,7 @@ 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);
+struct fmt_spec make_input_format (int type, int w, int d);
+struct fmt_spec make_output_format (int type, int w, int d);
 
 #endif /* !format_h */