aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/source.c19
2 files changed, 23 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b199f87..c2f01b9 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2012-05-30 Thiago Jung Bauermann <thiago.bauermann@linaro.org>
+
+ * source.c (openp): Expand tilde in path entries.
+
2012-05-29 Doug Evans <dje@google.com>
* buildsym.c (block_compar): Fix comment.
diff --git a/gdb/source.c b/gdb/source.c
index 27c5b0e..7de86b4 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -769,6 +769,25 @@ openp (const char *path, int opts, const char *string,
}
strcpy (filename, current_directory);
}
+ else if (strchr(dir, '~'))
+ {
+ /* See whether we need to expand the tilde. */
+ int newlen;
+ char *tilde_expanded;
+
+ tilde_expanded = tilde_expand (dir);
+
+ /* First, realloc the filename buffer if too short. */
+ len = strlen (tilde_expanded);
+ newlen = len + strlen (string) + 2;
+ if (newlen > alloclen)
+ {
+ alloclen = newlen;
+ filename = alloca (alloclen);
+ }
+ strcpy (filename, tilde_expanded);
+ xfree (tilde_expanded);
+ }
else
{
/* Normal file name in path -- just use it. */