From 731971ed4bd85104dd2ada14a5897d29d063966a Mon Sep 17 00:00:00 2001 From: Keith Seitz Date: Fri, 11 Nov 2011 19:52:46 +0000 Subject: 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. --- gdb/linespec.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'gdb/linespec.c') 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 #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] == '<') -- cgit v1.1