xref: /plan9-contrib/sys/src/ape/cmd/dirname.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1 #include <stdlib.h>
2 #include <string.h>
3 #include <stdio.h>
4 
5 main(int argc, char **argv)
6 {
7 	char *f, *s;
8 	int n;
9 
10 	if(argc != 2){
11 		fprintf(stderr, "Usage: dirname string\n");
12 		exit(1);
13 	}
14 	s = argv[1];
15 	f = s + strlen(s) - 1;
16 	while(f > s && *f == '/')
17 		f--;
18 	*++f = 0;
19 	/* now f is after last char of string, trailing slashes removed */
20 
21 	for(; f >= s; f--)
22 		if(*f == '/'){
23 			f++;
24 			break;
25 		}
26 	if(f < s) {
27 		*s = '.';
28 		s[1] = 0;
29 	} else {
30 		--f;
31 		while(f > s && *f == '/')
32 			f--;
33 		f[1] = 0;
34 	}
35 
36 	printf("%s\n", s);
37 }
38