X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fterminal%2Fterminal-opts.c;h=284d2c9d6115e9f4ae7477caac58544599ada0a6;hb=36c0d2ad88eb077c1cf411f7ba7061a8e65688fe;hp=5bf8b5ce85b41cfaec743a720ddb52c39214997c;hpb=f2d4cc6e7a4d5948a2c0cf70883347000a79a2b0;p=pspp diff --git a/src/ui/terminal/terminal-opts.c b/src/ui/terminal/terminal-opts.c index 5bf8b5ce85..284d2c9d61 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" @@ -113,31 +112,6 @@ register_output_driver (struct terminal_opts *to) } } -static void -parse_output_option (struct terminal_opts *to, const char *option) -{ - const char *equals; - char *key, *value; - - equals = strchr (option, '='); - if (equals == NULL) - { - error (0, 0, _("%s: output option missing `='"), option); - return; - } - - key = xmemdup0 (option, equals - option); - if (string_map_contains (&to->options, key)) - { - error (0, 0, _("%s: output option specified more than once"), key); - free (key); - return; - } - - value = xmemdup0 (equals + 1, strlen (equals + 1)); - string_map_insert_nocopy (&to->options, key, value); -} - static char * get_supported_formats (void) { @@ -146,7 +120,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); @@ -237,7 +210,7 @@ terminal_option_callback (int id, void *to_) break; case OPT_OUTPUT_OPTION: - parse_output_option (to, optarg); + output_driver_parse_option (optarg, &to->options); break; case OPT_NO_OUTPUT: @@ -302,33 +275,12 @@ 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[]) { 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);