From 3009276c375bf3aa661dba71a1968ecfa41396a5 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Sat, 24 Apr 2010 00:55:41 +0000 Subject: filenames.h (IS_DIR_SEPARATOR_1): Rename from IS_DIR_SEPARATOR... 2010-04-23 Pedro Alves include/ * filenames.h (IS_DIR_SEPARATOR_1): Rename from IS_DIR_SEPARATOR, always define it independently of host, add `dos_based' parameter, and handle it. (HAS_DRIVE_SPEC_1): Rename from HAS_DRIVE_SPEC, always define it independently of host, add `dos_based' parameter, and handle it. (IS_ABSOLUTE_PATH_1): Rename from IS_ABSOLUTE_PATH, always define it independently of host, add `dos_based' parameter, and handle it. (IS_DOS_DIR_SEPARATOR, IS_DOS_ABSOLUTE_PATH) (IS_UNIX_DIR_SEPARATOR, IS_UNIX_ABSOLUTE_PATH) (HAS_DOS_DRIVE_SPEC): New. (HAS_DRIVE_SPEC): Reimplement on top of HAS_DRIVE_SPEC_1. (IS_DIR_SEPARATOR): Reimplement on top of IS_DIR_SEPARATOR_1. (IS_ABSOLUTE_PATH): Reimplement on top of IS_ABSOLUTE_PATH_1. * libiberty.h (dos_lbasename, unix_lbasename): Declare. libiberty/ * lbasename.c (lbasename): Split into ... (unix_lbasename, dos_basename): ... these. (lbasename): ... and reimplement on top of them. * Makefile.in (lbasename.o): Add dependency on $(INCDIR)/filenames.h. From-SVN: r158681 --- libiberty/lbasename.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'libiberty/lbasename.c') diff --git a/libiberty/lbasename.c b/libiberty/lbasename.c index 56fcd62..ed1dd1f 100644 --- a/libiberty/lbasename.c +++ b/libiberty/lbasename.c @@ -46,19 +46,39 @@ and a path ending in @code{/} returns the empty string after it. #include "filenames.h" const char * -lbasename (const char *name) +unix_lbasename (const char *name) +{ + const char *base; + + for (base = name; *name; name++) + if (IS_UNIX_DIR_SEPARATOR (*name)) + base = name + 1; + + return base; +} + +const char * +dos_lbasename (const char *name) { const char *base; -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over a possible disk name. */ if (ISALPHA (name[0]) && name[1] == ':') name += 2; -#endif for (base = name; *name; name++) - if (IS_DIR_SEPARATOR (*name)) + if (IS_DOS_DIR_SEPARATOR (*name)) base = name + 1; return base; } + +const char * +lbasename (const char *name) +{ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + return dos_lbasename (name); +#else + return unix_lbasename (name); +#endif +} -- cgit v1.1