OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [branches/] [oc/] [gdb-5.0/] [libiberty/] [basename.c] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 106 markom
/* Return the basename of a pathname.
2
   This file is in the public domain. */
3
 
4
/*
5
NAME
6
        basename -- return pointer to last component of a pathname
7
 
8
SYNOPSIS
9
        char *basename (const char *name)
10
 
11
DESCRIPTION
12
        Given a pointer to a string containing a typical pathname
13
        (/usr/src/cmd/ls/ls.c for example), returns a pointer to the
14
        last component of the pathname ("ls.c" in this case).
15
 
16
BUGS
17
        Presumes a UNIX or DOS/Windows style path with UNIX or DOS/Windows
18
        style separators.
19
*/
20
 
21
#include "ansidecl.h"
22
#include "libiberty.h"
23
#include <ctype.h>
24
 
25
#ifndef DIR_SEPARATOR
26
#define DIR_SEPARATOR '/'
27
#endif
28
 
29
#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
30
  defined (__OS2__)
31
#define HAVE_DOS_BASED_FILE_SYSTEM
32
#ifndef DIR_SEPARATOR_2 
33
#define DIR_SEPARATOR_2 '\\'
34
#endif
35
#endif
36
 
37
/* Define IS_DIR_SEPARATOR.  */
38
#ifndef DIR_SEPARATOR_2
39
# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
40
#else /* DIR_SEPARATOR_2 */
41
# define IS_DIR_SEPARATOR(ch) \
42
        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
43
#endif /* DIR_SEPARATOR_2 */
44
 
45
char *
46
basename (name)
47
     const char *name;
48
{
49
  const char *base;
50
 
51
#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
52
  /* Skip over the disk name in MSDOS pathnames. */
53
  if (isalpha (name[0]) && name[1] == ':')
54
    name += 2;
55
#endif
56
 
57
  for (base = name; *name; name++)
58
    {
59
      if (IS_DIR_SEPARATOR (*name))
60
        {
61
          base = name + 1;
62
        }
63
    }
64
  return (char *) base;
65
}
66
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.