From 2684293bf89f42a8de66fa9a16f62d8bc1668199 Mon Sep 17 00:00:00 2001 From: Harry Jeffery Date: Tue, 10 Nov 2015 11:33:17 +0000 Subject: Use correct paths when recursing --- navigator.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/navigator.c b/navigator.c index 393f887..7414126 100644 --- a/navigator.c +++ b/navigator.c @@ -23,6 +23,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include +#include void imv_init_navigator(struct imv_navigator *nav) { @@ -74,6 +75,7 @@ static void add_item(struct imv_navigator *nav, const char *path) void imv_navigator_add_path(struct imv_navigator *nav, const char *path) { + char path_buf[512]; struct stat path_info; stat(path, &path_info); if(S_ISDIR(path_info.st_mode)) { @@ -81,7 +83,8 @@ void imv_navigator_add_path(struct imv_navigator *nav, const char *path) if(d) { struct dirent *dir; while((dir = readdir(d)) != NULL) { - add_item(nav, dir->d_name); + snprintf(path_buf, sizeof(path_buf), "%s/%s", path, dir->d_name); + add_item(nav, path_buf); } } } else { @@ -91,6 +94,7 @@ void imv_navigator_add_path(struct imv_navigator *nav, const char *path) void imv_navigator_add_path_recursive(struct imv_navigator *nav, const char *path) { + char path_buf[512]; struct stat path_info; stat(path, &path_info); if(S_ISDIR(path_info.st_mode)) { @@ -98,7 +102,8 @@ void imv_navigator_add_path_recursive(struct imv_navigator *nav, const char *pat if(d) { struct dirent *dir; while((dir = readdir(d)) != NULL) { - imv_navigator_add_path_recursive(nav, dir->d_name); + snprintf(path_buf, sizeof(path_buf), "%s/%s", path, dir->d_name); + imv_navigator_add_path_recursive(nav, path_buf); } } } else { -- cgit v1.2.3