diff options
Diffstat (limited to 'apps/plugins/properties.c')
-rw-r--r-- | apps/plugins/properties.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/apps/plugins/properties.c b/apps/plugins/properties.c index d6692bc893..e127a2908e 100644 --- a/apps/plugins/properties.c +++ b/apps/plugins/properties.c | |||
@@ -69,22 +69,23 @@ static bool file_properties(char* selected_file) | |||
69 | { | 69 | { |
70 | while(0 != (entry = rb->readdir(dir))) | 70 | while(0 != (entry = rb->readdir(dir))) |
71 | { | 71 | { |
72 | struct dirinfo info = rb->dir_get_info(dir, entry); | ||
72 | if(!rb->strcmp(entry->d_name, selected_file+dirlen)) | 73 | if(!rb->strcmp(entry->d_name, selected_file+dirlen)) |
73 | { | 74 | { |
74 | unsigned log; | 75 | unsigned log; |
75 | rb->snprintf(str_dirname, sizeof str_dirname, "Path: %s", tstr); | 76 | rb->snprintf(str_dirname, sizeof str_dirname, "Path: %s", tstr); |
76 | rb->snprintf(str_filename, sizeof str_filename, "Name: %s", | 77 | rb->snprintf(str_filename, sizeof str_filename, "Name: %s", |
77 | selected_file+dirlen); | 78 | selected_file+dirlen); |
78 | log = human_size_log(entry->size); | 79 | log = human_size_log(info.size); |
79 | rb->snprintf(str_size, sizeof str_size, "Size: %ld %cB", | 80 | rb->snprintf(str_size, sizeof str_size, "Size: %ld %cB", |
80 | entry->size >> (log*10), human_size_prefix[log]); | 81 | info.size >> (log*10), human_size_prefix[log]); |
81 | rb->snprintf(str_date, sizeof str_date, "Date: %04d/%02d/%02d", | 82 | rb->snprintf(str_date, sizeof str_date, "Date: %04d/%02d/%02d", |
82 | ((entry->wrtdate >> 9 ) & 0x7F) + 1980, /* year */ | 83 | ((info.wrtdate >> 9 ) & 0x7F) + 1980, /* year */ |
83 | ((entry->wrtdate >> 5 ) & 0x0F), /* month */ | 84 | ((info.wrtdate >> 5 ) & 0x0F), /* month */ |
84 | ((entry->wrtdate ) & 0x1F)); /* day */ | 85 | ((info.wrtdate ) & 0x1F)); /* day */ |
85 | rb->snprintf(str_time, sizeof str_time, "Time: %02d:%02d", | 86 | rb->snprintf(str_time, sizeof str_time, "Time: %02d:%02d", |
86 | ((entry->wrttime >> 11) & 0x1F), /* hour */ | 87 | ((info.wrttime >> 11) & 0x1F), /* hour */ |
87 | ((entry->wrttime >> 5 ) & 0x3F)); /* minutes */ | 88 | ((info.wrttime >> 5 ) & 0x3F)); /* minutes */ |
88 | 89 | ||
89 | num_properties = 5; | 90 | num_properties = 5; |
90 | 91 | ||
@@ -158,11 +159,12 @@ static bool _dir_properties(DPS* dps) | |||
158 | /* walk through the directory content */ | 159 | /* walk through the directory content */ |
159 | while(result && (0 != (entry = rb->readdir(dir)))) | 160 | while(result && (0 != (entry = rb->readdir(dir)))) |
160 | { | 161 | { |
162 | struct dirinfo info = rb->dir_get_info(dir, entry); | ||
161 | /* append name to current directory */ | 163 | /* append name to current directory */ |
162 | rb->snprintf(dps->dirname+dirlen, dps->len-dirlen, "/%s", | 164 | rb->snprintf(dps->dirname+dirlen, dps->len-dirlen, "/%s", |
163 | entry->d_name); | 165 | entry->d_name); |
164 | 166 | ||
165 | if (entry->attribute & ATTR_DIRECTORY) | 167 | if (info.attribute & ATTR_DIRECTORY) |
166 | { | 168 | { |
167 | unsigned log; | 169 | unsigned log; |
168 | 170 | ||
@@ -188,7 +190,7 @@ static bool _dir_properties(DPS* dps) | |||
188 | else | 190 | else |
189 | { | 191 | { |
190 | dps->fc++; /* new file */ | 192 | dps->fc++; /* new file */ |
191 | dps->bc += entry->size; | 193 | dps->bc += info.size; |
192 | } | 194 | } |
193 | if(ACTION_STD_CANCEL == rb->get_action(CONTEXT_STD,TIMEOUT_NOBLOCK)) | 195 | if(ACTION_STD_CANCEL == rb->get_action(CONTEXT_STD,TIMEOUT_NOBLOCK)) |
194 | result = false; | 196 | result = false; |
@@ -290,7 +292,8 @@ enum plugin_status plugin_start(const void* parameter) | |||
290 | { | 292 | { |
291 | if(!rb->strcmp(entry->d_name, file+dirlen)) | 293 | if(!rb->strcmp(entry->d_name, file+dirlen)) |
292 | { | 294 | { |
293 | its_a_dir = entry->attribute & ATTR_DIRECTORY ? true : false; | 295 | struct dirinfo info = rb->dir_get_info(dir, entry); |
296 | its_a_dir = info.attribute & ATTR_DIRECTORY ? true : false; | ||
294 | found = true; | 297 | found = true; |
295 | break; | 298 | break; |
296 | } | 299 | } |