diff options
| author | Teruaki Kawashima <teru@rockbox.org> | 2010-10-31 14:22:40 +0000 |
|---|---|---|
| committer | Teruaki Kawashima <teru@rockbox.org> | 2010-10-31 14:22:40 +0000 |
| commit | a177e13ee02f671d2476a2f68aeafbae49ffda69 (patch) | |
| tree | 4b41aef15ea6ebd2a8574b7d65701bac5ef8f224 /apps/plugins/disktidy.c | |
| parent | e20fc429a8b0162d48242385ae98ae6aa405a912 (diff) | |
| download | rockbox-a177e13ee02f671d2476a2f68aeafbae49ffda69.zip rockbox-a177e13ee02f671d2476a2f68aeafbae49ffda69.tar.gz rockbox-a177e13ee02f671d2476a2f68aeafbae49ffda69.tar.bz2 rockbox-a177e13ee02f671d2476a2f68aeafbae49ffda69.tar.xz | |
disktidy: handles user abort properly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28418 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/disktidy.c')
| -rw-r--r-- | apps/plugins/disktidy.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/apps/plugins/disktidy.c b/apps/plugins/disktidy.c index 92232bf..23bf0d1 100644 --- a/apps/plugins/disktidy.c +++ b/apps/plugins/disktidy.c @@ -267,7 +267,6 @@ enum tidy_return tidy_removedir(char *path, int *path_length) /* silent error */ continue; - struct dirinfo info = rb->dir_get_info(dir, entry); if (info.attribute & ATTR_DIRECTORY) { @@ -275,7 +274,7 @@ enum tidy_return tidy_removedir(char *path, int *path_length) if ((rb->strcmp(entry->d_name, ".") != 0) && \ (rb->strcmp(entry->d_name, "..") != 0)) { - tidy_removedir(path, path_length); + status = tidy_removedir(path, path_length); } } else @@ -284,7 +283,7 @@ enum tidy_return tidy_removedir(char *path, int *path_length) removed++; rb->remove(path); } - + /* restore path */ tidy_path_remove_entry(path, old_path_length, path_length); } @@ -307,7 +306,6 @@ enum tidy_return tidy_clean(char *path, int *path_length) struct dirent *entry; enum tidy_return status = TIDY_RETURN_OK; int button; - int del; /* has the item been deleted */ DIR *dir; int old_path_length = *path_length; @@ -344,8 +342,6 @@ enum tidy_return tidy_clean(char *path, int *path_length) if ((rb->strcmp(entry->d_name, ".") != 0) && \ (rb->strcmp(entry->d_name, "..") != 0)) { - del = 0; - /* get absolute path */ /* returns an error if path is too long */ if(!tidy_path_append_entry(path, entry, path_length)) @@ -355,11 +351,9 @@ enum tidy_return tidy_clean(char *path, int *path_length) if (tidy_remove_item(entry->d_name, info.attribute)) { /* delete dir */ - tidy_removedir(path, path_length); - del = 1; + status = tidy_removedir(path, path_length); } - - if (del == 0) + else { /* dir not deleted so clean it */ status = tidy_clean(path, path_length); @@ -372,7 +366,6 @@ enum tidy_return tidy_clean(char *path, int *path_length) else { /* file */ - del = 0; if (tidy_remove_item(entry->d_name, info.attribute)) { /* get absolute path */ @@ -384,8 +377,7 @@ enum tidy_return tidy_clean(char *path, int *path_length) removed++; /* increment removed files counter */ /* delete file */ rb->remove(path); - del = 1; - + /* restore path */ tidy_path_remove_entry(path, old_path_length, path_length); } |