Commit 8b9b8e93 by Doug Evans Committed by Doug Evans

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

From-SVN: r158359
parent 31ce8a53
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> 2010-04-13 Matthias Klose <doko@ubuntu.com>
* elf: Remove empty directory. * elf: Remove empty directory.
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
use forward- and back-slash in path names interchangeably, and use forward- and back-slash in path names interchangeably, and
some of them have case-insensitive file names. 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. This file is part of BFD, the Binary File Descriptor library.
...@@ -37,17 +37,27 @@ extern "C" { ...@@ -37,17 +37,27 @@ extern "C" {
#endif #endif
#define IS_DIR_SEPARATOR(c) ((c) == '/' || (c) == '\\') #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 /* 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 only semi-absolute. This is because the users of IS_ABSOLUTE_PATH
want to know whether to prepend the current working directory to 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. */ 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 */ #else /* not DOSish */
#define IS_DIR_SEPARATOR(c) ((c) == '/') #define IS_DIR_SEPARATOR(c) ((c) == '/')
#define IS_ABSOLUTE_PATH(f) (IS_DIR_SEPARATOR((f)[0])) #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 */ #endif /* not DOSish */
extern int filename_cmp (const char *s1, const char *s2); extern int filename_cmp (const char *s1, const char *s2);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment