1 /* PSPP - a program for statistical analysis.
2 Copyright (C) 1997-9, 2000, 2006, 2007, 2010, 2017 Free Software Foundation, Inc.
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 #include "ui/terminal/terminal.h"
24 #include "data/settings.h"
25 #include "libpspp/compiler.h"
36 #ifdef GWINSZ_IN_SYS_IOCTL
37 # include <sys/ioctl.h>
40 #define _(msgid) gettext (msgid)
43 /* Determines the size of the terminal, if possible, or at least
44 takes an educated guess. */
46 terminal_check_size (void)
52 if (0 == ioctl (0, TIOCGWINSZ, &ws))
54 view_width = ws.ws_col;
55 view_length = ws.ws_row;
59 if (view_width <= 0 && getenv ("COLUMNS") != NULL)
60 view_width = atoi (getenv ("COLUMNS"));
62 if (view_length <= 0 && getenv ("LINES") != NULL)
63 view_length = atoi (getenv ("LINES"));
67 settings_set_viewwidth (view_width);
70 settings_set_viewlength (view_length);