diff options
Diffstat (limited to 'apps/menu.c')
-rw-r--r-- | apps/menu.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/apps/menu.c b/apps/menu.c index 8e96cc4edf..c657c2c1ca 100644 --- a/apps/menu.c +++ b/apps/menu.c | |||
@@ -282,10 +282,34 @@ bool do_setting_from_menu(const struct menu_item_ex *temp) | |||
282 | temp->variable, | 282 | temp->variable, |
283 | &setting_id); | 283 | &setting_id); |
284 | char *title; | 284 | char *title; |
285 | char padded_title[MAX_PATH]; | ||
285 | if ((temp->flags&MENU_TYPE_MASK) == MT_SETTING_W_TEXT) | 286 | if ((temp->flags&MENU_TYPE_MASK) == MT_SETTING_W_TEXT) |
286 | title = temp->callback_and_desc->desc; | 287 | title = temp->callback_and_desc->desc; |
287 | else | 288 | else |
288 | title = ID2P(setting->lang_id); | 289 | title = ID2P(setting->lang_id); |
290 | |||
291 | /* this is needed so the scroll settings title | ||
292 | can actually be used to test the setting */ | ||
293 | if (setting->flags&F_PADTITLE) | ||
294 | { | ||
295 | int i = 0, len; | ||
296 | if (setting->lang_id == -1) | ||
297 | title = (char*)setting->cfg_vals; | ||
298 | else | ||
299 | title = P2STR((unsigned char*)title); | ||
300 | len = strlen(title); | ||
301 | while (i<MAX_PATH) | ||
302 | { | ||
303 | strncpy(&padded_title[i], title, | ||
304 | len<MAX_PATH-1-i?len:MAX_PATH-1-i); | ||
305 | i += len; | ||
306 | if (i<MAX_PATH-1) | ||
307 | padded_title[i++] = ' '; | ||
308 | } | ||
309 | padded_title[i] = '\0'; | ||
310 | title = padded_title; | ||
311 | } | ||
312 | |||
289 | option_screen((struct settings_list *)setting, | 313 | option_screen((struct settings_list *)setting, |
290 | setting->flags&F_TEMPVAR, title); | 314 | setting->flags&F_TEMPVAR, title); |
291 | return false; | 315 | return false; |