47 lines
738 B
C
47 lines
738 B
C
#ifdef HAVE_CONFIG_H
|
|
# include "config.h"
|
|
#endif /* HAVE_CONFIG_H */
|
|
#ifdef HAVE_LIBGEN_H
|
|
# include <libgen.h>
|
|
#endif /* HAVE_LIBGEN_H */
|
|
#include <string.h>
|
|
#include <tcc/path.h>
|
|
|
|
/* extract the basename of a file */
|
|
char *
|
|
tcc_basename(const char *name)
|
|
{
|
|
#ifdef HAVE_LIBGEN_H
|
|
return (basename((char *)name));
|
|
#else
|
|
char *p;
|
|
|
|
p = strchr(name, 0);
|
|
while (p > name && !IS_DIRSEP(p[-1]))
|
|
{
|
|
--p;
|
|
}
|
|
return (p);
|
|
#endif /* HAVE_LIBGEN_H */
|
|
}
|
|
|
|
/* extract extension part of a file
|
|
*
|
|
* (if no extension, return pointer to end-of-string)
|
|
*/
|
|
char *
|
|
tcc_fileextension(const char *name)
|
|
{
|
|
const char *b;
|
|
char *e;
|
|
|
|
b = tcc_basename(name);
|
|
e = strrchr(tcc_basename(name), '.');
|
|
|
|
if (e)
|
|
{
|
|
return (e);
|
|
}
|
|
|
|
return (strchr(b, 0));
|
|
}
|