Add a function to get the path of a node in the IsoImage.

This commit is contained in:
Vreixo Formoso
2008-03-17 21:42:44 +01:00
parent 2374976b6d
commit 7b0da1ecd6
3 changed files with 37 additions and 1 deletions

View File

@ -957,3 +957,27 @@ int iso_tree_path_to_node(IsoImage *image, const char *path, IsoNode **node)
}
return result;
}
char *iso_tree_get_node_path(IsoNode *node)
{
if (node == NULL || node->parent == NULL) {
return NULL;
}
if ((IsoNode*)node->parent == node) {
return strdup("/");
} else {
char path[PATH_MAX];
char *parent_path = iso_tree_get_node_path((IsoNode*)node->parent);
if (parent_path == NULL) {
return NULL;
}
if (strlen(parent_path) == 1) {
snprintf(path, PATH_MAX, "/%s", node->name);
} else {
snprintf(path, PATH_MAX, "%s/%s", parent_path, node->name);
}
free(parent_path);
return strdup(path);
}
}