xref: /plan9/sys/src/cmd/aquarela/smbpath.c (revision 8ccd4a6360d974db7bd7bbd4f37e7018419ea908)
1*8ccd4a63SDavid du Colombier #include "headers.h"
2*8ccd4a63SDavid du Colombier 
3*8ccd4a63SDavid du Colombier void
smbpathsplit(char * path,char ** dirp,char ** namep)4*8ccd4a63SDavid du Colombier smbpathsplit(char *path, char **dirp, char **namep)
5*8ccd4a63SDavid du Colombier {
6*8ccd4a63SDavid du Colombier 	char *dir;
7*8ccd4a63SDavid du Colombier 	char *p = strrchr(path, '/');
8*8ccd4a63SDavid du Colombier 	if (p == nil) {
9*8ccd4a63SDavid du Colombier 		*dirp = smbestrdup("/");
10*8ccd4a63SDavid du Colombier 		*namep = smbestrdup(path);
11*8ccd4a63SDavid du Colombier 		return;
12*8ccd4a63SDavid du Colombier 	}
13*8ccd4a63SDavid du Colombier 	if (p == path)
14*8ccd4a63SDavid du Colombier 		dir = smbestrdup("/");
15*8ccd4a63SDavid du Colombier 	else {
16*8ccd4a63SDavid du Colombier 		dir = smbemalloc(p - path + 1);
17*8ccd4a63SDavid du Colombier 		memcpy(dir, path, p - path);
18*8ccd4a63SDavid du Colombier 		dir[p - path] = 0;
19*8ccd4a63SDavid du Colombier 	}
20*8ccd4a63SDavid du Colombier 	*dirp = dir;
21*8ccd4a63SDavid du Colombier 	*namep = smbestrdup(p + 1);
22*8ccd4a63SDavid du Colombier }
23