Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include <u.h>
2
#include <libc.h>
3
 
4
void
5
main(int argc, char *argv[])
6
{
7
	char *pr;
8
	int n, dflag;
9
 
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
	else
33
		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
}