expressions: Add support for 2- and 3-operand RND function.
[pspp] / src / data / settings.c
index 71d4261de8d7afa442ad14eec28509877315c938..5c4e6899b90bd66befbeead94ae40bed2ac64afe 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 1997-9, 2000, 2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1997-9, 2000, 2006, 2007, 2009, 2010, 2011, 2015 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -29,7 +29,6 @@
 #include "libpspp/integer-format.h"
 #include "libpspp/message.h"
 
-#include "gl/error.h"
 #include "gl/minmax.h"
 #include "gl/xalloc.h"
 
@@ -67,6 +66,7 @@ struct settings
   size_t workspace;
   struct fmt_spec default_format;
   bool testing_mode;
+  int fuzzbits;
 
   int cmd_algorithm;
   int global_algorithm;
@@ -75,6 +75,9 @@ struct settings
   struct fmt_settings *styles;
 
   enum settings_output_devices output_routing[SETTINGS_N_OUTPUT_TYPES];
+
+  enum settings_var_style var_output_style;
+  enum settings_value_style value_output_style;
 };
 
 static struct settings the_settings = {
@@ -102,10 +105,11 @@ static struct settings the_settings = {
 
   true,                         /* printback */
   true,                         /* mprint */
-  1,                            /* mxloops */
+  40,                           /* mxloops */
   64L * 1024 * 1024,            /* workspace */
   {FMT_F, 8, 2},                /* default_format */
   false,                        /* testing_mode */
+  6,                            /* fuzzbits */
   ENHANCED,                     /* cmd_algorithm */
   ENHANCED,                     /* global_algorithm */
   ENHANCED,                     /* syntax */
@@ -115,7 +119,10 @@ static struct settings the_settings = {
   {SETTINGS_DEVICE_LISTING | SETTINGS_DEVICE_TERMINAL,
    SETTINGS_DEVICE_LISTING | SETTINGS_DEVICE_TERMINAL,
    0,
-   SETTINGS_DEVICE_LISTING | SETTINGS_DEVICE_TERMINAL}
+   SETTINGS_DEVICE_LISTING | SETTINGS_DEVICE_TERMINAL},
+
+  SETTINGS_VAR_STYLE_LABELS,
+  SETTINGS_VAL_STYLE_LABELS
 };
 
 /* Initializes the settings module. */
@@ -446,7 +453,7 @@ settings_get_workspace_cases (const struct caseproto *proto)
    bytes. */
 
 void
-settings_set_workspace ( size_t workspace)
+settings_set_workspace (size_t workspace)
 {
   the_settings.workspace = workspace;
 }
@@ -482,6 +489,18 @@ settings_set_testing_mode ( bool testing_mode)
   the_settings.testing_mode = testing_mode;
 }
 
+int
+settings_get_fuzzbits (void)
+{
+  return the_settings.fuzzbits;
+}
+
+void
+settings_set_fuzzbits (int fuzzbits)
+{
+  the_settings.fuzzbits = fuzzbits;
+}
+
 /* Return the current algorithm setting */
 enum behavior_mode
 settings_get_algorithm (void)
@@ -687,3 +706,30 @@ settings_get_output_routing (enum settings_output_type type)
   assert (type < SETTINGS_N_OUTPUT_TYPES);
   return the_settings.output_routing[type] | SETTINGS_DEVICE_UNFILTERED;
 }
+
+enum settings_value_style 
+settings_get_value_style (void)
+{
+  return the_settings.value_output_style;
+}
+
+void
+settings_set_value_style (enum settings_value_style s)
+{
+  the_settings.value_output_style = s;
+}
+
+
+
+enum settings_var_style
+settings_get_var_style (void)
+{
+  return the_settings.var_output_style;
+}
+
+
+void
+settings_set_var_style (enum settings_var_style s)
+{
+  the_settings.var_output_style = s;
+}