diff options
author | Phil Muldoon <pmuldoon@redhat.com> | 2011-11-04 12:07:53 +0000 |
---|---|---|
committer | Phil Muldoon <pmuldoon@redhat.com> | 2011-11-04 12:07:53 +0000 |
commit | 3ab1ec277626d8f72c6f4c4a0d38dcdded240e89 (patch) | |
tree | 1a37a9d8d41a684a005ec411c5703aa181e2815e | |
parent | cd829959ce8624dd9143911738a87d84fc415e8f (diff) | |
download | binutils-3ab1ec277626d8f72c6f4c4a0d38dcdded240e89.zip binutils-3ab1ec277626d8f72c6f4c4a0d38dcdded240e89.tar.gz binutils-3ab1ec277626d8f72c6f4c4a0d38dcdded240e89.tar.bz2 |
2011-11-04 Phil Muldoon <pmuldoon@redhat.com>
PR Python/13345
* python/python.c (python_run_simple_file): Expand tilde in path.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/python/python.c | 18 |
2 files changed, 20 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d9af3e5..c1db4f6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2011-11-04 Phil Muldoon <pmuldoon@redhat.com> + PR Python/13345 + + * python/python.c (python_run_simple_file): Expand tilde in path. + +2011-11-04 Phil Muldoon <pmuldoon@redhat.com> + PR Python/13363 * python/py-type.c (typy_lookup_type): Do not return a type in diff --git a/gdb/python/python.c b/gdb/python/python.c index 3a5a6b5..108e542 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -30,6 +30,7 @@ #include "exceptions.h" #include "event-loop.h" #include "serial.h" +#include "readline/tilde.h" #include "python.h" #include <ctype.h> @@ -162,13 +163,22 @@ ensure_python_env (struct gdbarch *gdbarch, static void python_run_simple_file (const char *filename) { - char *filename_copy; + char *full_path; PyObject *python_file; struct cleanup *cleanup; - filename_copy = xstrdup (filename); - cleanup = make_cleanup (xfree, filename_copy); - python_file = PyFile_FromString (filename_copy, "r"); + /* Because we have a string for a filename, and are using Python to + open the file, we need to expand any tilde in the path first. */ + full_path = tilde_expand (filename); + cleanup = make_cleanup (xfree, full_path); + python_file = PyFile_FromString (full_path, "r"); + if (! python_file) + { + do_cleanups (cleanup); + gdbpy_print_stack (); + error (_("Error while opening file: %s"), full_path); + } + make_cleanup_py_decref (python_file); PyRun_SimpleFile (PyFile_AsFile (python_file), filename); do_cleanups (cleanup); |