aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 */