/*
// File: path_file.c
// From the wonderful people at Portals.
*/

mixed *path_file(mixed full_path) {
    mixed *tmp, *dirs;
    int i;

    if(pointerp(full_path)) {
	dirs = allocate(2);
	dirs[0] = ({ });
	dirs[1] = ({ });
	for(i = 0; i < sizeof(full_path); i++) {
	    tmp = path_file(full_path[i]);
	    dirs[0] = dirs[0] + ({ tmp[0] });
	    dirs[1] = dirs[1] + ({ tmp[1] });
	}
	return dirs;
    }

    if(full_path == "/")
	return ({ "/","" });

    if(file_size(full_path) == -2)
	return ({ full_path, "" });
    dirs = explode(full_path,"/");
    tmp = dirs[0 .. sizeof(dirs) - 2];
    return ({ "/" + implode(tmp,"/"), dirs[sizeof(dirs) - 1] });
}
