summaryrefslogtreecommitdiffstats
path: root/apps/tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/tree.c')
-rw-r--r--apps/tree.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/apps/tree.c b/apps/tree.c
index 9e1a22f567..aedeeb1dfd 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;