xref: /aosp_15_r20/external/musl/src/misc/dirname.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include <string.h>
2*c9945492SAndroid Build Coastguard Worker #include <libgen.h>
3*c9945492SAndroid Build Coastguard Worker 
dirname(char * s)4*c9945492SAndroid Build Coastguard Worker char *dirname(char *s)
5*c9945492SAndroid Build Coastguard Worker {
6*c9945492SAndroid Build Coastguard Worker 	size_t i;
7*c9945492SAndroid Build Coastguard Worker 	if (!s || !*s) return ".";
8*c9945492SAndroid Build Coastguard Worker 	i = strlen(s)-1;
9*c9945492SAndroid Build Coastguard Worker 	for (; s[i]=='/'; i--) if (!i) return "/";
10*c9945492SAndroid Build Coastguard Worker 	for (; s[i]!='/'; i--) if (!i) return ".";
11*c9945492SAndroid Build Coastguard Worker 	for (; s[i]=='/'; i--) if (!i) return "/";
12*c9945492SAndroid Build Coastguard Worker 	s[i+1] = 0;
13*c9945492SAndroid Build Coastguard Worker 	return s;
14*c9945492SAndroid Build Coastguard Worker }
15