#include <u.h> | |
#include <libc.h> | |
void | |
main(int argc, char *argv[]) | |
{ | |
char *pr; | |
int n, dflag; | |
dflag = 0; | |
if(argc>1 && strcmp(argv[1], "-d") == 0){ | |
--argc; | |
++argv; | |
dflag = 1; | |
} | |
if(argc < 2 || argc > 3){ | |
fprint(2, "usage: basename [-d] string [suffix]\n"); | |
exits("usage"); | |
} | |
pr = utfrrune(argv[1], '/'); | |
if(dflag){ | |
if(pr){ | |
*pr = 0; | |
print("%s\n", argv[1]); | |
exits(0); | |
} | |
print(".\n"); | |
exits(0); | |
} | |
if(pr) | |
pr++; | |
else | |
pr = argv[1]; | |
if(argc==3){ | |
n = strlen(pr)-strlen(argv[2]); | |
if(n >= 0 && !strcmp(pr+n, argv[2])) | |
pr[n] = 0; | |
} | |
print("%s\n", pr); | |
exits(0); | |
} |