X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fmi%2Fmi-cmd-env.c;h=a6347ee11e2c50bcf890fdd4edbf32e813b75b2b;hb=9f33b8b7c19413efbb37638bdba54706e4da8573;hp=ad34aacf56941e9ce5e148dd6bc1211b10d4d31f;hpb=0350914acfaf4b21584a44262cd13b6a35bfce10;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/mi/mi-cmd-env.c b/gdb/mi/mi-cmd-env.c index ad34aacf56..a6347ee11e 100644 --- a/gdb/mi/mi-cmd-env.c +++ b/gdb/mi/mi-cmd-env.c @@ -1,7 +1,5 @@ /* MI Command Set - environment commands. - - Copyright (C) 2002, 2003, 2004, 2007, 2008, 2009, 2010, 2011 - Free Software Foundation, Inc. + Copyright (C) 2002-2017 Free Software Foundation, Inc. Contributed by Red Hat Inc. @@ -32,11 +30,10 @@ #include "command.h" #include "ui-out.h" #include "top.h" - -#include "gdb_string.h" -#include "gdb_stat.h" +#include static void env_mod_path (char *dirname, char **which_path); + extern void _initialize_mi_cmd_env (void); static const char path_var_name[] = "PATH"; @@ -45,6 +42,7 @@ static char *orig_path = NULL; /* The following is copied from mi-main.c so for m1 and below we can perform old behavior and use cli commands. If ARGS is non-null, append it to the CMD. */ + static void env_execute_cli_command (const char *cmd, const char *args) { @@ -64,13 +62,15 @@ env_execute_cli_command (const char *cmd, const char *args) } } - /* Print working directory. */ + void -mi_cmd_env_pwd (char *command, char **argv, int argc) +mi_cmd_env_pwd (const char *command, char **argv, int argc) { + struct ui_out *uiout = current_uiout; + if (argc > 0) - error (_("-environment-pwd: No arguments required")); + error (_("-environment-pwd: No arguments allowed")); if (mi_version (uiout) < 2) { @@ -84,12 +84,13 @@ mi_cmd_env_pwd (char *command, char **argv, int argc) error (_("-environment-pwd: error finding name of working directory: %s"), safe_strerror (errno)); - ui_out_field_string (uiout, "cwd", gdb_dirbuf); + uiout->field_string ("cwd", gdb_dirbuf); } /* Change working directory. */ + void -mi_cmd_env_cd (char *command, char **argv, int argc) +mi_cmd_env_cd (const char *command, char **argv, int argc) { if (argc == 0 || argc > 1) error (_("-environment-cd: Usage DIRECTORY")); @@ -109,20 +110,22 @@ env_mod_path (char *dirname, char **which_path) } /* Add one or more directories to start of executable search path. */ + void -mi_cmd_env_path (char *command, char **argv, int argc) +mi_cmd_env_path (const char *command, char **argv, int argc) { + struct ui_out *uiout = current_uiout; char *exec_path; char *env; int reset = 0; - int optind = 0; + int oind = 0; int i; - char *optarg; + char *oarg; enum opt { RESET_OPT }; - static struct mi_opt opts[] = + static const struct mi_opt opts[] = { {"r", RESET_OPT, 0}, { 0, 0, 0 } @@ -141,7 +144,7 @@ mi_cmd_env_path (char *command, char **argv, int argc) while (1) { int opt = mi_getopt ("-environment-path", argc, argv, opts, - &optind, &optarg); + &oind, &oarg); if (opt < 0) break; @@ -152,8 +155,8 @@ mi_cmd_env_path (char *command, char **argv, int argc) break; } } - argv += optind; - argc -= optind; + argv += oind; + argc -= oind; if (reset) @@ -178,22 +181,24 @@ mi_cmd_env_path (char *command, char **argv, int argc) set_in_environ (current_inferior ()->environment, path_var_name, exec_path); xfree (exec_path); env = get_in_environ (current_inferior ()->environment, path_var_name); - ui_out_field_string (uiout, "path", env); + uiout->field_string ("path", env); } /* Add zero or more directories to the front of the source path. */ + void -mi_cmd_env_dir (char *command, char **argv, int argc) +mi_cmd_env_dir (const char *command, char **argv, int argc) { + struct ui_out *uiout = current_uiout; int i; - int optind = 0; + int oind = 0; int reset = 0; - char *optarg; + char *oarg; enum opt { RESET_OPT }; - static struct mi_opt opts[] = + static const struct mi_opt opts[] = { {"r", RESET_OPT, 0}, { 0, 0, 0 } @@ -212,7 +217,7 @@ mi_cmd_env_dir (char *command, char **argv, int argc) while (1) { int opt = mi_getopt ("-environment-directory", argc, argv, opts, - &optind, &optarg); + &oind, &oarg); if (opt < 0) break; @@ -223,8 +228,8 @@ mi_cmd_env_dir (char *command, char **argv, int argc) break; } } - argv += optind; - argc -= optind; + argv += oind; + argc -= oind; if (reset) { @@ -236,20 +241,22 @@ mi_cmd_env_dir (char *command, char **argv, int argc) for (i = argc - 1; i >= 0; --i) env_mod_path (argv[i], &source_path); - ui_out_field_string (uiout, "source-path", source_path); + uiout->field_string ("source-path", source_path); forget_cached_source_info (); } /* Set the inferior terminal device name. */ + void -mi_cmd_inferior_tty_set (char *command, char **argv, int argc) +mi_cmd_inferior_tty_set (const char *command, char **argv, int argc) { set_inferior_io_terminal (argv[0]); } -/* Print the inferior terminal device name */ +/* Print the inferior terminal device name. */ + void -mi_cmd_inferior_tty_show (char *command, char **argv, int argc) +mi_cmd_inferior_tty_show (const char *command, char **argv, int argc) { const char *inferior_io_terminal = get_inferior_io_terminal (); @@ -257,7 +264,7 @@ mi_cmd_inferior_tty_show (char *command, char **argv, int argc) error (_("-inferior-tty-show: Usage: No args")); if (inferior_io_terminal) - ui_out_field_string (uiout, "inferior_tty_terminal", inferior_io_terminal); + current_uiout->field_string ("inferior_tty_terminal", inferior_io_terminal); } void @@ -269,7 +276,7 @@ _initialize_mi_cmd_env (void) /* We want original execution path to reset to, if desired later. At this point, current inferior is not created, so cannot use current_inferior ()->environment. Also, there's no obvious - place where this code can be moved suchs that it surely run + place where this code can be moved such that it surely run before any code possibly mangles original PATH. */ environment = make_environ (); init_environ (environment);