This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFA] add dos drive support to include/filenames.h


In GDB we need to be able to strip the drive letter from a path.
This patch provides the support to do so.

Ok to check in?

2010-04-12  Doug Evans  <>

	* filenames.h (HAVE_DRIVE_SPEC, STRIP_DRIVE_SPEC): New macros.

Index: filenames.h
RCS file: /cvs/src/src/include/filenames.h,v
retrieving revision 1.5
diff -u -p -r1.5 filenames.h
--- filenames.h	21 Mar 2008 23:40:18 -0000	1.5
+++ filenames.h	12 Apr 2010 17:19:32 -0000
@@ -5,7 +5,7 @@
    use forward- and back-slash in path names interchangeably, and
    some of them have case-insensitive file names.
-   Copyright 2000, 2001, 2007 Free Software Foundation, Inc.
+   Copyright 2000, 2001, 2007, 2010 Free Software Foundation, Inc.
 This file is part of BFD, the Binary File Descriptor library.
@@ -37,17 +37,27 @@ extern "C" {
 #define IS_DIR_SEPARATOR(c)	((c) == '/' || (c) == '\\')
+#define HAVE_DRIVE_SPEC(f)	(((f)[0]) && ((f)[1] == ':'))
+/* Remove the drive spec from F, assuming HAVE_DRIVE_SPEC (f).
+   The result is a pointer to the remainder of F.  */
+#define STRIP_DRIVE_SPEC(f)	((f) + 2)
 /* Note that IS_ABSOLUTE_PATH accepts d:foo as well, although it is
    only semi-absolute.  This is because the users of IS_ABSOLUTE_PATH
    want to know whether to prepend the current working directory to
    a file name, which should not be done with a name like d:foo.  */
-#define IS_ABSOLUTE_PATH(f)	(IS_DIR_SEPARATOR((f)[0]) || (((f)[0]) && ((f)[1] == ':')))
 #else  /* not DOSish */
 #define IS_DIR_SEPARATOR(c)	((c) == '/')
+#define HAVE_DRIVE_SPEC(f)	(0)
+#define STRIP_DRIVE_SPEC(f)	(f)
 #endif /* not DOSish */
 extern int filename_cmp (const char *s1, const char *s2);

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]