X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=ui%2Fncurses%2Fnc-lang.c;h=a7c9ccc53bb53f24b755a2d2c3109752dc4da05e;hp=0b871566aa83fbeda61e02da393f6fb204be36ed;hb=211d7eb1de2d3a9cd97846deb9a85a934dae2981;hpb=91143069d1a40cefd997522d85cb2d8adf1681f7 diff --git a/ui/ncurses/nc-lang.c b/ui/ncurses/nc-lang.c index 0b87156..a7c9ccc 100644 --- a/ui/ncurses/nc-lang.c +++ b/ui/ncurses/nc-lang.c @@ -21,6 +21,7 @@ #include #include +#include #include #include @@ -229,7 +230,7 @@ static void lang_screen_layout_widgets(struct lang_screen *screen) widget_move(widget_button_base(screen->widgets.ok_b), y, screen->field_x); widget_move(widget_button_base(screen->widgets.cancel_b), - y, screen->field_x + 10); + y, screen->field_x + 14); } static void lang_screen_setup_empty(struct lang_screen *screen) @@ -265,8 +266,14 @@ static void lang_screen_setup_widgets(struct lang_screen *screen, len = wcstombs(NULL, lang->label, 0); assert(len >= 0); - label = talloc_array(screen, char, len + 1); - wcstombs(label, lang->label, len + 1); + if (len < 0) { + label = talloc_asprintf(screen, + "Unable to display text in this locale (%s)\n", + setlocale(LC_ALL, NULL)); + } else { + label = talloc_array(screen, char, len + 1); + wcstombs(label, lang->label, len + 1); + } selected = config->lang && !strcmp(lang->name, config->lang); found |= selected; @@ -286,7 +293,7 @@ static void lang_screen_setup_widgets(struct lang_screen *screen, screen->widgets.safe_mode = widget_new_label(set, 0, 0, _("Selecting 'OK' will exit safe mode")); - screen->widgets.ok_b = widget_new_button(set, 0, 0, 6, _("OK"), + screen->widgets.ok_b = widget_new_button(set, 0, 0, 10, _("OK"), ok_click, screen); screen->widgets.cancel_b = widget_new_button(set, 0, 0, 10, _("Cancel"), cancel_click, screen); @@ -384,7 +391,7 @@ struct lang_screen *lang_screen_init(struct cui *cui, _("Petitboot Language Selection")); screen->scr.frame.rtitle = NULL; screen->scr.frame.help = talloc_strdup(screen, - _("tab=next, shift+tab=previous, x=exit, h=help")); + _("tab=next, shift+tab=previous, x=exit")); nc_scr_frame_draw(&screen->scr); scrollok(screen->scr.sub_ncw, true);