X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fterminal%2Fterminal.c;h=f387c5112a86efc9b950c2e73aaf6d35431afb23;hb=37e80366f1930cd7043a79e0dcb1dfd282f678d3;hp=9f371821f95436b1c24a9c13b286ca6c627d8aa6;hpb=bce579d144b66ca2eee18f6d27d847285a96d7b9;p=pspp diff --git a/src/ui/terminal/terminal.c b/src/ui/terminal/terminal.c index 9f371821f9..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,37 +16,24 @@ #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 that have parameters or return values of type "bool". */ -#if HAVE_LIBNCURSES +#if LIBNCURSES_USABLE #include #include #endif @@ -56,7 +43,10 @@ terminal_init (int **view_width_p, int **view_length_p) void terminal_check_size (void) { -#if HAVE_LIBNCURSES + int view_width = 0; + int view_length = 0; + +#if LIBNCURSES_USABLE if (getenv ("TERM") != NULL) { char term_buffer [16384]; @@ -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); }