From 806f0afb91acd504e9b2b54736396f83f57843d4 Mon Sep 17 00:00:00 2001 From: kichik Date: Wed, 28 Aug 2002 16:57:46 +0000 Subject: [PATCH] Removed SetLanguage (back to $LANGUAGE) git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@777 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/exehead/Ui.c | 6 +++++- Source/exehead/exec.c | 3 --- Source/exehead/state.h | 7 ++----- Source/exehead/util.c | 8 +++----- Source/script.cpp | 2 +- 5 files changed, 11 insertions(+), 15 deletions(-) diff --git a/Source/exehead/Ui.c b/Source/exehead/Ui.c index d1a83f6e..cfb94ec2 100644 --- a/Source/exehead/Ui.c +++ b/Source/exehead/Ui.c @@ -248,11 +248,13 @@ static void NSISCALL CheckTreeItem(HWND hWnd, TV_ITEM *pItem, int checked) { static int lang_num; -void NSISCALL set_language(LANGID lang) +static void NSISCALL set_language(LANGID lang) { int i; LANGID lang_mask=~(LANGID)0; + if (!lang) lang=myatoi(state_language); + lang_again: for (i = 0; i < lang_num; i++) { if (!((lang ^ common_strings_tables[i].lang_id) & lang_mask)) { @@ -377,6 +379,7 @@ int NSISCALL ui_doinstall(void) g_hwnd=m_bgwnd; // Select language if (ExecuteCodeSegment(g_inst_entry,g_inst_cmnheader->code_onInit,NULL)) return 1; + set_language(0); g_hwnd=NULL; ShowWindow(m_bgwnd, SW_SHOW); #endif//NSIS_SUPPORT_CODECALLBACKS @@ -390,6 +393,7 @@ int NSISCALL ui_doinstall(void) { #ifdef NSIS_SUPPORT_CODECALLBACKS if (ExecuteCodeSegment(g_inst_entry,g_inst_cmnheader->code_onInit,NULL)) return 1; + set_language(0); #endif//NSIS_SUPPORT_CODECALLBACKS if (install_thread(NULL)) { diff --git a/Source/exehead/exec.c b/Source/exehead/exec.c index cbe756b2..ca978bff 100644 --- a/Source/exehead/exec.c +++ b/Source/exehead/exec.c @@ -1426,9 +1426,6 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos) ) ); return 0; - case EW_SETLANG: - set_language(process_string_fromtab_toint(parm0)); - return 0; } my_MessageBox(STR(LANG_INSTCORRUPTED),MB_OK|MB_ICONSTOP); return EXEC_ERROR; diff --git a/Source/exehead/state.h b/Source/exehead/state.h index 612f4b08..0022f580 100644 --- a/Source/exehead/state.h +++ b/Source/exehead/state.h @@ -1,14 +1,11 @@ -extern char g_usrvars[24][NSIS_MAX_STRLEN]; -/*#define state_command_line (g_usrvars[20]) -#define state_install_directory (g_usrvars[21]) -#define state_output_directory (g_usrvars[22]) -#define state_exe_directory (g_usrvars[23])*/ +extern char g_usrvars[25][NSIS_MAX_STRLEN]; // changed by Amir Szekely 28th August 2002 // smaller exehead extern char *state_command_line; extern char *state_install_directory; extern char *state_output_directory; extern char *state_exe_directory; +extern char *state_language; extern char g_caption[NSIS_MAX_STRLEN*2]; extern HWND g_hwnd; diff --git a/Source/exehead/util.c b/Source/exehead/util.c index 6fc67735..8aad8341 100644 --- a/Source/exehead/util.c +++ b/Source/exehead/util.c @@ -16,11 +16,12 @@ char g_log_file[1024]; extern char plugins_temp_dir[NSIS_MAX_STRLEN]; #endif -char g_usrvars[24][NSIS_MAX_STRLEN]; +char g_usrvars[25][NSIS_MAX_STRLEN]; char *state_command_line=g_usrvars[20]; char *state_install_directory=g_usrvars[21]; char *state_output_directory=g_usrvars[22]; char *state_exe_directory=g_usrvars[23]; +char *state_language=g_usrvars[24]; HANDLE g_hInstance; @@ -490,11 +491,8 @@ void NSISCALL process_string(char *out, const char *in) case VAR_CODES_START + 22: // INSTDIR case VAR_CODES_START + 23: // OUTDIR case VAR_CODES_START + 24: // EXEDIR - mystrcpy(out, g_usrvars[nVarIdx - (VAR_CODES_START + 1)]); - break; - case VAR_CODES_START + 25: // LANGUAGE - myitoa(out, cur_common_strings_table->lang_id); + mystrcpy(out, g_usrvars[nVarIdx - (VAR_CODES_START + 1)]); break; case VAR_CODES_START + 26: // PROGRAMFILES diff --git a/Source/script.cpp b/Source/script.cpp index b820b306..e9b02198 100644 --- a/Source/script.cpp +++ b/Source/script.cpp @@ -21,7 +21,7 @@ static const char *usrvars="$0\0$1\0$2\0$3\0$4\0$5\0$6\0$7\0$8\0$9\0" "$R0\0$R1\0$R2\0$R3\0$R4\0$R5\0$R6\0$R7\0$R8\0$R9\0" - "$CMDLINE\0$INSTDIR\0$OUTDIR\0$EXEDIR\0"; + "$CMDLINE\0$INSTDIR\0$OUTDIR\0$EXEDIR\0$LANGUAGE\0"; int CEXEBuild::process_script(FILE *fp, char *curfilename, int *lineptr)