Warn when the [License]LangString language id parameter is not a valid number
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6711 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
d9bb937072
commit
ebc900f4bb
2 changed files with 14 additions and 8 deletions
|
@ -207,6 +207,7 @@ class CEXEBuild {
|
|||
int includeScript(const TCHAR *f, NStreamEncoding&enc);
|
||||
TCHAR* GetMacro(const TCHAR *macroname, TCHAR**macroend = 0);
|
||||
bool MacroExists(const TCHAR *macroname) { return !!GetMacro(macroname); }
|
||||
LANGID ParseLangIdParameter(const LineParser&line, int token);
|
||||
int LoadLicenseFile(const TCHAR *file, TCHAR** pdata, const TCHAR *cmdname, WORD AnsiCP);
|
||||
#ifdef NSIS_FIX_DEFINES_IN_STRINGS
|
||||
void ps_addtoline(const TCHAR *str, GrowBuf &linedata, StringList &hist, bool bIgnoreDefines = false);
|
||||
|
|
|
@ -1781,7 +1781,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
|||
case TOK_LANGSTRING:
|
||||
{
|
||||
TCHAR *name = line.gettoken_str(1);
|
||||
LANGID lang = line.gettoken_int(2);
|
||||
LANGID lang = ParseLangIdParameter(line, 2);
|
||||
TCHAR *str = line.gettoken_str(3);
|
||||
const int ret = SetLangString(name, lang, str);
|
||||
if (ret == PS_WARNING)
|
||||
|
@ -1806,17 +1806,15 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
|||
}
|
||||
#endif
|
||||
TCHAR *name = line.gettoken_str(1);
|
||||
LANGID lang = line.gettoken_int(2);
|
||||
LANGID lang = ParseLangIdParameter(line, 2);
|
||||
TCHAR *file = line.gettoken_str(3);
|
||||
|
||||
TCHAR *data = NULL;
|
||||
MANAGE_WITH(data, free);
|
||||
|
||||
WORD AnsiCP = CP_ACP;
|
||||
LanguageTable *pLT = GetLangTable(lang);
|
||||
if (pLT) AnsiCP = pLT->nlf.m_uCodePage;
|
||||
|
||||
int ret = LoadLicenseFile(file, &data, cmdnam, AnsiCP);
|
||||
WORD acp = pLT ? pLT->nlf.m_uCodePage : CP_ACP;
|
||||
int ret = LoadLicenseFile(file, &data, cmdnam, acp);
|
||||
if (ret != PS_OK)
|
||||
return ret;
|
||||
|
||||
|
@ -6655,8 +6653,6 @@ int CEXEBuild::do_add_file_create_dir(const tstring& local_dir, const tstring& d
|
|||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
DefineList *CEXEBuild::searchParseString(const TCHAR *source_string, LineParser&line, int parmOffs, bool ignCase, bool noErrors, UINT*failParam)
|
||||
{
|
||||
const bool allowEmptyFirstTok = true;
|
||||
|
@ -6698,3 +6694,12 @@ DefineList *CEXEBuild::searchParseString(const TCHAR *source_string, LineParser&
|
|||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
LANGID CEXEBuild::ParseLangIdParameter(const LineParser&line, int token)
|
||||
{
|
||||
int succ, lid = line.gettoken_int(token, &succ);
|
||||
if (!lid) lid = last_used_lang;
|
||||
if (!succ)
|
||||
warning_fl(_T("\"%") NPRIs _T("\" is not a valid language id, using language id %u!"), line.gettoken_str(token), lid);
|
||||
return lid;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue