diff options
Diffstat (limited to 'apps/tree.c')
-rw-r--r-- | apps/tree.c | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/apps/tree.c b/apps/tree.c index 9745f004fd..7cb57e7757 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -697,10 +697,10 @@ static int onplay_screen(char* dir, char* file) | |||
697 | struct entry* f = &dircache[dirstart + dircursor]; | 697 | struct entry* f = &dircache[dirstart + dircursor]; |
698 | bool isdir = f->attr & ATTR_DIRECTORY; | 698 | bool isdir = f->attr & ATTR_DIRECTORY; |
699 | 699 | ||
700 | if ((dir[0]=='/') && (dir[1]==0)) | 700 | if (dir[1]) |
701 | snprintf(buf, sizeof buf, "%s%s", dir, file); | ||
702 | else | ||
703 | snprintf(buf, sizeof buf, "%s/%s", dir, file); | 701 | snprintf(buf, sizeof buf, "%s/%s", dir, file); |
702 | else | ||
703 | snprintf(buf, sizeof buf, "/%s", file); | ||
704 | 704 | ||
705 | lcd_clear_display(); | 705 | lcd_clear_display(); |
706 | 706 | ||
@@ -850,11 +850,11 @@ static int onplay_screen(char* dir, char* file) | |||
850 | int m_handle; | 850 | int m_handle; |
851 | int selected; | 851 | int selected; |
852 | 852 | ||
853 | if ((dir[0]=='/') && (dir[1]==0)) | 853 | if (dir[1]) |
854 | snprintf(buf, sizeof buf, "%s%s", dir, file); | ||
855 | else | ||
856 | snprintf(buf, sizeof buf, "%s/%s", dir, file); | 854 | snprintf(buf, sizeof buf, "%s/%s", dir, file); |
857 | 855 | else | |
856 | snprintf(buf, sizeof buf, "/%s", dir, file); | ||
857 | |||
858 | if (playing) { | 858 | if (playing) { |
859 | items[lastitem].desc=str(LANG_QUEUE); | 859 | items[lastitem].desc=str(LANG_QUEUE); |
860 | ids[lastitem]=1; | 860 | ids[lastitem]=1; |
@@ -1096,11 +1096,10 @@ bool dirbrowse(char *root) | |||
1096 | #endif | 1096 | #endif |
1097 | if ( !numentries ) | 1097 | if ( !numentries ) |
1098 | break; | 1098 | break; |
1099 | if ((currdir[0]=='/') && (currdir[1]==0)) { | 1099 | if (currdir[1]) |
1100 | snprintf(buf,sizeof(buf),"%s%s",currdir, file->name); | ||
1101 | } else { | ||
1102 | snprintf(buf,sizeof(buf),"%s/%s",currdir, file->name); | 1100 | snprintf(buf,sizeof(buf),"%s/%s",currdir, file->name); |
1103 | } | 1101 | else |
1102 | snprintf(buf,sizeof(buf),"/%s",file->name); | ||
1104 | 1103 | ||
1105 | if (file->attr & ATTR_DIRECTORY) { | 1104 | if (file->attr & ATTR_DIRECTORY) { |
1106 | memcpy(currdir,buf,sizeof(currdir)); | 1105 | memcpy(currdir,buf,sizeof(currdir)); |
@@ -1120,10 +1119,15 @@ bool dirbrowse(char *root) | |||
1120 | lcd_stop_scroll(); | 1119 | lcd_stop_scroll(); |
1121 | switch ( file->attr & TREE_ATTR_MASK ) { | 1120 | switch ( file->attr & TREE_ATTR_MASK ) { |
1122 | case TREE_ATTR_M3U: | 1121 | case TREE_ATTR_M3U: |
1123 | if ( global_settings.resume ) | 1122 | if ( global_settings.resume ) { |
1124 | snprintf(global_settings.resume_file, | 1123 | if (currdir[1]) |
1125 | MAX_PATH, "%s/%s", | 1124 | snprintf(global_settings.resume_file, |
1126 | currdir, file->name); | 1125 | MAX_PATH, "%s/%s", |
1126 | currdir, file->name); | ||
1127 | else | ||
1128 | snprintf(global_settings.resume_file, | ||
1129 | MAX_PATH, "/%s", file->name); | ||
1130 | } | ||
1127 | play_list(currdir, file->name, 0, false, 0, | 1131 | play_list(currdir, file->name, 0, false, 0, |
1128 | seed, 0, 0, -1); | 1132 | seed, 0, 0, -1); |
1129 | start_index = 0; | 1133 | start_index = 0; |
@@ -1496,7 +1500,10 @@ static bool add_dir(char* dirname, int fd) | |||
1496 | if (!strcmp(entry->d_name, ".") || | 1500 | if (!strcmp(entry->d_name, ".") || |
1497 | !strcmp(entry->d_name, "..")) | 1501 | !strcmp(entry->d_name, "..")) |
1498 | continue; | 1502 | continue; |
1499 | snprintf(buf, sizeof buf, "%s/%s", dirname, entry->d_name); | 1503 | if (dirname[1]) |
1504 | snprintf(buf, sizeof buf, "%s/%s", dirname, entry->d_name); | ||
1505 | else | ||
1506 | snprintf(buf, sizeof buf, "/%s", entry->d_name); | ||
1500 | if (add_dir(buf,fd)) { | 1507 | if (add_dir(buf,fd)) { |
1501 | abort = true; | 1508 | abort = true; |
1502 | break; | 1509 | break; |