#include <stdlib.h>
#include <string.h>
+#include <locale.h>
#include <talloc/talloc.h>
#include <types/types.h>
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;
_("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);