From add3ba666ddc4f88fbf0934184c82e35c0787795 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sun, 29 Aug 2010 11:37:19 -0700 Subject: [PATCH] settings: Make viewwidth, viewlength "int"s instead of pointers. I don't recall exactly why these were pointers any longer, but it doesn't seem to be necessary any longer. It is more straightforward if they are just stored in the same way as the other settings. --- src/data/settings.c | 28 +++++++--------------- src/data/settings.h | 2 +- src/ui/gui/psppire.c | 2 +- src/ui/terminal/main.c | 5 ++-- src/ui/terminal/terminal.c | 48 +++++++++++++------------------------- 5 files changed, 29 insertions(+), 56 deletions(-) diff --git a/src/data/settings.c b/src/data/settings.c index b98a1351ac..a5fbfdecbd 100644 --- a/src/data/settings.c +++ b/src/data/settings.c @@ -49,8 +49,8 @@ struct settings /* Format of reals in output (SET WRB). */ enum float_format output_float_format; - int *viewlength; - int *viewwidth; + int viewlength; + int viewwidth; bool safer_mode; bool include; int epoch; @@ -83,8 +83,8 @@ static struct settings the_settings = { FLOAT_NATIVE_DOUBLE, /* input_float_format */ INTEGER_NATIVE, /* output_integer_format */ FLOAT_NATIVE_DOUBLE, /* output_float_format */ - NULL, /* viewlength */ - NULL, /* viewwidth */ + 24, /* viewlength */ + 79, /* viewwidth */ false, /* safer_mode */ true, /* include */ -1, /* epoch */ @@ -121,12 +121,9 @@ static struct settings the_settings = { SETTINGS_DEVICE_LISTING | SETTINGS_DEVICE_TERMINAL} }; -static void init_viewport ( int *, int *); - void -settings_init (int *width, int *length) +settings_init (void) { - init_viewport (width, length); settings_set_epoch (-1); the_settings.styles = fmt_settings_create (); @@ -203,35 +200,28 @@ settings_set_output_float_format ( enum float_format float_format) int settings_get_viewlength (void) { - return *the_settings.viewlength; + return the_settings.viewlength; } /* Sets the view length. */ void settings_set_viewlength ( int viewlength_) { - *the_settings.viewlength = viewlength_; + the_settings.viewlength = viewlength_; } /* Screen width. */ int settings_get_viewwidth(void) { - return *the_settings.viewwidth; + return the_settings.viewwidth; } /* Sets the screen width. */ void settings_set_viewwidth ( int viewwidth_) { - *the_settings.viewwidth = viewwidth_; -} - -static void -init_viewport ( int *width, int *length) -{ - the_settings.viewwidth = width; - the_settings.viewlength = length; + the_settings.viewwidth = viewwidth_; } /* Whether PSPP can erase and overwrite files. */ diff --git a/src/data/settings.h b/src/data/settings.h index 7dcb0e34a4..27ba0cee1a 100644 --- a/src/data/settings.h +++ b/src/data/settings.h @@ -28,7 +28,7 @@ struct caseproto; struct settings; -void settings_init (int *, int *); +void settings_init (void); void settings_done (void); enum float_format settings_get_input_float_format (void); diff --git a/src/ui/gui/psppire.c b/src/ui/gui/psppire.c index d75bff359b..089208148d 100644 --- a/src/ui/gui/psppire.c +++ b/src/ui/gui/psppire.c @@ -96,7 +96,7 @@ initialize (struct source_stream *ss, const char *data_file) preregister_widgets (); gsl_set_error_handler_off (); - settings_init (&viewer_width, &viewer_length); + settings_init (); fh_init (); the_dataset = create_dataset (); diff --git a/src/ui/terminal/main.c b/src/ui/terminal/main.c index 02be4f78c0..94b21a5574 100644 --- a/src/ui/terminal/main.c +++ b/src/ui/terminal/main.c @@ -79,7 +79,6 @@ static struct source_stream *the_source_stream ; int main (int argc, char **argv) { - int *view_width_p, *view_length_p; struct terminal_opts *terminal_opts; struct argv_parser *parser; @@ -98,8 +97,8 @@ main (int argc, char **argv) the_source_stream = create_source_stream (); prompt_init (); readln_initialize (); - terminal_init (&view_width_p, &view_length_p); - settings_init (view_width_p, view_length_p); + settings_init (); + terminal_check_size (); random_init (); the_dataset = create_dataset (); diff --git a/src/ui/terminal/terminal.c b/src/ui/terminal/terminal.c index 7360b892ca..f387c5112a 100644 --- a/src/ui/terminal/terminal.c +++ b/src/ui/terminal/terminal.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997-9, 2000, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2006, 2007, 2010 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 @@ -16,32 +16,19 @@ #include -#include +#include "ui/terminal/terminal.h" #include #include -#include +#include "data/settings.h" +#include "libpspp/compiler.h" -#include "error.h" +#include "gl/error.h" #include "gettext.h" #define _(msgid) gettext (msgid) -static int view_width = -1; -static int view_length = -1; - -/* Initializes the terminal interface by determining the size of - the user's terminal. Stores a pointer to the size variables - in *VIEW_WIDTH_P and *VIEW_LENGTH_P. */ -void -terminal_init (int **view_width_p, int **view_length_p) -{ - *view_width_p = &view_width; - *view_length_p = &view_length; - terminal_check_size (); -} - /* Code that interfaces to ncurses. This must be at the very end of this file because curses.h redefines "bool" on some systems (e.g. OpenBSD), causing declaration mismatches with functions @@ -56,6 +43,9 @@ terminal_init (int **view_width_p, int **view_length_p) void terminal_check_size (void) { + int view_width = 0; + int view_length = 0; + #if LIBNCURSES_USABLE if (getenv ("TERM") != NULL) { @@ -74,19 +64,13 @@ terminal_check_size (void) } #endif - if (view_width <= 0) - { - if (getenv ("COLUMNS") != NULL) - view_width = atoi (getenv ("COLUMNS")); - if (view_width <= 0) - view_width = 79; - } + if (view_width <= 0 && getenv ("COLUMNS") != NULL) + view_width = atoi (getenv ("COLUMNS")); + if (view_width > 0) + settings_set_viewwidth (view_width); - if (view_length <= 0) - { - if (getenv ("LINES") != NULL) - view_length = atoi (getenv ("LINES")); - if (view_length <= 0) - view_length = 24; - } + if (view_length <= 0 && getenv ("LINES") != NULL) + view_length = atoi (getenv ("LINES")); + if (view_length > 0) + settings_set_viewlength (view_length); } -- 2.30.2