gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / libiberty / lbasename.c
index 43cb73f0a1d736122e92d6bca2035bd69f4db045..6715b20858edf4150907d882fa6983cc74c33286 100644 (file)
@@ -1,6 +1,6 @@
 /* Libiberty basename.  Like basename, but is not overridden by the
    system C library.
-   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 2001-2020 Free Software Foundation, Inc.
 
 This file is part of the libiberty library.
 Libiberty is free software; you can redistribute it and/or
@@ -15,8 +15,8 @@ Library General Public License for more details.
 
 You should have received a copy of the GNU Library General Public
 License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+Boston, MA 02110-1301, USA.  */
 
 /*
 
@@ -37,44 +37,48 @@ and a path ending in @code{/} returns the empty string after it.
 
 */
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 #include "ansidecl.h"
 #include "libiberty.h"
 #include "safe-ctype.h"
+#include "filenames.h"
 
-#ifndef DIR_SEPARATOR
-#  define DIR_SEPARATOR '/'
-#endif
+const char *
+unix_lbasename (const char *name)
+{
+  const char *base;
 
-#if defined (_WIN32) || defined (__MSDOS__) \
-    || defined (__DJGPP__) || defined (__OS2__)
-#  define HAVE_DOS_BASED_FILE_SYSTEM
-#  ifndef DIR_SEPARATOR_2 
-#    define DIR_SEPARATOR_2 '\\'
-#  endif
-#endif
+  for (base = name; *name; name++)
+    if (IS_UNIX_DIR_SEPARATOR (*name))
+      base = name + 1;
 
-#ifndef DIR_SEPARATOR_2
-#  define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else
-#  define IS_DIR_SEPARATOR(ch) \
-       (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif
+  return base;
+}
 
 const char *
-lbasename (name)
-     const char *name;
+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
+}
This page took 0.035233 seconds and 4 git commands to generate.