-/* PSPP - computes sample statistics.
+/* PSPP - a program for statistical analysis.
Copyright (C) 1997-9, 2000, 2006 Free Software Foundation, Inc.
- Written by Ben Pfaff <blp@gnu.org>.
- 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 the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
+ 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
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
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., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
#include "settings.h"
/* Sets the view length. */
void
-set_viewlength (int viewlength_)
+set_viewlength (int viewlength_)
{
viewlength = viewlength_;
}
/* Sets the screen width. */
void
-set_viewwidth (int viewwidth_)
+set_viewwidth (int viewwidth_)
{
viewwidth = viewwidth_;
}
}
#endif /* HAVE_LIBTERMCAP */
-static void
+static void
init_viewport (void)
{
if (long_view)
return;
-
+
viewwidth = viewlength = -1;
#if HAVE_LIBTERMCAP
/* Set echo. */
void
-set_echo (bool echo_)
+set_echo (bool echo_)
{
echo = echo_;
}
/* Set include file echo. */
void
-set_include (bool include_)
+set_include (bool include_)
{
include = include_;
}
/* What year to use as the start of the epoch. */
int
-get_epoch (void)
+get_epoch (void)
{
- if (epoch < 0)
+ if (epoch < 0)
{
time_t t = time (0);
struct tm *tm = localtime (&t);
/* Sets the year that starts the epoch. */
void
-set_epoch (int epoch_)
+set_epoch (int epoch_)
{
epoch = epoch_;
}
/* Sets whether an error stops execution. */
void
-set_errorbreak (bool errorbreak_)
+set_errorbreak (bool errorbreak_)
{
errorbreak = errorbreak_;
}
/* Route error messages to terminal? */
bool
-get_error_routing_to_terminal (void)
+get_error_routing_to_terminal (void)
{
return route_errors_to_terminal;
}
/* Sets whether error messages should be routed to the
terminal. */
void
-set_error_routing_to_terminal (bool route_to_terminal)
+set_error_routing_to_terminal (bool route_to_terminal)
{
route_errors_to_terminal = route_to_terminal;
}
/* Route error messages to listing file? */
bool
-get_error_routing_to_listing (void)
+get_error_routing_to_listing (void)
{
return route_errors_to_listing;
}
/* Sets whether error messages should be routed to the
listing file. */
void
-set_error_routing_to_listing (bool route_to_listing)
+set_error_routing_to_listing (bool route_to_listing)
{
route_errors_to_listing = route_to_listing;
}
/* Compress system files by default? */
-bool
+bool
get_scompression (void)
{
return scompress;
/* Set system file default compression. */
void
-set_scompression (bool scompress_)
+set_scompression (bool scompress_)
{
scompress = scompress_;
}
/* Set whether to warn on undefined values. */
void
-set_undefined (bool undefined_)
+set_undefined (bool undefined_)
{
undefined = undefined_;
}
/* Set the value that blank numeric fields are set to when read
in. */
void
-set_blanks (double blanks_)
+set_blanks (double blanks_)
{
blanks = blanks_;
}
/* Maximum number of warnings + errors. */
int
get_mxwarns (void)
-{
+{
return mxwarns;
}
/* Sets maximum number of warnings + errors. */
void
-set_mxwarns (int mxwarns_)
+set_mxwarns (int mxwarns_)
{
mxwarns = mxwarns_;
}
/* Sets maximum number of errors. */
void
-set_mxerrs (int mxerrs_)
+set_mxerrs (int mxerrs_)
{
mxerrs = mxerrs_;
}
/* Sets whether commands are written to the display. */
void
-set_printback (bool printback_)
+set_printback (bool printback_)
{
printback = printback_;
}
/* Sets whether the commands generated by macro invocations are
displayed. */
void
-set_mprint (bool mprint_)
+set_mprint (bool mprint_)
{
mprint = mprint_;
}
/* Set implied limit of unbounded loop. */
void
-set_mxloops (int mxloops_)
+set_mxloops (int mxloops_)
{
mxloops = mxloops_;
}
/* Set the character used to terminate commands. */
void
-set_endcmd (char endcmd_)
+set_endcmd (char endcmd_)
{
endcmd = endcmd_;
}
return workspace;
}
+/* Approximate maximum number of cases to allocate in-core, given
+ that each case contains VALUE_CNT values. */
+size_t
+get_workspace_cases (size_t value_cnt)
+{
+ size_t case_size = sizeof (union value) * value_cnt + 4 * sizeof (void *);
+ size_t case_cnt = MAX (get_workspace () / case_size, 4);
+ return case_cnt;
+}
+
/* Set approximate maximum amount of memory to use for cases, in
bytes. */
void
-set_workspace (size_t workspace_)
+set_workspace (size_t workspace_)
{
workspace = workspace_;
}
DATA LIST {FREE,LIST}. */
const struct fmt_spec *
get_format (void)
-{
+{
return &default_format;
}
/* Set default format for variables created by transformations
and by DATA LIST {FREE,LIST}. */
void
-set_format (const struct fmt_spec *default_format_)
+set_format (const struct fmt_spec *default_format_)
{
default_format = *default_format_;
}
/* Are we in testing mode? (e.g. --testing-mode command line
option) */
bool
-get_testing_mode (void)
+get_testing_mode (void)
{
return testing_mode;
}
/* Set testing mode. */
void
-set_testing_mode (bool testing_mode_)
+set_testing_mode (bool testing_mode_)
{
testing_mode = testing_mode_;
}
}
/* Set the algorithm option globally. */
-void
+void
set_algorithm (enum behavior_mode mode)
{
global_algorithm = mode;
}
/* Set the algorithm option for this command only */
-void
+void
set_cmd_algorithm (enum behavior_mode mode)
{
- cmd_algorithm = mode;
+ cmd_algorithm = mode;
algorithm = &cmd_algorithm;
}
}
/* Set the syntax option */
-void
+void
set_syntax (enum behavior_mode mode)
{
syntax = mode;