diff options
author | Tom Tromey <tom@tromey.com> | 2018-09-14 10:35:45 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-10-27 11:58:40 -0600 |
commit | 974e68446388769f023c6c9bfb1e67ed75199618 (patch) | |
tree | 49cb772e05b3d9157addbfea699624a0f293e969 /gdb/common | |
parent | c8ee3f04a66141d5fa930cd77bc53ac0bc17de32 (diff) | |
download | binutils-974e68446388769f023c6c9bfb1e67ed75199618.zip binutils-974e68446388769f023c6c9bfb1e67ed75199618.tar.gz binutils-974e68446388769f023c6c9bfb1e67ed75199618.tar.bz2 |
Unify shell-finding logic
I noticed several places in gdb that were using getenv("SHELL") and
then falling back to "/bin/sh" if it returned NULL. This unifies
these into a single function.
gdb/ChangeLog
2018-10-27 Tom Tromey <tom@tromey.com>
* procfs.c (procfs_target::create_inferior): Use get_shell.
* cli/cli-cmds.c (shell_escape): Use get_shell.
* windows-nat.c (windows_nat_target::create_inferior): Use
get_shell.
* common/pathstuff.c (get_shell): New function.
* nat/fork-inferior.c (SHELL_FILE, get_startup_shell): Remove.
(fork_inferior): Use get_shell.
* common/pathstuff.h (get_shell): Declare.
Diffstat (limited to 'gdb/common')
-rw-r--r-- | gdb/common/pathstuff.c | 12 | ||||
-rw-r--r-- | gdb/common/pathstuff.h | 5 |
2 files changed, 17 insertions, 0 deletions
diff --git a/gdb/common/pathstuff.c b/gdb/common/pathstuff.c index 82905c9e..6d8e53f 100644 --- a/gdb/common/pathstuff.c +++ b/gdb/common/pathstuff.c @@ -190,3 +190,15 @@ get_standard_cache_dir () return {}; } + +/* See common/pathstuff.h. */ + +const char * +get_shell () +{ + const char *ret = getenv ("SHELL"); + if (ret == NULL) + ret = "/bin/sh"; + + return ret; +} diff --git a/gdb/common/pathstuff.h b/gdb/common/pathstuff.h index a43b963..0a8caea 100644 --- a/gdb/common/pathstuff.h +++ b/gdb/common/pathstuff.h @@ -64,4 +64,9 @@ extern bool contains_dir_separator (const char *path); extern std::string get_standard_cache_dir (); +/* Return the file name of the user's shell. Normally this comes from + the SHELL environment variable. */ + +extern const char *get_shell (); + #endif /* PATHSTUFF_H */ |