X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fsettings.c;h=b0fc89ae55e1d9b4145ff8c64f18e9bcf804b02d;hb=a1d8ce0ad176357cf250ec065e0bf1a4520a19e3;hp=3e95b6b5bfd3bf64eec1dd8d17471c9d29ea0d84;hpb=43b1296aafe7582e7dbe6c2b6a8b478d7d9b0fcf;p=pspp-builds.git diff --git a/src/data/settings.c b/src/data/settings.c index 3e95b6b5..b0fc89ae 100644 --- a/src/data/settings.c +++ b/src/data/settings.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997-9, 2000, 2006 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2006, 2007 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 @@ -24,13 +24,18 @@ #include "xalloc.h" #include +#include "error.h" + +#include "gettext.h" +#define _(msgid) gettext (msgid) + static int viewlength = 24; static int viewwidth = 79; static bool long_view = false; static bool safer_mode = false; -static bool echo = false; +static bool do_echo = false; static bool include = true; static int epoch = -1; @@ -70,6 +75,7 @@ static int *algorithm = &global_algorithm; static int syntax = ENHANCED; static void init_viewport (void); +static void get_termcap_viewport (void); void settings_init (void) @@ -121,27 +127,6 @@ set_viewwidth (int viewwidth_) viewwidth = viewwidth_; } -#if HAVE_LIBTERMCAP -static void -get_termcap_viewport (void) -{ - char term_buffer[16384]; - if (getenv ("TERM") == NULL) - return; - else if (tgetent (term_buffer, getenv ("TERM")) <= 0) - { - msg (IE, _("Could not access definition for terminal `%s'."), termtype); - return; - } - - if (tgetnum ("li") > 0) - viewlength = tgetnum ("li"); - - if (tgetnum ("co") > 1) - viewwidth = tgetnum ("co") - 1; -} -#endif /* HAVE_LIBTERMCAP */ - static void init_viewport (void) { @@ -150,9 +135,7 @@ init_viewport (void) viewwidth = viewlength = -1; -#if HAVE_LIBTERMCAP get_termcap_viewport (); -#endif /* HAVE_LIBTERMCAP */ if (viewwidth < 0 && getenv ("COLUMNS") != NULL) viewwidth = atoi (getenv ("COLUMNS")); @@ -183,14 +166,14 @@ set_safer_mode (void) bool get_echo (void) { - return echo; + return do_echo; } /* Set echo. */ void set_echo (bool echo_) { - echo = echo_; + do_echo = echo_; } /* If echo is on, whether commands from include files are echoed. */ @@ -515,3 +498,38 @@ set_syntax (enum behavior_mode mode) { syntax = mode; } + +/* 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 +#include +#include + +static void +get_termcap_viewport (void) +{ + char term_buffer[16384]; + if (getenv ("TERM") == NULL) + return; + else if (tgetent (term_buffer, getenv ("TERM")) <= 0) + { + error (0,0, _("could not access definition for terminal `%s'"), + getenv ("TERM")); + return; + } + + if (tgetnum ("li") > 0) + viewlength = tgetnum ("li"); + + if (tgetnum ("co") > 1) + viewwidth = tgetnum ("co") - 1; +} +#else /* !HAVE_LIBNCURSES */ +static void +get_termcap_viewport (void) +{ + /* Nothing to do. */ +} +#endif /* !HAVE_LIBNCURSES */