diff options
author | Keith Seitz <keiths@redhat.com> | 2011-11-11 19:52:46 +0000 |
---|---|---|
committer | Keith Seitz <keiths@redhat.com> | 2011-11-11 19:52:46 +0000 |
commit | 731971ed4bd85104dd2ada14a5897d29d063966a (patch) | |
tree | 2b6a7ff547b5b77c4809d6c7da59c52483c7dc98 /gdb/linespec.c | |
parent | a4b5b48aa84a29e515c53eadac5e5558f3bf7f8d (diff) | |
download | gdb-731971ed4bd85104dd2ada14a5897d29d063966a.zip gdb-731971ed4bd85104dd2ada14a5897d29d063966a.tar.gz gdb-731971ed4bd85104dd2ada14a5897d29d063966a.tar.bz2 |
PR gdb/12843
* linespec.c (locate_first_half): Keep ':' if it looks
like it could be part of a Windows path starting with
a drive letter.
Diffstat (limited to 'gdb/linespec.c')
-rw-r--r-- | gdb/linespec.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/linespec.c b/gdb/linespec.c index 37ec368..64ba837 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -43,6 +43,7 @@ #include "arch-utils.h" #include <ctype.h> #include "cli/cli-utils.h" +#include "filenames.h" /* Prototypes for local functions. */ @@ -1194,6 +1195,16 @@ locate_first_half (char **argptr, int *is_quote_enclosed) ++p; } } + + + /* Check for a drive letter in the filename. This is done on all hosts + to capture cross-compilation environments. On Unixen, directory + separators are illegal in filenames, so if the user enters "e:/foo.c", + he is referring to a directory named "e:" and a source file named + "foo.c", and we still want to keep these two pieces together. */ + if (isalpha (p[0]) && p[1] == ':' && IS_DIR_SEPARATOR (p[2])) + p += 3; + for (; *p; p++) { if (p[0] == '<') |