diff options
author | Andrew Burgess <aburgess@redhat.com> | 2024-06-19 11:13:14 +0100 |
---|---|---|
committer | Andrew Burgess <aburgess@redhat.com> | 2024-06-27 15:15:26 +0100 |
commit | 632c5372771a6f167f3be554b2f84582169ffc07 (patch) | |
tree | a89a65b565b0d3631729a40651f2d880f16a5206 | |
parent | 88aad97c21de7a39f8e63467674ef936b3e9a86d (diff) | |
download | gdb-632c5372771a6f167f3be554b2f84582169ffc07.zip gdb-632c5372771a6f167f3be554b2f84582169ffc07.tar.gz gdb-632c5372771a6f167f3be554b2f84582169ffc07.tar.bz2 |
gdb: add overloads of gdb_tilde_expand
Like the previous commit, add two overloads of gdb_tilde_expand, one
takes std::string and other takes gdb::unique_xmalloc_ptr<char>. Make
use of these overloads throughout GDB and gdbserver.
There should be no user visible changes after this commit.
Approved-By: Tom Tromey <tom@tromey.com>
-rw-r--r-- | gdb/completer.c | 2 | ||||
-rw-r--r-- | gdb/nat/fork-inferior.c | 2 | ||||
-rw-r--r-- | gdbserver/win32-low.cc | 2 | ||||
-rw-r--r-- | gdbsupport/gdb_tilde_expand.h | 18 |
4 files changed, 19 insertions, 5 deletions
diff --git a/gdb/completer.c b/gdb/completer.c index bd5118f..1008ec2 100644 --- a/gdb/completer.c +++ b/gdb/completer.c @@ -236,7 +236,7 @@ filename_completer (struct cmd_list_element *ignore, trailing '/' ourselves now. */ if (!tracker.from_readline ()) { - std::string expanded = gdb_tilde_expand (p_rl.get ()); + std::string expanded = gdb_tilde_expand (p_rl); struct stat finfo; const bool isdir = (stat (expanded.c_str (), &finfo) == 0 && S_ISDIR (finfo.st_mode)); diff --git a/gdb/nat/fork-inferior.c b/gdb/nat/fork-inferior.c index 2fd9cba..41765b1 100644 --- a/gdb/nat/fork-inferior.c +++ b/gdb/nat/fork-inferior.c @@ -321,7 +321,7 @@ fork_inferior (const char *exec_file, const std::string &allargs, char **env, { /* Expand before forking because between fork and exec, the child process may only execute async-signal-safe operations. */ - inferior_cwd = gdb_tilde_expand (inferior_cwd.c_str ()); + inferior_cwd = gdb_tilde_expand (inferior_cwd); } /* If there's any initialization of the target layers that must diff --git a/gdbserver/win32-low.cc b/gdbserver/win32-low.cc index f672e54..41eed20 100644 --- a/gdbserver/win32-low.cc +++ b/gdbserver/win32-low.cc @@ -501,7 +501,7 @@ create_process (const char *program, char *args, /* current directory */ (inferior_cwd.empty () ? NULL - : gdb_tilde_expand (inferior_cwd.c_str ()).c_str()), + : gdb_tilde_expand (inferior_cwd).c_str()), get_client_state ().disable_randomization, &si, /* start info */ pi); /* proc info */ diff --git a/gdbsupport/gdb_tilde_expand.h b/gdbsupport/gdb_tilde_expand.h index fbd410d..f16f3a4 100644 --- a/gdbsupport/gdb_tilde_expand.h +++ b/gdbsupport/gdb_tilde_expand.h @@ -20,7 +20,21 @@ #ifndef COMMON_GDB_TILDE_EXPAND_H #define COMMON_GDB_TILDE_EXPAND_H -/* Perform tilde expansion on DIR, and return the full path. */ -extern std::string gdb_tilde_expand (const char *dir); +/* Perform tilde expansion on PATH, and return the full path. */ +extern std::string gdb_tilde_expand (const char *path); + +/* Overload of gdb_tilde_expand that takes std::string. */ +static inline std::string +gdb_tilde_expand (const std::string &path) +{ + return gdb_tilde_expand (path.c_str ()); +} + +/* Overload of gdb_tilde_expand that takes gdb::unique_xmalloc_ptr<char>. */ +static inline std::string +gdb_tilde_expand (const gdb::unique_xmalloc_ptr<char> &path) +{ + return gdb_tilde_expand (path.get ()); +} #endif /* COMMON_GDB_TILDE_EXPAND_H */ |