diff options
Diffstat (limited to 'apps/menus/main_menu.c')
-rw-r--r-- | apps/menus/main_menu.c | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/apps/menus/main_menu.c b/apps/menus/main_menu.c index 0278af3668..4ca76e3c80 100644 --- a/apps/menus/main_menu.c +++ b/apps/menus/main_menu.c | |||
@@ -146,7 +146,8 @@ enum infoscreenorder | |||
146 | }; | 146 | }; |
147 | 147 | ||
148 | 148 | ||
149 | static char* info_getname(int selected_item, void *data, char *buffer) | 149 | static char* info_getname(int selected_item, void *data, |
150 | char *buffer, size_t buffer_len) | ||
150 | { | 151 | { |
151 | struct info_data *info = (struct info_data*)data; | 152 | struct info_data *info = (struct info_data*)data; |
152 | #if CONFIG_RTC | 153 | #if CONFIG_RTC |
@@ -176,13 +177,13 @@ static char* info_getname(int selected_item, void *data, char *buffer) | |||
176 | switch (selected_item) | 177 | switch (selected_item) |
177 | { | 178 | { |
178 | case INFO_VERSION: | 179 | case INFO_VERSION: |
179 | snprintf(buffer, MAX_PATH, "%s: %s", | 180 | snprintf(buffer, buffer_len, "%s: %s", |
180 | str(LANG_VERSION), appsversion); | 181 | str(LANG_VERSION), appsversion); |
181 | break; | 182 | break; |
182 | #if CONFIG_RTC | 183 | #if CONFIG_RTC |
183 | case INFO_TIME: | 184 | case INFO_TIME: |
184 | tm = get_time(); | 185 | tm = get_time(); |
185 | snprintf(buffer, MAX_PATH, "%02d:%02d:%02d %s", | 186 | snprintf(buffer, buffer_len, "%02d:%02d:%02d %s", |
186 | global_settings.timeformat == 0 ? tm->tm_hour : | 187 | global_settings.timeformat == 0 ? tm->tm_hour : |
187 | ((tm->tm_hour + 11) % 12) + 1, | 188 | ((tm->tm_hour + 11) % 12) + 1, |
188 | tm->tm_min, | 189 | tm->tm_min, |
@@ -192,7 +193,7 @@ static char* info_getname(int selected_item, void *data, char *buffer) | |||
192 | break; | 193 | break; |
193 | case INFO_DATE: | 194 | case INFO_DATE: |
194 | tm = get_time(); | 195 | tm = get_time(); |
195 | snprintf(buffer, MAX_PATH, "%s %d %d", | 196 | snprintf(buffer, buffer_len, "%s %d %d", |
196 | str(LANG_MONTH_JANUARY + tm->tm_mon), | 197 | str(LANG_MONTH_JANUARY + tm->tm_mon), |
197 | tm->tm_mday, | 198 | tm->tm_mday, |
198 | tm->tm_year+1900); | 199 | tm->tm_year+1900); |
@@ -203,31 +204,31 @@ static char* info_getname(int selected_item, void *data, char *buffer) | |||
203 | long buflen = ((audiobufend - audiobuf) * 2) / 2097; /* avoid overflow */ | 204 | long buflen = ((audiobufend - audiobuf) * 2) / 2097; /* avoid overflow */ |
204 | int integer = buflen / 1000; | 205 | int integer = buflen / 1000; |
205 | int decimal = buflen % 1000; | 206 | int decimal = buflen % 1000; |
206 | snprintf(buffer, MAX_PATH, (char *)str(LANG_BUFFER_STAT), | 207 | snprintf(buffer, buffer_len, (char *)str(LANG_BUFFER_STAT), |
207 | integer, decimal); | 208 | integer, decimal); |
208 | } | 209 | } |
209 | break; | 210 | break; |
210 | case INFO_BATTERY: /* battery */ | 211 | case INFO_BATTERY: /* battery */ |
211 | #if CONFIG_CHARGING == CHARGING_SIMPLE | 212 | #if CONFIG_CHARGING == CHARGING_SIMPLE |
212 | if (charger_input_state == CHARGER) | 213 | if (charger_input_state == CHARGER) |
213 | snprintf(buffer, MAX_PATH, (char *)str(LANG_BATTERY_CHARGE)); | 214 | snprintf(buffer, buffer_len, (char *)str(LANG_BATTERY_CHARGE)); |
214 | else | 215 | else |
215 | #elif CONFIG_CHARGING >= CHARGING_MONITOR | 216 | #elif CONFIG_CHARGING >= CHARGING_MONITOR |
216 | if (charge_state == CHARGING) | 217 | if (charge_state == CHARGING) |
217 | snprintf(buffer, MAX_PATH, (char *)str(LANG_BATTERY_CHARGE)); | 218 | snprintf(buffer, buffer_len, (char *)str(LANG_BATTERY_CHARGE)); |
218 | else | 219 | else |
219 | #if CONFIG_CHARGING == CHARGING_CONTROL | 220 | #if CONFIG_CHARGING == CHARGING_CONTROL |
220 | if (charge_state == TOPOFF) | 221 | if (charge_state == TOPOFF) |
221 | snprintf(buffer, MAX_PATH, (char *)str(LANG_BATTERY_TOPOFF_CHARGE)); | 222 | snprintf(buffer, buffer_len, (char *)str(LANG_BATTERY_TOPOFF_CHARGE)); |
222 | else | 223 | else |
223 | #endif | 224 | #endif |
224 | if (charge_state == TRICKLE) | 225 | if (charge_state == TRICKLE) |
225 | snprintf(buffer, MAX_PATH, (char *)str(LANG_BATTERY_TRICKLE_CHARGE)); | 226 | snprintf(buffer, buffer_len, (char *)str(LANG_BATTERY_TRICKLE_CHARGE)); |
226 | else | 227 | else |
227 | #endif | 228 | #endif |
228 | if (battery_level() >= 0) | 229 | if (battery_level() >= 0) |
229 | snprintf(buffer, MAX_PATH, (char *)str(LANG_BATTERY_TIME), battery_level(), | 230 | snprintf(buffer, buffer_len, (char *)str(LANG_BATTERY_TIME), |
230 | battery_time() / 60, battery_time() % 60); | 231 | battery_level(), battery_time() / 60, battery_time() % 60); |
231 | else | 232 | else |
232 | strcpy(buffer, "(n/a)"); | 233 | strcpy(buffer, "(n/a)"); |
233 | break; | 234 | break; |
@@ -235,11 +236,11 @@ static char* info_getname(int selected_item, void *data, char *buffer) | |||
235 | #ifdef HAVE_MULTIVOLUME | 236 | #ifdef HAVE_MULTIVOLUME |
236 | output_dyn_value(s1, sizeof s1, info->free, kbyte_units, true); | 237 | output_dyn_value(s1, sizeof s1, info->free, kbyte_units, true); |
237 | output_dyn_value(s2, sizeof s2, info->size, kbyte_units, true); | 238 | output_dyn_value(s2, sizeof s2, info->size, kbyte_units, true); |
238 | snprintf(buffer, MAX_PATH, "%s %s/%s", str(LANG_DISK_NAME_INTERNAL), | 239 | snprintf(buffer, buffer_len, "%s %s/%s", str(LANG_DISK_NAME_INTERNAL), |
239 | s1, s2); | 240 | s1, s2); |
240 | #else | 241 | #else |
241 | output_dyn_value(s1, sizeof s1, info->free, kbyte_units, true); | 242 | output_dyn_value(s1, sizeof s1, info->free, kbyte_units, true); |
242 | snprintf(buffer, MAX_PATH, SIZE_FMT, str(LANG_DISK_FREE_INFO), s1); | 243 | snprintf(buffer, buffer_len, SIZE_FMT, str(LANG_DISK_FREE_INFO), s1); |
243 | #endif | 244 | #endif |
244 | break; | 245 | break; |
245 | case INFO_DISK2: /* disk usage 2 */ | 246 | case INFO_DISK2: /* disk usage 2 */ |
@@ -248,17 +249,17 @@ static char* info_getname(int selected_item, void *data, char *buffer) | |||
248 | { | 249 | { |
249 | output_dyn_value(s1, sizeof s1, info->free2, kbyte_units, true); | 250 | output_dyn_value(s1, sizeof s1, info->free2, kbyte_units, true); |
250 | output_dyn_value(s2, sizeof s2, info->size2, kbyte_units, true); | 251 | output_dyn_value(s2, sizeof s2, info->size2, kbyte_units, true); |
251 | snprintf(buffer, MAX_PATH, "%s %s/%s", str(LANG_DISK_NAME_MMC), | 252 | snprintf(buffer, buffer_len, "%s %s/%s", str(LANG_DISK_NAME_MMC), |
252 | s1, s2); | 253 | s1, s2); |
253 | } | 254 | } |
254 | else | 255 | else |
255 | { | 256 | { |
256 | snprintf(buffer, MAX_PATH, "%s %s", str(LANG_DISK_NAME_MMC), | 257 | snprintf(buffer, buffer_len, "%s %s", str(LANG_DISK_NAME_MMC), |
257 | str(LANG_NOT_PRESENT)); | 258 | str(LANG_NOT_PRESENT)); |
258 | } | 259 | } |
259 | #else | 260 | #else |
260 | output_dyn_value(s1, sizeof s1, info->size, kbyte_units, true); | 261 | output_dyn_value(s1, sizeof s1, info->size, kbyte_units, true); |
261 | snprintf(buffer, MAX_PATH, SIZE_FMT, str(LANG_DISK_SIZE_INFO), s1); | 262 | snprintf(buffer, buffer_len, SIZE_FMT, str(LANG_DISK_SIZE_INFO), s1); |
262 | #endif | 263 | #endif |
263 | break; | 264 | break; |
264 | } | 265 | } |