#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);
}