/*
// 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] });
}
