summaryrefslogtreecommitdiffstats
path: root/lib/basename.c
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2002-01-02 11:06:23 +0000
committerBruno Haible <bruno@clisp.org>2009-06-22 00:29:22 +0200
commit337c1d83449465012744c7e7b4e1e198fd9d71ee (patch)
tree4f5546d371ce89264386b4b50f95d39758a0cbca /lib/basename.c
parent8817d43473b02eac28150c5c5048956e49d7b815 (diff)
downloadexternal_gettext-337c1d83449465012744c7e7b4e1e198fd9d71ee.zip
external_gettext-337c1d83449465012744c7e7b4e1e198fd9d71ee.tar.gz
external_gettext-337c1d83449465012744c7e7b4e1e198fd9d71ee.tar.bz2
Better support for DOS-like systems.
Diffstat (limited to 'lib/basename.c')
-rw-r--r--lib/basename.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/basename.c b/lib/basename.c
index 578c177..9a4f340 100644
--- a/lib/basename.c
+++ b/lib/basename.c
@@ -31,6 +31,15 @@
#include <stdio.h>
#include <assert.h>
+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
+ /* Win32, OS/2, DOS */
+# define HAS_DEVICE(P) \
+ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
+ && (P)[1] == ':')
+# define FILESYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0)
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+#endif
+
#ifndef FILESYSTEM_PREFIX_LEN
# define FILESYSTEM_PREFIX_LEN(Filename) 0
#endif