1 bc7cb1a1 2003-11-23 devnull #include <u.h>
2 bc7cb1a1 2003-11-23 devnull #include <libc.h>
5 bc7cb1a1 2003-11-23 devnull main(int argc, char *argv[])
8 bc7cb1a1 2003-11-23 devnull int n, dflag;
10 bc7cb1a1 2003-11-23 devnull dflag = 0;
11 bc7cb1a1 2003-11-23 devnull if(argc>1 && strcmp(argv[1], "-d") == 0){
14 bc7cb1a1 2003-11-23 devnull dflag = 1;
16 bc7cb1a1 2003-11-23 devnull if(argc < 2 || argc > 3){
17 bc7cb1a1 2003-11-23 devnull fprint(2, "usage: basename [-d] string [suffix]\n");
18 bc7cb1a1 2003-11-23 devnull exits("usage");
20 bc7cb1a1 2003-11-23 devnull pr = utfrrune(argv[1], '/');
21 bc7cb1a1 2003-11-23 devnull if(dflag){
24 bc7cb1a1 2003-11-23 devnull print("%s\n", argv[1]);
25 bc7cb1a1 2003-11-23 devnull exits(0);
27 bc7cb1a1 2003-11-23 devnull print(".\n");
28 bc7cb1a1 2003-11-23 devnull exits(0);
33 bc7cb1a1 2003-11-23 devnull pr = argv[1];
34 bc7cb1a1 2003-11-23 devnull if(argc==3){
35 bc7cb1a1 2003-11-23 devnull n = strlen(pr)-strlen(argv[2]);
36 bc7cb1a1 2003-11-23 devnull if(n >= 0 && !strcmp(pr+n, argv[2]))
37 bc7cb1a1 2003-11-23 devnull pr[n] = 0;
39 bc7cb1a1 2003-11-23 devnull print("%s\n", pr);
40 bc7cb1a1 2003-11-23 devnull exits(0);