blob: 5073b8508ffd85e52248cd90c2b907339d169583 [file] [log] [blame]
#include <stdlib.h>
#include <string.h>
#include "basenames.h"
/* Return NAME with any leading path stripped off. */
char *ourBaseName(char *name)
{
char *base;
base = strrchr(name, '/');
return base ? base + 1 : name;
}
static void stripTrailingSlashes(char *path)
{
char *last;
last = path + strlen(path) - 1;
while (last > path && *last == '/')
*last-- = '\0';
}
char *ourDirName(char *origname)
{
char *slash;
char *name;
name = strdup(origname);
stripTrailingSlashes(name);
slash = strrchr(name, '/');
if (!slash) {
/* No slash, must be current directory */
free(name);
/* strdup used, as the return value will be free()ed at some point */
return strdup(".");
} else {
/* Remove any trailing slashes and final element. */
while (slash > name && *slash == '/')
--slash;
slash[1] = '\0';
return name;
}
}