This is the mail archive of the
binutils@sourceware.cygnus.com
mailing list for the binutils project.
Re: DOS/Windows patches, take 2
These are the patches for the include subdirectory:
2000-05-14 Eli Zaretskii <eliz@is.elta.co.il>
* filenames.h: New file.
(HAVE_DOS_BASED_FILE_SYSTEM, IS_DIR_SEPARATOR)
(IS_ABSOLUTE_PATH, FILENAME_CMP): New macros.
*** ./include/filenames.h.orig Fri May 12 18:38:40 2000
--- ./include/filenames.h Fri May 12 18:39:04 2000
***************
*** 0 ****
--- 1,28 ----
+ /* Macros for taking apart, interpreting and processing file names.
+
+ These are here because some non-Posix (a.k.a. DOSish) systems have
+ the drive letter brain-damage at the beginning of an absolute file
+ name, use forward- and back-slash in path names interchangeably, and
+ some of them have case-insensitive file names. */
+
+ #ifndef FILENAMES_H
+ #define FILENAMES_H
+
+ #if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__)
+ #ifndef HAVE_DOS_BASED_FILE_SYSTEM
+ #define HAVE_DOS_BASED_FILE_SYSTEM 1
+ #endif
+ #define IS_DIR_SEPARATOR(c) ((c) == '/' || (c) == '\\')
+ /* 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 FILENAME_CMP(s1, s2) strcasecmp(s1, s2)
+ #else /* not DOSish */
+ #define IS_DIR_SEPARATOR(c) ((c) == '/')
+ #define IS_ABSOLUTE_PATH(f) (IS_DIR_SEPARATOR((f)[0]))
+ #define FILENAME_CMP(s1, s2) strcmp(s1, s2)
+ #endif /* not DOSish */
+
+ #endif /* FILENAMES_H */