Hello, I'm doing some more gettext stuff. Right now I have (relevant code for the problem):
(briefly: the problem is that I'm changing a function pointer inside gettext module code and it's not changed in other parts in Grub, even when it's defined in include/grub/misc.h and only there) include/grub/misc.h: char* EXPORT_FUNC(grub_gettext_dummy) (const char *s); char* EXPORT_FUNC((*grub_gettext)) (const char *s); (I've done tests without EXPORT_FUNC and with EXPORT_VAR for grub_gettext) In normal/main.c, GRUB_MOD_INIT(normal) I have: grub_gettext = grub_gettext_dummy; In normal/cmdline.c, in grub_cmdline_run and after "ESC at any time exits": grub_printf("grub_gettext: %d\n",grub_gettext); In gettext/gettext.c, GRUB_MOD_INIT(gettext): grub_gettext = grub_gettext_translate; grub_printf("grub_gettext: %d\n",grub_gettext); First time that I type "C" in Grub menu, I read grub_gettext: XXXX. Then I insmod my module and it prints grub_printf("grub_gettext: %d\n",grub_gettext); (different value, of course). I press ESC (to go to Grub menu) and C (to go to the command line) and I get the first grub_gettext value, not the one that I changed. How so? I don't declare grub_gettext again, how I can change (and check that it's changed) but not changed back? I even tried to not assign in normal/main.c (just in case that code part is executed two times) but still it didn't work (again, value has not been changed). Thanks, -- Carles Pina i Estany GPG id: 0x17756391 http://pinux.info _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel