NSIS_SUPPORT_LANG_IN_STRINGS works without NSIS_SUPPORT_NAMED_USERVARS

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2764 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
ramon18 2003-07-23 09:34:41 +00:00
parent 7f1e93c85e
commit a3c887d456
3 changed files with 33 additions and 10 deletions

View file

@ -512,8 +512,12 @@ int CEXEBuild::preprocess_string(char *out, const char *in)
else // warning should go here else // warning should go here
#endif // not NSIS_SUPPORT_NAMED_USERVARS #endif // not NSIS_SUPPORT_NAMED_USERVARS
{ {
#ifdef NSIS_SUPPORT_NAMED_USERVARS
#if defined(NSIS_SUPPORT_NAMED_USERVARS) || defined(NSIS_SUPPORT_LANG_IN_STRINGS)
bool bProceced=false; bool bProceced=false;
#endif
#ifdef NSIS_SUPPORT_NAMED_USERVARS
if ( *p ) if ( *p )
{ {
const char *pUserVarName = p; const char *pUserVarName = p;
@ -540,6 +544,7 @@ int CEXEBuild::preprocess_string(char *out, const char *in)
pUserVarName--; pUserVarName--;
} }
} }
#endif
#ifdef NSIS_SUPPORT_LANG_IN_STRINGS #ifdef NSIS_SUPPORT_LANG_IN_STRINGS
if ( !bProceced && *p == '(' ) if ( !bProceced && *p == '(' )
{ {
@ -591,6 +596,7 @@ int CEXEBuild::preprocess_string(char *out, const char *in)
free(cp); free(cp);
} }
#endif #endif
#if defined(NSIS_SUPPORT_NAMED_USERVARS) || defined(NSIS_SUPPORT_LANG_IN_STRINGS)
if ( bProceced ) if ( bProceced )
continue; continue;
else else

View file

@ -517,17 +517,26 @@ DWORD NSISCALL SetSelfFilePointer(LONG lDistanceToMove, DWORD dwMoveMethod);
// $0..$9, $INSTDIR, etc are encoded as ASCII bytes starting from this value. // $0..$9, $INSTDIR, etc are encoded as ASCII bytes starting from this value.
// Added by ramon 3 jun 2003 // Added by ramon 3 jun 2003
#ifdef NSIS_SUPPORT_NAMED_USERVARS #ifdef NSIS_SUPPORT_NAMED_USERVARS
#define VAR_CODES_START 253 #ifdef NSIS_SUPPORT_LANG_IN_STRINGS
#define VAR_CODES_START 253
#else
#define VAR_CODES_START 254
#endif
#ifdef NSIS_SUPPORT_LANG_IN_STRINGS
#define LANG_CODES_START 254
#endif
#else #else
#ifdef NSIS_CONFIG_PLUGIN_SUPPORT #ifdef NSIS_SUPPORT_LANG_IN_STRINGS
#define VAR_CODES_START (256 - 37) #define LANG_CODES_START 254
#else #else
#define VAR_CODES_START (256 - 36) #define LANG_CODES_START 255
#endif #endif
#endif
#ifdef NSIS_SUPPORT_LANG_IN_STRINGS #ifdef NSIS_CONFIG_PLUGIN_SUPPORT
#define LANG_CODES_START 254 #define VAR_CODES_START (LANG_CODES_START - 37)
#else
#define VAR_CODES_START (LANG_CODES_START - 36)
#endif
#endif #endif
union installer_flags { union installer_flags {

View file

@ -443,6 +443,14 @@ char * NSISCALL process_string(const char *in)
{ {
*out++ = *in++; *out++ = *in++;
} }
#ifdef NSIS_SUPPORT_LANG_IN_STRINGS
else if (nVarIdx == LANG_CODES_START)
{
nVarIdx = *(short*)in; in+=sizeof(WORD);
process_string(GetStringFromStringTab(nVarIdx), out-ps_tmpbuf);
out+=mystrlen(out);
}
#endif
else else
{ {
DWORD f; DWORD f;