В Вт., 25/09/2012 в 19:24 +0400, Andrey Borzenkov пишет: > В Вт., 25/09/2012 в 12:46 +0800, Michael Chang пишет: > > 2012/9/25 Andrey Borzenkov <arvidj...@gmail.com>: > > > В Пн., 24/09/2012 в 11:37 +0200, Mads Kiilerich пишет: > > >> On 09/24/2012 08:51 AM, Michael Chang wrote: > > >> > We don't insert gettext module if message catalog file missing to > > >> > prevent error message from being logged. > [...] > > > > > > What about removing this error message altogether? Under OS gettext does > > > not complaint when catalog does not exist; why should it do it here? > > > Having English interface is enough indication that message catalog was > > > not found. > > > > I agree with you. IMHO the problem is it's not emitted directly from > > gettext module but from common underlying fs level, removing it would > > lead to other message which is fatal be ignored as well. > > > > As far as I can tell it is emitted explicitly when setting "lang": > > grub-core/gettext/gettext.c:grub_gettext_env_write_lang() > > grub_err_t err; > err = grub_gettext_init_ext (&main_context, val, grub_env_get > ("locale_dir"), > grub_env_get ("prefix")); > if (err) > grub_print_error (); > > and later. There are some more places which also try to reload catalog. >
Attached is prototype patch (tested) which suppresses error return from grub_text_init_ext(). Proper patch would need to also change function prototype, as its return value is now useless. > May be this messages can be turned into debugging message instead of > error. > That I do not know how to do.
Index: b/grub-core/gettext/gettext.c =================================================================== --- a/grub-core/gettext/gettext.c +++ b/grub-core/gettext/gettext.c @@ -395,6 +395,9 @@ grub_gettext_init_ext (struct grub_gette if (!part1 || part1[0] == 0) return 0; + /* It is not an error if message catalog does not exist */ + grub_error_push (); + err = grub_mofile_open_lang (ctx, part1, part2, locale); /* ll_CC didn't work, so try ll. */ @@ -412,7 +415,9 @@ grub_gettext_init_ext (struct grub_gette grub_free (lang); } - return err; + + grub_error_pop (); + return 0; } static char *
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel