Blob
1 #include <u.h>2 #include <libc.h>4 void5 main(int argc, char *argv[])6 {7 char *pr;8 int n, dflag;10 dflag = 0;11 if(argc>1 && strcmp(argv[1], "-d") == 0){12 --argc;13 ++argv;14 dflag = 1;15 }16 if(argc < 2 || argc > 3){17 fprint(2, "usage: basename [-d] string [suffix]\n");18 exits("usage");19 }20 pr = utfrrune(argv[1], '/');21 if(dflag){22 if(pr){23 *pr = 0;24 print("%s\n", argv[1]);25 exits(0);26 }27 print(".\n");28 exits(0);29 }30 if(pr)31 pr++;32 else33 pr = argv[1];34 if(argc==3){35 n = strlen(pr)-strlen(argv[2]);36 if(n >= 0 && !strcmp(pr+n, argv[2]))37 pr[n] = 0;38 }39 print("%s\n", pr);40 exits(0);41 }