diff --git a/Source/exehead/Ui.c b/Source/exehead/Ui.c index a1fedfe1..24b1e7d9 100644 --- a/Source/exehead/Ui.c +++ b/Source/exehead/Ui.c @@ -177,6 +177,7 @@ static void NSISCALL set_language() LANGID lang=state_language[0]?myatoi(state_language):GetUserDefaultLangID(); char *language_table=0; int lang_num; + int *selected_langtable=0; lang_again: lang_num=g_blocks[NB_LANGTABLES].num; @@ -185,11 +186,11 @@ lang_again: if (!((lang ^ *(LANGID*)language_table) & lang_mask)) { dlg_offset=*(int*)(language_table+sizeof(LANGID)); g_exec_flags.rtl=*(int*)(language_table+sizeof(LANGID)+sizeof(int)); - cur_langtable=(int*)(language_table+sizeof(LANGID)+2*sizeof(int)); + selected_langtable=(int*)(language_table+sizeof(LANGID)+2*sizeof(int)); break; } } - if (!cur_langtable) { + if (!selected_langtable) { if (lang_mask == (LANGID)~0) lang_mask=0x3ff; // primary lang else // we already tried once and we still don't have a language table @@ -197,6 +198,8 @@ lang_again: goto lang_again; } + cur_langtable = selected_langtable; + myitoa(state_language, *(LANGID*)language_table); { char *caption = GetNSISString(g_caption,LANG_CAPTION);