basename.c (DIR_SEPARATOR): New macro.
* basename.c (DIR_SEPARATOR): New macro. (DIR_SEPARATOR_2): Likewise. (HAVE_DOS_BASED_FILESYSTEM): Likewise. (IS_DIR_SEPARATOR): Likewise. (main): Handle MSDOS style pathname. From-SVN: r29937
This commit is contained in:
parent
df1f639fb1
commit
7f22ec2e64
2 changed files with 42 additions and 5 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
Wed Oct 13 01:16:47 1999 Mumit Khan <khan@xraylith.wisc.edu>
|
||||||
|
|
||||||
|
* basename.c (DIR_SEPARATOR): New macro.
|
||||||
|
(DIR_SEPARATOR_2): Likewise.
|
||||||
|
(HAVE_DOS_BASED_FILESYSTEM): Likewise.
|
||||||
|
(IS_DIR_SEPARATOR): Likewise.
|
||||||
|
(main): Handle MSDOS style pathname.
|
||||||
|
|
||||||
1999-10-11 Mark Mitchell <mark@codesourcery.com>
|
1999-10-11 Mark Mitchell <mark@codesourcery.com>
|
||||||
|
|
||||||
* cplus-dem.c (do_type): Handle pointer to member types whose
|
* cplus-dem.c (do_type): Handle pointer to member types whose
|
||||||
|
|
|
@ -14,24 +14,53 @@ DESCRIPTION
|
||||||
last component of the pathname ("ls.c" in this case).
|
last component of the pathname ("ls.c" in this case).
|
||||||
|
|
||||||
BUGS
|
BUGS
|
||||||
Presumes a UNIX style path with UNIX style separators.
|
Presumes a UNIX or DOS/Windows style path with UNIX or DOS/Windows
|
||||||
|
style separators.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "ansidecl.h"
|
#include "ansidecl.h"
|
||||||
#include "libiberty.h"
|
#include "libiberty.h"
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
|
#ifndef DIR_SEPARATOR
|
||||||
|
#define DIR_SEPARATOR '/'
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#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
|
||||||
|
|
||||||
|
/* Define IS_DIR_SEPARATOR. */
|
||||||
|
#ifndef DIR_SEPARATOR_2
|
||||||
|
# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
|
||||||
|
#else /* DIR_SEPARATOR_2 */
|
||||||
|
# define IS_DIR_SEPARATOR(ch) \
|
||||||
|
(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
|
||||||
|
#endif /* DIR_SEPARATOR_2 */
|
||||||
|
|
||||||
char *
|
char *
|
||||||
basename (name)
|
basename (name)
|
||||||
const char *name;
|
const char *name;
|
||||||
{
|
{
|
||||||
const char *base = name;
|
const char *base;
|
||||||
|
|
||||||
while (*name)
|
#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
|
||||||
|
/* Skip over the disk name in MSDOS pathnames. */
|
||||||
|
if (isalpha (name[0]) && name[1] == ':')
|
||||||
|
name += 2;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
for (base = name; *name; name++)
|
||||||
{
|
{
|
||||||
if (*name++ == '/')
|
if (IS_DIR_SEPARATOR (*name))
|
||||||
{
|
{
|
||||||
base = name;
|
base = name + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (char *) base;
|
return (char *) base;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue