Uservars names not found in strings when names are very similar.
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2751 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
4a1c9f3e77
commit
f7c1f0a43d
2 changed files with 5 additions and 6 deletions
|
@ -539,10 +539,7 @@ int CEXEBuild::preprocess_string(char *out, const char *in)
|
|||
|
||||
while ( pUserVarName > p )
|
||||
{
|
||||
char b = ((char*)p)[pUserVarName-p];
|
||||
((char*)p)[pUserVarName-p] = 0;
|
||||
int idxUserVar = m_UserVarNames.get((char*)p, pUserVarName-p);
|
||||
((char*)p)[pUserVarName-p] = b;
|
||||
if ( idxUserVar >= 0 )
|
||||
{
|
||||
// Well, using variables inside string formating doens't mean
|
||||
|
|
|
@ -304,7 +304,7 @@ class SortedStringListND // no delete - can be placed in GrowBuf
|
|||
{
|
||||
int res;
|
||||
const char *pCurr = (char*)strings.get() + data[nextpos].name;
|
||||
if (n_chars == -1 || n_chars != strlen(pCurr) )
|
||||
if (n_chars == -1 )
|
||||
{
|
||||
if (case_sensitive)
|
||||
res=strcmp(str, pCurr);
|
||||
|
@ -314,9 +314,11 @@ class SortedStringListND // no delete - can be placed in GrowBuf
|
|||
else
|
||||
{
|
||||
if (case_sensitive)
|
||||
res=strncmp(str, pCurr, n_chars);
|
||||
res=strncmp(str, pCurr, min(n_chars, strlen(pCurr)));
|
||||
else
|
||||
res=strnicmp(str, pCurr, n_chars);
|
||||
res=strnicmp(str, pCurr, min(n_chars, strlen(pCurr)));
|
||||
if ( res == 0 && n_chars != -1 && n_chars != strlen(pCurr) )
|
||||
res = n_chars - strlen(pCurr);
|
||||
}
|
||||
|
||||
if (res==0)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue