Added SetLanguage ($LANGUAGE is no longer a variable)

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@738 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2002-08-25 16:09:42 +00:00
parent df33a31178
commit d6c4b8ac50
4 changed files with 16 additions and 5 deletions

View file

@ -1419,6 +1419,9 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
)
);
return 0;
case EW_SETLANG:
set_language(process_string_fromtab_toint(parms[0]));
return 0;
}
my_MessageBox(STR(LANG_INSTCORRUPTED),MB_OK|MB_ICONSTOP);
return EXEC_ERROR;

View file

@ -1,9 +1,8 @@
extern char g_usrvars[25][NSIS_MAX_STRLEN];
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])
#define state_language (g_usrvars[24])
extern char g_caption[NSIS_MAX_STRLEN*2];
extern HWND g_hwnd;

View file

@ -16,7 +16,7 @@ char g_log_file[1024];
extern char plugins_temp_dir[NSIS_MAX_STRLEN];
#endif
char g_usrvars[25][NSIS_MAX_STRLEN];
char g_usrvars[24][NSIS_MAX_STRLEN];
HANDLE g_hInstance;
@ -486,10 +486,13 @@ 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
case VAR_CODES_START + 25: // LANGUAGE
mystrcpy(out, g_usrvars[nVarIdx - (VAR_CODES_START + 1)]);
break;
case VAR_CODES_START + 25: // LANGUAGE
wsprintf(out, "%u", cur_common_strings_table->lang_id);
break;
case VAR_CODES_START + 26: // PROGRAMFILES
myRegGetStr(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion", "ProgramFilesDir", out);
if (!*out)

View file

@ -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$LANGUAGE\0";
"$CMDLINE\0$INSTDIR\0$OUTDIR\0$EXEDIR\0";
int CEXEBuild::process_script(FILE *fp, char *curfilename, int *lineptr)
@ -2216,6 +2216,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char
ent.offsets[0]=add_string(line.gettoken_str(1));
ent.offsets[1]=GWL_USERDATA;
ent.offsets[2]=add_string(line.gettoken_str(2));
SCRIPT_MSG("SetStaticBkColor: handle=%s color=%s\n",line.gettoken_str(1),line.gettoken_str(2));
return add_entry(&ent);
#else//!NSIS_SUPPORT_HWNDS
case TOK_ISWINDOW:
@ -3350,6 +3351,11 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char
}
SCRIPT_MSG("\n");
return add_entry(&ent);
case TOK_SETLANG:
ent.which=EW_SETLANG;
ent.offsets[0]=add_string(line.gettoken_str(1));
SCRIPT_MSG("SetLanguage: language=%s", line.gettoken_str(1));
return add_entry(&ent);
// end of instructions
///////////////////////////////////////////////////////////////////////////////