X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fterminal%2Fterminal-opts.c;h=4464296498de8674ecdeb208714691efcc443252;hb=e4955eebfee4b79846bbb5ba27daaa39a02ef05c;hp=95007a0cb406a362d1521526634f66ba10e63719;hpb=5cfc7232a7cf2b6b5e81bb5d7716538d4c06e5a3;p=pspp diff --git a/src/ui/terminal/terminal-opts.c b/src/ui/terminal/terminal-opts.c index 95007a0cb4..4464296498 100644 --- a/src/ui/terminal/terminal-opts.c +++ b/src/ui/terminal/terminal-opts.c @@ -24,7 +24,6 @@ #include "data/settings.h" -#include "data/file-name.h" #include "language/lexer/include-path.h" #include "libpspp/argv-parser.h" #include "libpspp/assertion.h" @@ -146,7 +145,6 @@ get_supported_formats (void) struct string_set format_set; char *format_string; const char *format; - size_t i; /* Get supported formats as unordered set. */ string_set_init (&format_set); @@ -172,7 +170,7 @@ usage (void) char *inc_path = string_array_join (include_path_default (), " "); printf (_("\ -PSPP, a program for statistical analysis of sample data.\n\ +PSPP, a program for statistical analysis of sampled data.\n\ Usage: %s [OPTION]... FILE...\n\ \n\ Arguments to long options also apply to equivalent short options.\n\ @@ -302,14 +300,33 @@ terminal_opts_init (struct argv_parser *ap, return to; } +/* Return true iff the terminal appears to be an xterm with + UTF-8 capabilities */ +static bool +term_is_utf8_xterm (void) +{ + char *s = NULL; + + if ( (s = getenv ("TERM")) && (0 == strcmp ("xterm", s)) ) + if ( (s = getenv ("XTERM_LOCALE")) ) + return strcasestr (s, "utf8") || strcasestr (s, "utf-8"); + + return false; +} + void terminal_opts_done (struct terminal_opts *to, int argc, char *argv[]) { - if (0 == strcmp (locale_charset (), "UTF-8")) - string_map_insert (&to->options, "box", "unicode"); register_output_driver (to); if (!to->has_output_driver) { + if ((0 == strcmp (locale_charset (), "UTF-8")) + || + (term_is_utf8_xterm ()) ) + { + string_map_insert (&to->options, "box", "unicode"); + } + string_map_insert (&to->options, "output-file", "-"); string_map_insert (&to->options, "format", "txt"); register_output_driver (to);