diff options
Diffstat (limited to 'apps/tree.c')
| -rw-r--r-- | apps/tree.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/apps/tree.c b/apps/tree.c index 9e1a22f..aedeeb1 100644 --- a/apps/tree.c +++ b/apps/tree.c @@ -772,6 +772,9 @@ static bool handle_on(int *ds, int *dc, int numentries, int tree_max_on_screen, { int onplay_result; + if(!numentries) + break; + if (currdir[1]) snprintf(buf, sizeof buf, "%s/%s", currdir, dircache[dircursor+dirstart].name); @@ -1499,6 +1502,30 @@ bool create_playlist(void) return true; } +bool create_dir(void) +{ + char dirname[MAX_PATH]; + int rc; + int pathlen; + + memset(dirname, 0, sizeof dirname); + + snprintf(dirname, sizeof dirname, "%s/", + currdir[1] ? currdir : ""); + + pathlen = strlen(dirname); + rc = kbd_input(dirname + pathlen, (sizeof dirname)-pathlen); + if(rc < 0) + return false; + + rc = mkdir(dirname, 0); + if(rc < 0) { + splash(HZ, true, "%s %s", str(LANG_CREATE_DIR), str(LANG_FAILED)); + } + + return true; +} + bool rockbox_browse(char *root, int dirfilter) { bool rc; |