aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Burgess <aburgess@redhat.com>2024-06-19 11:13:14 +0100
committerAndrew Burgess <aburgess@redhat.com>2024-06-27 15:15:26 +0100
commit632c5372771a6f167f3be554b2f84582169ffc07 (patch)
treea89a65b565b0d3631729a40651f2d880f16a5206
parent88aad97c21de7a39f8e63467674ef936b3e9a86d (diff)
downloadgdb-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.c2
-rw-r--r--gdb/nat/fork-inferior.c2
-rw-r--r--gdbserver/win32-low.cc2
-rw-r--r--gdbsupport/gdb_tilde_expand.h18
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 */