summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authordevans <devans@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-14 21:16:34 +0000
committerdevans <devans@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-14 21:16:34 +0000
commit81eaa85281cc3b9e776b71fc6e2f4d5e0920eaf3 (patch)
treec49575b8d1d4efbbd846cb19ee136295d1fad2ad /include
parent84c471f5dbe2c6546758bbbc9df95831319bf4bd (diff)
downloadgcc-81eaa85281cc3b9e776b71fc6e2f4d5e0920eaf3.tar.gz
* filenames.h (HAS_DRIVE_SPEC, STRIP_DRIVE_SPEC): New macros.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158359 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'include')
-rw-r--r--include/ChangeLog4
-rw-r--r--include/filenames.h14
2 files changed, 16 insertions, 2 deletions
diff --git a/include/ChangeLog b/include/ChangeLog
index 2da6a1b28c4..938b5ba8440 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2010-04-14 Doug Evans <dje@google.com>
+
+ * filenames.h (HAS_DRIVE_SPEC, STRIP_DRIVE_SPEC): New macros.
+
2010-04-13 Matthias Klose <doko@ubuntu.com>
* elf: Remove empty directory.
diff --git a/include/filenames.h b/include/filenames.h
index 0d411cc1264..d5e34a01200 100644
--- a/include/filenames.h
+++ b/include/filenames.h
@@ -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" {
#endif
#define IS_DIR_SEPARATOR(c) ((c) == '/' || (c) == '\\')
+
+#define HAS_DRIVE_SPEC(f) (((f)[0]) && ((f)[1] == ':'))
+
+/* Remove the drive spec from F, assuming HAS_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] == ':')))
+#define IS_ABSOLUTE_PATH(f) (IS_DIR_SEPARATOR((f)[0]) || HAS_DRIVE_SPEC(f))
#else /* not DOSish */
#define IS_DIR_SEPARATOR(c) ((c) == '/')
#define IS_ABSOLUTE_PATH(f) (IS_DIR_SEPARATOR((f)[0]))
+#define HAS_DRIVE_SPEC(f) (0)
+#define STRIP_DRIVE_SPEC(f) (f)
+
#endif /* not DOSish */
extern int filename_cmp (const char *s1, const char *s2);