aboutsummaryrefslogtreecommitdiff
path: root/navigator.c
diff options
context:
space:
mode:
Diffstat (limited to 'navigator.c')
-rw-r--r--navigator.c9
1 files 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 <dirent.h>
#include <stdlib.h>
#include <string.h>
+#include <stdio.h>
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 {