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));
{
/* 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
/* 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 */
#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 */