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:
ramon18 2003-07-19 00:39:03 +00:00
parent 4a1c9f3e77
commit f7c1f0a43d
2 changed files with 5 additions and 6 deletions

View file

@ -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

View file

@ -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)